宛先IPとサービス(ポート番号、サービスグループ)に対して(許可・拒否)の設定

動作確認バージョン:Brocade 5600vRouter Version4.2R1S1
ここでは、ファイアウォールを通過するIP通信に対して許可または拒否する機能について紹介します。

パケットフィルタリング設定のながれ

1.パケットフィルタリング設定の名前を設定する
2.宛先IPアドレスとポート番号などの指定とそれを許可・拒否のルールを設定する
3.2.で作ったルールに該当しないIPアドレスをもつ通信に関して許可・拒否するルールを設定する
4.1.で作ったパケットフィルタリング設定を適用させるインタフェースに対してフィルタの方向について指定する

宛先ポート番号に対しての拒否設定

特定の宛先IPアドレスとポート番号の通信のみファイアウォールのインタフェースで遮断し
その他の通信に関しては転送する設定を行います。

サンプル設定のシナリオ

  • IPアドレス192.168.2.13 ポート番号80(HTTP)あての通信を遮断したい
  • インタフェース(dp0s6)にインプットするトラフィックに対して有効化したい
  • 宛先が192.168.2.13かつポート80番以外の通信は、すべて許可して転送したい
構成図
Fig15

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s6 firewall in 'test_rule'
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 destination address '192.168.2.13'
set security firewall name test_rule rule 10 destination port '80'
set security firewall name test_rule rule 10 protocol 'tcp'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s5 インタフェースにてout test_rule という形で指定してください。

正しく設定が完了したときのコンフィグレーションは次のとおりです。
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
               }
       }
}
security {
       firewall {
               name test_rule {
                       default-action accept
                       rule 10 {
                               action drop
                               destination {
                                       address 192.168.2.13
                                       port 80
                               }
                               protocol tcp
                       }
               }
       }
}

動作確認結果

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

test@web1:~$ wget http://192.168.2.12
--2016-07-20 17:15:03--  http://192.168.2.12/
192.168.2.12:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 612 [text/html]
`index.html' に保存中

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

2016-07-20 17:15:03 (132 MB/s) - `index.html' へ保存完了 [612/612]


#192.168.2.13向け通信 -> NG

test@web1:~$ wget http://192.168.2.13
--2016-07-20 17:15:07--  http://192.168.2.13/
192.168.2.13:80 に接続しています... ^C

宛先ポート番号に対しての許可設定

特定の宛先IPアドレスとポート番号の通信のみ許可して、その他の通信に関しては
ファイアウォールのインタフェースで遮断する設定を行います。

サンプル設定のシナリオ

  • IPアドレス192.168.2.13 ポート番号80(HTTP)あての通信を転送したい
  • インタフェース(dp0s6)にインプットするトラフィックに対して有効化したい
  • 192.168.2.13かつポート80番以外の通信は、すべて遮断したい
構成図
Fig16

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

1.パケットフィルタリング設定の名前 test_rule
2.192.168.2.13ポート番号80を宛先とするパケットを許可するルールを10として設定
3.192.168.2.13ポート番号80以外を宛先とするパケットについて遮断する設定
4.dp0s6 インタフェースにてインプット方向へ適用

CLIにて入力するコマンド

set interfaces dataplane dp0s6 firewall in 'test_rule'
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 address '192.168.2.13'
set security firewall name test_rule rule 10 destination port '80'
set security firewall name test_rule rule 10 protocol 'tcp'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s5 インタフェースにてout test_rule という形で指定してください。

正しく設定が完了したときのコンフィグレーションは次のとおりです。
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
               }
       }
}
security {
       firewall {
               name test_rule {
                       default-action drop
                       rule 10 {
                               action accept
                               destination {
                                       address 192.168.2.13
                                       port 80
                               }
                               protocol tcp
                       }
               }
       }
}

動作確認結果

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

test@web1:~$ wget http://192.168.2.12
--2016-07-20 17:33:30--  http://192.168.2.12/
192.168.2.12:80 に接続しています... ^C


#192.168.2.13向け通信 -> OK

test@web1:~$ wget http://192.168.2.13
--2016-07-20 17:33:33--  http://192.168.2.13/
192.168.2.13:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 612 [text/html]
`index.html.3' に保存中

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

2016-07-20 17:33:33 (157 MB/s) - `index.html.3' へ保存完了 [612/612]

宛先ポート番号(範囲指定)に対しての拒否設定

特定の宛先ポート番号(範囲指定)を利用する通信のみファイアウォールの
インタフェースで遮断し、その他の通信に関しては転送する設定を行います。

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s5 firewall in 'test_rule'
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 destination port '1080-1081'
set security firewall name test_rule rule 10 protocol 'tcp'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s6 インタフェースにてout 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
       }
}
security {
       firewall {
               name test_rule {
                       default-action accept
                       rule 10 {
                               action drop
                               destination {
                                       port 1080-1081
                               }
                               protocol tcp
                       }
               }
       }
}

動作確認結果

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

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

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

2016-08-01 12:06:45 (168 MB/s) - stdout へ出力完了 [616/616]


#port 1080向け -> NG

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

#port 1081向け -> NG

test@ubu01:~$ wget -O - http://192.168.3.3:1081/ > /dev/null
--2016-08-01 12:07:00--  http://192.168.3.3:1081/
192.168.3.3:1081 に接続しています... ^C

宛先ポート番号(範囲指定)に対しての許可設定

特定の宛先ポート番号(範囲指定)を利用する通信のみ許可して、その他の通信に関しては
ファイアウォールのインタフェースで遮断する設定を行います。

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s5 firewall in 'test_rule'
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 '1080-1081'
set security firewall name test_rule rule 10 protocol 'tcp'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s6 インタフェースにてout 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
       }
}
security {
       firewall {
               name test_rule {
                       default-action drop
                       rule 10 {
                               action accept
                               destination {
                                       port 1080-1081
                               }
                               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/ > /dev/null
--2016-07-29 17:03:13--  http://192.168.3.3/
192.168.3.3:80 に接続しています... ^C

#port 1080向け -> OK

test@ubu01:~$ wget -O - http://192.168.3.3:1080/ > /dev/null
--2016-07-29 17:03:18--  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 17:03:18 (134 MB/s) - stdout へ出力完了 [616/616]


#port 1081向け -> OK

test@ubu01:~$ wget -O - http://192.168.3.3:1081/ > /dev/null
--2016-07-29 17:03:23--  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 17:03:23 (138 MB/s) - stdout へ出力完了 [616/616]

宛先ポート番号(サービスグループ)に対しての拒否設定

サービスグループを定義し、グループに含むポート番号を設定します。
サービスグループに登録されているポート番号を宛先ポート番号に利用した通信を拒否して
ファイアウォールのインタフェースで遮断し、その他のポート番号を
宛先とする通信に関しては転送する設定を行います。

注釈

サービスグループ(ポートグループ設定)は、複数のポート番号が 登録されたリストになります。 グループ化することで、リストに対してのポリシーを設定することが可能です。

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s5 firewall in 'test_rule'
set resources group port-group p1 port '1080'
set resources group port-group p1 port '1081'
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 destination port 'p1'
set security firewall name test_rule rule 10 protocol 'tcp'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s6 インタフェースにてout 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 accept
                       rule 10 {
                               action drop
                               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向け -> OK

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

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

2016-07-29 16:25:58 (174 MB/s) - stdout へ出力完了 [616/616]

#port 1080向け -> NG

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

#port 1081向け -> NG

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

宛先ポート番号(サービスグループ)に対しての許可設定

サービスグループを定義し、グループに含むポート番号を設定します。
サービスグループに登録されているポート番号を宛先ポート番号に利用した通信を転送して
その他のポート番号を宛先とする通信に関しては
ファイアウォールのインタフェースで遮断する設定を行います。

注釈

サービスグループ(ポートグループ設定)は、複数のポート番号が 登録されたリストになります。 グループ化することで、リストに対してのポリシーを設定することが可能です。

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s5 firewall in 'test_rule'
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'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は dp0s6 インタフェースにてout 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]