アドレスグループ設定¶
動作確認バージョン: | Brocade 5600vRouter Version4.2R1S1 |
---|
アドレスグループとは
ファイアウォール機能でパケットフィルタリングを設定する時にルールを記述しますが
登録されたIPアドレスのリストに対しての通信可否を設定することが可能です。
このIPアドレスが登録されたリストをアドレスグループと呼びます。
注釈
アドレスグループは32まで設定可能です。それ以上のグループ数は作成できません。
複数のIPアドレスをグループ化する設定¶
複数のIPアドレスからなるグループを作成します。
サンプル設定のシナリオ
- IPアドレス 192.168.2.12,192.168.2.13 のアドレスグループを作成したい
- アドレスグループの名前を g1 にしたい
CLIにて入力するコマンド
set resources group address-group g1 address '192.168.2.12'
set resources group address-group g1 address '192.168.2.13'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
resources {
group {
address-group g1 {
address 192.168.2.12
address 192.168.2.13
}
}
}
1つのIPアドレスを複数のグループに追加する設定¶
IPアドレスは複数のリストに所属することが可能です。
サンプル設定のシナリオ
- IPアドレス192.168.2.12,192.168.2.13 のアドレスグループを作成したい
- 上記アドレスグループを g1 にしたい
- IPアドレス192.168.2.12,192.168.2.6のアドレスグループを作成したい
- 上記アドレスグループを g2 にしたい
CLIにて入力するコマンド
set resources group address-group g1 address '192.168.2.12'
set resources group address-group g1 address '192.168.2.13'
set resources group address-group g2 address '192.168.2.12'
set resources group address-group g2 address '192.168.2.6'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
resources {
group {
address-group g1 {
address 192.168.2.12
address 192.168.2.13
}
address-group g2 {
address 192.168.2.12
address 192.168.2.6
}
}
}
IPアドレス範囲(ネットワーク)をグループ化する設定¶
アドレスグループには、IPアドレスの範囲を指定してリストに所属することが可能です。
サンプル設定のシナリオ
- IPアドレス192.168.2.4/30,192.168.2.12/30 のネットワークごとアドレスグループを作成したい
- 上記アドレスグループを g3 にしたい
注釈
192.168.2.4/30は、192.168.2.4 から192.168.2.7の4つIPアドレスが対象になります。
192.168.2.12/30は、192.168.2.12から192.168.2.15の4つのIPアドレスが対象になります。
CLIにて入力するコマンド
set resources group address-group g3 address '192.168.2.4/30'
set resources group address-group g3 address '192.168.2.12/30'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
resources {
group {
address-group g3 {
address 192.168.2.4/30
address 192.168.2.12/30
}
}
}
作成したグループをパケットフィルタリングに利用する設定¶
アドレスグループを定義し、グループに含むIPアドレスを設定します。
アドレスグループに登録されているIPアドレスからの通信を許可して
その他のIPアドレスを送信元とする通信に関しては
ファイアウォールのインタフェースで遮断する設定を行います。
注釈
アドレスグループは、複数のIPアドレスを登録されたリストになります。 グループ化することで、リストに対してのポリシーを設定することが可能です。
サンプル設定のシナリオ
- IPアドレス 192.168.2.6と192.168.2.13 のアドレスからの通信だけを転送したい
- 上記アドレスをアドレスグループとして設定したい
- インタフェース(dp0s5)にインプットするトラフィックに対して有効化したい
- アドレスグループ以外の送信元IPアドレスからの通信はすべて遮断したい
構成図
シナリオにおける設定のながれ
1.パケットフィルタリング設定の名前 test_rule
2.192.168.2.6と192.168.2.13をアドレスグループ g1 として設定
3.アドレスグループg1を送信元IPとするパケットを許可するルールを10として設定
4.アドレスグループg1以外を送信元IPとするパケットについて拒否する設定
5.dp0s5 インタフェースにてインプット方向へ適用
CLIにて入力するコマンド
set interfaces dataplane dp0s5 firewall in 'test_rule'
set resources group address-group g1 address '192.168.2.13'
set resources group address-group g1 address '192.168.2.6'
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 source address 'g1'
注釈
シナリオと同じポリシーで、フィルタリング設定をアウトプット方向で適用したい場合は 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 {
address-group g1 {
address 192.168.2.13
address 192.168.2.6
}
}
}
security {
firewall {
name test_rule {
default-action drop
rule 10 {
action accept
source {
address g1
}
}
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にあるサーバ(192.168.2.6)から
192.168.3.3 への通信(Ping)が成功しますが、アドレスグループg1に該当しない
192.168.2.12からの通信(Ping)は失敗しておりパケットフィルタリング機能が動作していることが確認できました。
#192.168.2.6から通信 -> OK
test@ubu01:~$ ping 192.168.3.3
PING 192.168.3.3 (192.168.3.3) 56(84) bytes of data.
64 bytes from 192.168.3.3: icmp_seq=1 ttl=63 time=3.07 ms
64 bytes from 192.168.3.3: icmp_seq=2 ttl=63 time=1.19 ms
64 bytes from 192.168.3.3: icmp_seq=3 ttl=63 time=1.78 ms
64 bytes from 192.168.3.3: icmp_seq=4 ttl=63 time=1.43 ms
64 bytes from 192.168.3.3: icmp_seq=5 ttl=63 time=1.78 ms
64 bytes from 192.168.3.3: icmp_seq=6 ttl=63 time=1.31 ms
64 bytes from 192.168.3.3: icmp_seq=7 ttl=63 time=1.56 ms
64 bytes from 192.168.3.3: icmp_seq=8 ttl=63 time=1.54 ms
64 bytes from 192.168.3.3: icmp_seq=9 ttl=63 time=1.48 ms
^C
--- 192.168.3.3 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8013ms
rtt min/avg/max/mdev = 1.194/1.684/3.071/0.524 ms
#192.168.2.12から通信 -> NG
test@ubu03:~$ ping 192.168.3.3
PING 192.168.3.3 (192.168.3.3) 56(84) bytes of data.
^C
--- 192.168.3.3 ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7055ms
作成したグループをNATに利用する設定¶
アドレスグループを定義し、グループに含むIPアドレスを設定します。
NAT機能をご利用いただく際に、ネットワークアドレス変換するための条件に
アドレスグループを利用することが可能です。
サンプル設定のシナリオ
- IPアドレス 192.168.2.6と192.168.2.12 のアドレスからの通信に対してSourceNATしたい
- 上記アドレスをアドレスグループとして設定したい
- インタフェース(dp0s6)から出力するトラフィックに対して有効化したい
構成図
シナリオにおける設定のながれ
1.アドレスグループの名前を g1 としてIPアドレス192.168.2.6と192.168.2.12を登録する
2.送信元がアドレスグループ g1 かつインタフェース(dp0s6)の出力時にネットワークアドレス変換を設定
CLIにて入力するコマンド
set resources group address-group g1 address '192.168.2.6'
set resources group address-group g1 address '192.168.2.12'
set service nat source rule 10 outbound-interface 'dp0s6'
set service nat source rule 10 source address 'g1'
set service nat source rule 10 translation address 'masquerade'
set service nat destination rule 10 destination address '192.168.2.50'
set service nat destination rule 10 inbound-interface 'dp0s5'
set service nat destination rule 10 translation address '192.168.3.3'
正しく設定が完了したときのコンフィグレーションは次のとおりです。
resources {
group {
address-group g1 {
address 192.168.2.6
address 192.168.2.12
}
}
}
service {
nat {
destination {
rule 10 {
destination {
address 192.168.2.50
}
inbound-interface dp0s5
translation {
address 192.168.3.3
}
}
}
source {
rule 10 {
outbound-interface dp0s6
source {
address g1
}
translation {
address masquerade
}
}
}
}
}
動作確認結果
以下の検証結果ログから、検証構成図にあるサーバ(192.168.2.6)から
192.168.2.50 への通信(HTTP GET)に関して、インタフェース dp0s5が受信時に
宛先IPアドレスが192.168.3.3に変換されて、インタフェース dp0s6から192.168.3.3に
出力される時に、アドレスグループに合致する送信元IPアドレスの際に、192.168.3.5に
変換されて目的のサーバ192.168.3.3にアクセスが成功しています。
サーバのアクセスログからも、192.168.3.5からのアクセスになっていることを確認
できていることから、NAPT変換のルールにアドレスグループが適用されていることが確認できました。
注釈
NATの動作やコンフィグレーションに関しましては、ネットワーク機能設定例のNAT機能をご参照ください。
#clientからのアクセス
test@ubu01:~$ wget -O - http://192.168.2.50/ > /dev/null
--2016-07-29 13:46:17-- http://192.168.2.50/
192.168.2.50:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 616 [text/html]
`STDOUT' に保存中
100%[========================================================================================================================================================================================================>] 616 --.-K/s 時間 0s
2016-07-29 13:46:17 (161 MB/s) - stdout へ出力完了 [616/616]
#web access
test@web1:~$ tail /usr/local/nginx/logs/access.log
192.168.2.6 - - [26/Jul/2016:11:29:10 +0900] "GET / HTTP/1.1" 200 616 "-" "Wget/1.15 (linux-gnu)" "-"
192.168.2.6 - - [29/Jul/2016:10:50:25 +0900] "GET / HTTP/1.1" 200 616 "-" "Wget/1.15 (linux-gnu)" "-"
192.168.3.5 - - [29/Jul/2016:10:53:59 +0900] "GET / HTTP/1.1" 200 616 "-" "Wget/1.15 (linux-gnu)" "-"
192.168.3.5 - - [29/Jul/2016:11:40:57 +0900] "GET / HTTP/1.1" 200 616 "-" "Wget/1.15 (linux-gnu)" "-"
192.168.3.5 - - [29/Jul/2016:13:46:16 +0900] "GET / HTTP/1.1" 200 616 "-" "Wget/1.15 (linux-gnu)" "-"