サービスグループの設定

動作確認バージョン:Brocade 5600vRouter Version4.2R1S1

サービスグループとは

ファイアウォール機能でパケットフィルタリングを設定する時にルールを記述しますが
登録されたリスト(グループ)に対しての通信可否を設定することが可能です。
このリストをサービスグループと呼びます。
サービスグループでは、ポートグループとICMPグループを設定することが可能です。
サービスグループ種別 説明
ポートグループ ポート番号を用いたグループになります。別途Configを有効にするときに、TCP/UDPの指定が必要になります。
ICMPグループ ICMPの内容やタイプ値を用いたグループになります。タイプ値を利用する時にさらに詳細なコード値によるグループ化も可能です。

注釈

ポートグループを用いた設定は、動作確認済み設定例(パケットフィルタリング設定)もご参照ください。

複数の任意のポート番号をグループ化してフィルタリングする設定

サービスグループの設定は、複数の任意のポート番号を選択してグループ化設定が可能です。
設定上では、それをポートグループと呼びます。
作成したポートグループをファイアウォールフィルタリングのルールに利用することが可能です。

サンプル設定のシナリオ

  • 宛先ポート番号(1080から1081)の通信だけ転送したい
  • 上記をポートグループとして設定したい
  • インタフェース(dp0s5)にインプットするトラフィックに対して有効化したい
  • 宛先ポート番号(1080から1081)以外の通信はすべて遮断したい
構成図
Fig18

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

1.ポート番号1080と1081をポートグループ p1 として設定
2.パケットフィルタリング設定の名前 test_rule
3.ポートグループp1のパケットを許可するルールを10として設定
4.ポートグループp1以外の宛先ポート番号を利用するパケットについて拒否する設定
5.dp0s5 インタフェースにてインプット方向へ適用

CLIにて入力するコマンド

set resources group port-group p1 port '1080'
set resources group port-group p1 port '1081'
set security firewall name test_rule default-action 'drop'
set security firewall name test_rule rule 10 action 'accept'
set security firewall name test_rule rule 10 destination port 'p1'
set security firewall name test_rule rule 10 protocol 'tcp'
set interfaces dataplane dp0s5 firewall in 'test_rule'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
interfaces {
        dataplane dp0s4 {
                address 192.168.1.50/24
        }
        dataplane dp0s5 {
                address 192.168.2.50/24
                firewall {
                        in test_rule
                }
        }
        dataplane dp0s6 {
                address 192.168.3.5/24
        }
 }
 resources {
        group {
                port-group p1 {
                        port 1080
                        port 1081
                }
        }
 }
 security {
        firewall {
                name test_rule {
                        default-action drop
                        rule 10 {
                                action accept
                                destination {
                                        port p1
                                }
                                protocol tcp
                        }
                }
        }
 }

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(192.168.2.12)から
192.168.3.3 ポート番号1080,1081あての通信は成功しますが、サーバ(192.168.2.12)から
192.168.3.3 ポート番号80あての通信は失敗しており
パケットフィルタリング機能が動作していることが確認できました。
#port 80向け -> NG

test@ubu01:~$ wget -O - http://192.168.3.3:80
--2016-07-29 16:35:51--  http://192.168.3.3/
192.168.3.3:80 に接続しています... ^C

#port 1080向け -> OK

test@ubu01:~$ wget -O - http://192.168.3.3:1080
--2016-07-29 16:35:56--  http://192.168.3.3:1080/
192.168.3.3:1080 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 616 [text/html]
`STDOUT' に保存中

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

2016-07-29 16:35:56 (175 MB/s) - stdout へ出力完了 [616/616]

#port 1081向け -> OK

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

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

2016-07-29 16:36:02 (171 MB/s) - stdout へ出力完了 [616/616]

任意のICMPタイプをグループ化してフィルタリングする設定

サービスグループの設定には、ICMPの ICMP種別タイプ値(コード値) を選択して
設定することが可能です。
これをICMPグループと呼びます。
また、作成したICMPグループをファイアウォールフィルタリングのルールに利用することが可能です。

注釈

ICMPのコード値だけでグループ化することはできません。 コード値を利用される際には、タイプ値とセットでグループ化する必要があります。

設定できるICMP情報につきましては、以下のコマンドを用いて確認することが可能です。
set resources group icmp-group icmp-g1 name ?

サンプル設定のシナリオ

  • ICMPのechoとecho-replyに限って許可するルールを設定したい
  • サービスグループ(ICMPグループ)を用いて設定をしたい
  • それ以外の通信はすべて遮断する設定をしたい
  • インタフェースdp0s6で適用したい
構成図
ServiceGroup ICMPグループ設定

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

1.ICMP echo-requestとICMP echo-replyをICMPグループ icmp-g1 として設定
2.パケットフィルタリング設定の名前 test_rule
3.ICMPグループicmp-g1に該当するパケットを許可するルールを10として設定
4.ICMPグループicmp-g1以外の通信を拒否する設定
5.dp0s6インタフェースのインプット方向へ適用
6.dp0s6インタフェースのアウトプット方向へ適用

CLIにて入力するコマンド

set resources group icmp-group icmp-g1 name echo-reply
set resources group icmp-group icmp-g1 name echo-request
set security firewall name test_rule default-action drop
set security firewall name test_rule rule 10 icmp group icmp-g1
set security firewall name test_rule rule 10 action accept
set interface dataplane dp0s6 firewall in 'test_rule'
set interface dataplane dp0s6 firewall out 'test_rule'

注釈

ICMPのタイプで指定する場合は、上記コマンドに代わり以下のコマンドでグループを作成します。

set resources group icmp-group icmp-g1 type 0
set resources group icmp-group icmp-g1 type 8
正しく設定が完了したときのコンフィグレーションは次のとおりです。
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
                firewall {
                        in test_rule
                        out test_rule
                }
        }
}
resources {
        group {
                icmp-group icmp-g1 {
                        name echo-reply
                        name echo-request
                }
        }
}
security {
        firewall {
                name test_rule
                        default-action drop
                        rule 10 {
                                action accept
                                icmp {
                                        group icmp-g1
                                }
                        }
                }
        }
 }

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(192.168.3.3)から
192.168.2.12あての通信(Ping:ICMP echo-request,ICMP echo-reply)は成功しますが
それ以外の通信に関しては、拒否され失敗しており
ICMPグループを用いたフィルタリング機能が動作していることが確認できました。
#192.168.3.3から通信 -> OK

 test@web1:~$ ping 192.168.2.12
 PING 192.168.2.12 (192.168.2.12) 56(84) bytes of data.
 64 bytes from 192.168.2.12: icmp_seq=1 ttl=63 time=3.61 ms
 64 bytes from 192.168.2.12: icmp_seq=2 ttl=63 time=1.57 ms
 64 bytes from 192.168.2.12: icmp_seq=3 ttl=63 time=1.49 ms
 64 bytes from 192.168.2.12: icmp_seq=4 ttl=63 time=1.55 ms
 64 bytes from 192.168.2.12: icmp_seq=5 ttl=63 time=1.64 ms
 ^C
 --- 192.168.2.12 ping statistics ---
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms
 rtt min/avg/max/mdev = 1.492/1.975/3.617/0.822 ms

#192.168.3.3からのTraceroute通信 -> NG

test@web1:~$ ssh -l user 192.168.2.12
^C