他のゾーン(z3)からゾーン(z2)への戻りのフィルタリング設定

動作確認バージョン:Brocade 5600vRouter Version4.2R1S1
ここでは、Zone-Base Firewallを設定する上で必要な機能を紹介します。

Zone-Base Firewallとは

ファイアウォールでは、論理的に「ゾーン」と呼ばれる領域を論理的に作成することが可能です。
1つのゾーンから他のゾーンへ通信を転送するときに必要なポリシーを設定してあげることで
各インタフェースごとの詳細な設計・設定をしなくてもゾーンに属するネットワークや端末等の
グループに対して同一のポリシーを適用させることが可能になります。

注釈

ゾーンを作成した後に、明示的に許可しない限り初期状態では他のゾーンからの通信は遮断された設定になっています。 以下の動作確認済み設定例では、明示的に許可・拒否の設定を実施して紹介します。

サンプル設定のシナリオ

  • ファイアウォールにゾーンを2つ設定してゾーン間の通信に対してポリシーを設定したい
  • 各ゾーンには、1つのインタフェースを紐付けしたい
  • 192.168.3.0側ゾーンから192.168.2.0側ゾーンへは、ポート番号が80番、1080番の通信を遮断したい
  • 192.168.2.0側ゾーンから192.168.3.0側ゾーンへは、すべてのトラフィックを転送したい
構成図
zonebasefw Fig4

シナリオにおける設定のながれ

1. z3 から z2 へのポリシーをあらかじめ作成する。フィルタリング設定の名前 test_rule
2.送信元ポート番号が80の時に拒否するルールを10として設定
3.送信元ポート番号が1080の時に拒否するルールを11として設定
4.上記以外の宛先ポート番号へのパケットについては許可する設定
5. z2 から z3 へのポリシーをあらかじめ作成する。フィルタリング設定の名前 all_accept
6. all_accept ルールにはすべての通信を許可する設定
7.ゾーン名を z2 で作成する
8. z2 にはインタフェース dp0s5 を割り当てる
9. z2 から z3 へのポリシーに all_accept を設定
10.ゾーン名を z3 で作成する
11. z3 にはインタフェース dp0s6 を割り当てる
12. z3 から z2 へのポリシーに test_rule を設定

注釈

Zone-Base Firewall機能を利用するためにゾーンに紐付けしたインタフェースは、 Firewallポリシーを直接設定できなくなります。

CLIにて入力するコマンド

set security firewall name test_rule default-action 'accept'
set security firewall name test_rule rule 10 action 'drop'
set security firewall name test_rule rule 10 source port '80'
set security firewall name test_rule rule 10 protocol 'tcp'
set security firewall name test_rule rule 11 action 'drop'
set security firewall name test_rule rule 11 source port '1080'
set security firewall name test_rule rule 11 protocol 'tcp'
set security firewall name all_accept default-action 'accept'
set security zone-policy zone z2 interface 'dp0s5'
set security zone-policy zone z2 to z3 firewall 'all_accept'
set security zone-policy zone z3 interface 'dp0s6'
set security zone-policy zone z3 to z2 firewall 'test_rule'

注釈

設定したコンフィグを運用中に適用(commit)するためには、各ゾーンが作成されていることと ゾーン間のポリシーを設定されていることが条件になります。 ここでは、すべての通信を転送するための all_accept 設定を説明上入れています。

正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
       dataplane dp0s4 {
               address 192.168.1.50/24
       }
       dataplane dp0s5 {
               address 192.168.2.50/24
       }
       dataplane dp0s6 {
               address 192.168.3.5/24
       }
}
security {
       firewall {
               name all_accept {
                       default-action accept
                       }
               }
               name test_rule {
                       default-action accept
                       rule 10 {
                               action drop
                               protocol tcp
                               source {
                                       port 80
                               }
                       }
                       rule 11 {
                               action drop
                               protocol tcp
                               source {
                                       port 1080
                               }
                       }
               }
       }
       zone-policy {
               zone z2 {
                       interface dp0s5
                       to z3 {
                               firewall all_accept
                       }
               }
               zone z3 {
                       interface dp0s6
                       to z2 {
                               firewall test_rule
                       }
               }

       }
}

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(192.168.2.6)から
192.168.3.3 ポート番号80ならびに192.168.3.3 ポート番号1080あての通信は失敗しますが
192.168.3.3 ポート番号1081あての通信は成功しており
Zone-Base Firewall機能が動作していることが確認できました。
#port80の戻り通信

test@ubu01:~$ wget -O - http://192.168.3.3/ > /dev/null
--2016-08-01 15:50:08--  http://192.168.3.3/
192.168.3.3:80 に接続しています...

#port1080の戻り通信

test@ubu01:~$ wget -O - http://192.168.3.3:1080/ > /dev/null
--2016-08-01 15:50:16--  http://192.168.3.3:1080/
192.168.3.3:1080 に接続しています... ^C

#port1081の戻り通信

test@ubu01:~$ wget -O - http://192.168.3.3:1081/ > /dev/null
--2016-08-01 15:50:21--  http://192.168.3.3:1081/
192.168.3.3:1081 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 616 [text/html]
`STDOUT' に保存中

100%[========================================================================================================================================================================================================>] 616         --.-K/s   時間 0s

2016-08-01 15:50:21 (168 MB/s) - stdout へ出力完了 [616/616]