こんばんは。続きを書くと言いながら、他のネタを取り上げてしまい、言及するのが遅くなりました。
さて、どうにかこうにか、動的フィルタと静的フィルタを組み合わせた片方向通信フィルタリングルールを書くことが出来ました。しかし、動的フィルタで対応可能なのはtcpとudpだけで、icmpには対応していません。このままではpingが通りません。結局、icmpだけは静的フィルタで記述してやる必要があります。
なので、最初にicmpパケットを全て通すように以下のようなフィルタを定義します。
ip filter 10 pass * * icmp
ネットワーク疎通確認のこともありますので、pingに関しては通すようにしておきます。(もちろん、細かく制御するのもありです)
そして、静的フィルタで内部DMZから各VLANへのパケットをrejectする設定を書いておきます。各LANから動的フィルタで内部DMZへtcp,udpパケットを通すように設定します。それだけでは通信が成立しませんので、トリガとなるパケットを通すために、静的フィルタで全てのパケットを許可しておきます。もちろん、絞り込んでもOKです。インターネットに出て行かないようにするのであれば、各VLANのネットワークをピンポイントで指定すれば良いことになります。
例として、VLANが2つ(192.168.0.0/24(vlan1)と192.168.1.0/24(vlan2))、内部DMZとして192.168.2.0/24(vlna3)が定義されているものとします。
(LAN1ポートをLAN分割しているという前提です)
以下のようなルールになります。
ip vlan1 address 192.168.0.1/24
ip vlan2 address 192.168.1.1/24
ip vlan3 address 192.168.2.1/24
ip filter 10 pass * * icmp
ip filter 20 reject 192.168.2.0/24 192.168.0.0/23
ip filter 30 pass 192.168.0.0/23 192.168.2.0/24
ip filter 40 pass * *
ip filter dynamic 100 192.168.0.0/23 192.168.2.0/24 tcp
ip filter dynamic 110 192.168.0.0/23 192.168.2.0/24 udp
ip vlan3 secure filter in 10 20 40
ip vlan3 secure filter out 10 40 dynamic 100 110
こんな感じでしょうか。内部DMZと2つのVLANに限った設定にしています。
設定順にフィルタが適用されます。一見icmp全通のフィルタは不要なように思えますが、動的フィルタがtcpとudpにしか働かないため、明示的にicmpパケットを通すように書いておく必要がありました。
もう少し考察が必要だなと思っているところです。