KVM VyOSのインストールと設定(ver 1.1.8)
・公式情報
https://wiki.vyos-users.jp/
https://wiki.vyos.net/
・インストール
# qemu-img create -f qcow2 /usr/local/var/lib/libvirt/images/vyos.qcow2 2G # virt-install \ --connect qemu:///system \ --name vyos \ --vcpus 1 \ --ram 512 \ --network bridge=br0 \ --network bridge=br1 \ --file /usr/local/var/lib/libvirt/images/vyos.qcow2 \ --cdrom /usr/local/src/vyos-1.1.8-amd64.iso \ --nographics install image reboot
・コンソールから接続
# virsh console vyos
・設定の確認、変更、保存
show configuration show configuration commands configure ※設定モードに変更 set ... ※値を設定 delete ... ※値を削除 compare 0 ※直近の設定と比較 commit ※設定を反映 save ※設定を保存 exit ※設定モードから抜ける
・SSHの設定
set service ssh port '22'
・タイムゾーン設定
set system time-zone Asia/Tokyo date
・ネットワーク構成
(インターネット) - [ [pppoe 0] [eth1] ] - VyOS - [eth0] - (内部セグメント)
・内部インターフェースの設定
set interfaces ethernet eth0 description 'INSIDE' set interfaces ethernet eth0 address '192.168.0.1/24' set interfaces ethernet eth0 duplex 'auto' set interfaces ethernet eth0 speed 'auto'
・外部インターフェースの設定(PPPoE)
set interfaces ethernet eth1 description 'OUTSIDE' set interfaces ethernet eth1 pppoe 0 set interfaces ethernet eth1 pppoe 0 user-id [ユーザー名] set interfaces ethernet eth1 pppoe 0 password [パスワード] set interfaces ethernet eth1 pppoe 0 default-route auto set interfaces ethernet eth1 pppoe 0 name-server auto show interfaces pppoe
・MTU調整
set policy route PPPoE-IN rule 10 protocol tcp set policy route PPPoE-IN rule 10 set tcp-mss 1414 set policy route PPPoE-IN rule 10 tcp flags SYN set interfaces ethernet eth0 policy route PPPoE-IN set interfaces ethernet eth1 pppoe 0 policy route PPPoE-IN
set service dhcp-server disabled 'false' set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 default-router '192.168.0.1' set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 dns-server '192.168.0.1' set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 domain-name 'internal-network' set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 lease '86400' set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 start 192.168.0.10 stop '192.168.0.50' set service dns forwarding cache-size '0' set service dns forwarding listen-on 'eth0' set service dns forwarding name-server '8.8.8.8' ※PPPoEで取得したDNSサーバ以外に問い合わせをしたい場合は設定 set service dns forwarding name-server '8.8.4.4' ※PPPoEで取得したDNSサーバ以外に問い合わせをしたい場合は設定
・SrcNAT設定(内部→外部)
set nat source rule 10 source address '192.168.0.0/24' set nat source rule 10 translation address 'masquerade' set nat source rule 10 outbound-interface 'pppoe0' ※下記を指定して、内部からインターネットに疎通できるようにする ・SrcNATの対象となる送信元アドレス ・SrcNAT後のアドレス(masquerade を指定すればVyOSが可変アドレスに対応してくれる) ・インターネット側と通信するインターフェース
・DstNAT設定(外部→内部 ポートフォワード)
set nat destination rule 1 protocol 'tcp_udp' set nat destination rule 1 inbound-interface 'eth1' set nat destination rule 1 destination port '5501' set nat destination rule 1 translation address '192.168.0.107' ※eth1 5501ポートあての通信を 192.168.0.107 に転送する
・ファイアウォール設定の考え方
・「ポリシーセット」を作成して「インターフェース」の「out、in、local」のどれかに割り当てる ・out … インターフェースを通過して、出て行く通信 ・in … インターフェースを通過して、入ってくる通信 ・local … インターフェース自身への通信
・ファイアウォール設定(外部→VyOS)
set firewall name OUT_LOCAL default-action 'drop' set firewall name OUT_LOCAL rule 10 action 'accept' set firewall name OUT_LOCAL rule 10 state established 'enable' set firewall name OUT_LOCAL rule 10 state related 'enable' set interfaces ethernet eth1 pppoe 0 firewall local name 'OUT_LOCAL' ※上記ポリシーセットを外部向けインターフェースのlocalに割り当てて 「VyOS自身が起点となる通信とその折り返し通信は許可、それ以外は拒否」にする。 ※pppoeインターフェースにも適用すること。 適用しないとVyOS自身のSSH等のポートがインターネットに解放されてしまう。
・ファイアウォール設定(外部→内部)
set firewall name OUT_IN default-action 'drop' set firewall name OUT_IN rule 10 action 'accept' set firewall name OUT_IN rule 10 state established 'enable' set firewall name OUT_IN rule 10 state related 'enable' set firewall name OUT_IN rule 20 action 'accept' set firewall name OUT_IN rule 20 protocol 'tcp_udp' set firewall name OUT_IN rule 20 destination port '5501' set firewall name OUT_IN rule 20 state new 'enable' set interfaces ethernet eth1 pppoe 0 firewall in name 'OUT_IN' ※上記ポリシーセットを外部向けインターフェースのinに割り当てて 「折り返し通信、および5501ポート宛の通信は許可、それ以外は拒否」にする。 ※pppoeインターフェースにも適用すること。
・ファイアウォール設定(内部→外部)
※内部が起点となる通信で、拒否したいものがあれば設定する