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

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

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

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

送信元ポート番号に対しての拒否設定

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

サンプル設定のシナリオ

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

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

1.パケットフィルタリング設定の名前 test_rule
2.192.168.2.13ポート番号80を送信元とするパケットを拒否するルールを10として設定
3.192.168.2.13ポート番号80以外を送信元とするパケットについて許可する設定
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 protocol 'tcp'
set security firewall name test_rule rule 10 source address '192.168.2.13'
set security firewall name test_rule rule 10 source port '80'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は 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
                               protocol tcp
                               source {
                                       address 192.168.2.13
                                       port 80
                               }
                       }
               }
       }
}

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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-21 19:18:10--  http://192.168.2.12/
192.168.2.12:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 612 [text/html]
`index.html.6' に保存中

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

2016-07-21 19:18:10 (144 MB/s) - `index.html.6' へ保存完了 [612/612]


#192.168.2.13向け通信 -> NG

test@web1:~$ wget http://192.168.2.13
--2016-07-21 19:18:13--  http://192.168.2.13/
192.168.2.13:80 に接続しています... ^C

送信元ポート番号に対しての許可設定

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

サンプル設定のシナリオ

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

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

1.パケットフィルタリング設定の名前 test_rule
2.192.168.2.13ポート番号80を送信元とするパケットを許可するルールを10として設定
3.192.168.2.13ポート番号80以外を送信元とするパケットについて遮断する設定
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 protocol 'tcp'
set security firewall name test_rule rule 10 source address '192.168.2.13'
set security firewall name test_rule rule 10 source port '80'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は 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
                               protocol tcp
                               source {
                                       address 192.168.2.13
                                       port 80
                               }
                       }
               }
       }
}

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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-21 17:53:12--  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-21 17:53:07--  http://192.168.2.13/
192.168.2.13:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 612 [text/html]
`index.html.4' に保存中

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

2016-07-21 17:53:07 (140 MB/s) - `index.html.4' へ保存完了 [612/612]

送信元ポート番号(範囲指定)に対しての拒否設定

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

サンプル設定のシナリオ

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

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

1.パケットフィルタリング設定の名前 test_rule
2.送信元ポート番号(1080から1081)のパケットを拒否するルールを10として設定
3.送信元ポート番号(1080から1081)以外の宛先ポート番号を利用するパケットについて許可する設定
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 protocol 'tcp'
set security firewall name test_rule rule 10 source port '1080-1081'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は 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
                               protocol tcp
                               source {
                                       port 1080-1081
                               }
                       }
               }
       }
}

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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-07-29 16:12:41--  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:12:41 (103 MB/s) - stdout へ出力完了 [616/616]


#port 1080向け通信 -> NG

test@ubu01:~$ wget -O - http://192.168.3.3:1080/ > /dev/null
--2016-07-29 16:12:46--  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-07-29 16:13:06--  http://192.168.3.3:1081/
192.168.3.3:1081 に接続しています... ^C

送信元ポート番号(範囲指定)に対しての許可設定

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

サンプル設定のシナリオ

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

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

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

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 protocol 'tcp'
set security firewall name test_rule rule 10 source port '1080-1081'

注釈

シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は 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
                               protocol tcp
                               source {
                                       port 1080-1081
                               }
                       }
               }
       }
}

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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 15:50:06--  http://192.168.3.3/
192.168.3.3:80 に接続しています... ^C
test@ubu01:~$

#port 1080向け通信 -> OK

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


#port 1081向け通信 -> OK

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

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

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

注釈

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

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s6 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 protocol 'tcp'
set security firewall name test_rule rule 10 source port 'p1'

注釈

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

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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-07-29 16:21: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:21:58 (168 MB/s) - stdout へ出力完了 [616/616]


#port 1080向け通信 -> NG

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

#port 1081向け通信 -> NG

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

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

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

注釈

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

サンプル設定のシナリオ

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

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

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

CLIにて入力するコマンド

set interfaces dataplane dp0s6 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 protocol 'tcp'
set security firewall name test_rule rule 10 source port 'p1'

注釈

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

動作確認結果

以下の検証結果ログから、検証構成図にあるサーバ(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 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/ > /dev/null
--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/ > /dev/null
--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]