rocket_jpのパソコン日記

日々の出来事を記録します。

Vyattaでゾーンベースファイヤーウォール

f:id:rocket_jp:20130223163838j:plain

VMware仮想環境に仮想ルーター(Vyatta)を設置したので、その記録。

要件は以下の通り。

  • 仮想化環境内をいくつかの独立したエリアに区切る(今回は4エリア)。
  • 各エリア間の通信はできない。
  • 各エリアから外側(インターネット側)への通信はできる。
  • 外側から内側各エリアへのアクセスはできない。

これを、ソフトウェアルーターVyattaで実現することにした。ファイヤーウォールの種類としては、ゾーンベースを使用することにした。

前提

VMホスト

f:id:rocket_jp:20130223163854j:plain

VMホストは以下の状況であるものとする。

  • 仮想スイッチ(vSphere標準スイッチ)を4個追加。それぞれ、vSwitch1、vSwitch2、vSwitch3、vSwitch4で作成され、ラベルはnetwork1、network2、network3、network4とした。
  • Vyatta用仮想マシン(Router1)には仮想nicが5個搭載され(eth0、eth1、eth2、eth3、eth4)、それぞれ、Network0、network1、network2、network3、network4に接続。

VMホストのネットワーク構成

仮想スイッチ ネットワークラベル 接続 備考
vSwitch0 Network0 物理nic、Router1のeth0 デフォルトのネットワーク
vSwitch1 network1 Router1のeth1
vSwitch2 network2 Router1のeth2
vSwitch3 network3 Router1のeth3
vSwitch4 network4 Router1のeth4
Vyatta

Vyattaは「vyatta-livecd-virt_VC6.5R1_i386.iso」を「install image」コマンドでインストール済み。

※インストールマニュアルは「Vyatta-InstallingUpgrading_VMware_6.5R1_v01.pdf」

設定準備

各種設定は以下の値とする。

I/F IPアドレス サブネット 所属Vyattaゾーン名 備考
eth0 192.168.0.99 192.168.0.0/24 network0 外側
eth1 192.168.1.99 192.168.1.0/24 network1 内側(エリア1)
eth2 192.168.2.99 192.168.2.0/24 network2 内側(エリア2)
eth3 192.168.3.99 192.168.3.0/24 network3 内側(エリア3)
eth4 192.168.4.99 192.168.4.0/24 network4 内側(エリア4)

※VMネットワークラベルとVyattaゾーン名はわかりやすいように同じにしているが、必ずしも同じにする必要はない。

設定開始

基本的にマニュアル「Vyatta-Firewall_6.5R1_v01.pdf」 P30「Zone‐Based Firewall」 に沿って進める。

各設定はコンフィグモードで入力する。

コンフィグモードへは、

configure

で移行できる。

各設定入力後、

commit

で有効化、

save

で恒久化、

exit

でコンフィグモードを抜ける。

まず、各インターフェースにIPアドレスデフォルトゲートウェイを設定

set interfaces ethernet eth0 address 192.168.0.99/24
set interfaces ethernet eth1 address 192.168.1.99/24
set interfaces ethernet eth2 address 192.168.2.99/24
set interfaces ethernet eth3 address 192.168.3.99/24
set interfaces ethernet eth4 address 192.168.4.99/24

set system gateway-address 192.168.0.1

ゾーンを作成し、インターフェースを割り当てる。

set zone-policy zone network0 description “network0”
set zone-policy zone network0 interface eth0
set zone-policy zone network1 description “network1”
set zone-policy zone network1 interface eth1
set zone-policy zone network2 description “network2”
set zone-policy zone network2 interface eth2
set zone-policy zone network3 description “network3”
set zone-policy zone network3 interface eth3
set zone-policy zone network4 description “network4”
set zone-policy zone network4 interface eth4

内側→外側用のルール(すべて許可)・・・(1)

set firewall name to_network0 description "allow all traffic to network0 zone"
set firewall name to_network0 rule 1 action accept

外側→内側用のルール(戻りのパケット用)・・・(2)

set firewall name to_network1-4 description "filter traffic to network1-4 zone"
set firewall name to_network1-4 rule 1 action accept
set firewall name to_network1-4 rule 1 state established enable
set firewall name to_network1-4 rule 1 state related enable
set firewall name to_network1-4 rule 1 protocol all

内側→外側のゾーンポリシーにルール(1)を適用

set zone-policy zone network0 from network1 firewall name to_network0
set zone-policy zone network0 from network2 firewall name to_network0
set zone-policy zone network0 from network3 firewall name to_network0
set zone-policy zone network0 from network4 firewall name to_network0

外側→内側のゾーンポリシーにルール(2)を適用

set zone-policy zone network1 from network0 firewall name to_network1-4
set zone-policy zone network2 from network0 firewall name to_network1-4
set zone-policy zone network3 from network0 firewall name to_network1-4
set zone-policy zone network4 from network0 firewall name to_network1-4

今回、ブロードバンドルーターにルーティングの設定が必要になるが、RIPを使用し、自動的にルーティング情報を交換させることにする(BBルーターにスタティックルーティングの設定が不要になる)。

set protocols rip interface eth0
set protocols rip interface eth1
set protocols rip interface eth2
set protocols rip interface eth3
set protocols rip interface eth4

内側へはRIP情報を送信しないように設定。

set protocols rip passive-interface eth1
set protocols rip passive-interface eth2
set protocols rip passive-interface eth3
set protocols rip passive-interface eth4

そして、ブロードバンドルーター(BBR-4HG)のLAN側のRIP V2を有効化(今回、ブロードバンドルーターのRIPを初めて使った)。

f:id:rocket_jp:20130223163747j:plain

↑ちゃんとルーティング情報が流れている。

以上で完了。

ただし、このままだと別ゾーンのインターフェースへのPing、管理アクセスが通ってしまう。これを制限するにはさらに設定が必要だけど(マニュアルには載っている)、今回は実施せず。