next up previous contents
Next: 6.4.6 ICMP対策 Up: 6.4 フィルタリングルール Previous: 6.4.4 不正なIPオプションを持ったパケット

6.4.5 ルールセットの整理

ここまでは全てのパケットについて out0 についてのみ考えて来ましたが、 ファイアーウォールがルータである場合、実際には out0 における in, out 、及び in1 における in, out の全てについて考える必要があります。

\epsfile{file=firewall1}

このように4つのパターン全てについて考えて行くと、多くのルールを 記述する必要があり、その全てのルールについてパケットは検査されることに なってしまいます。これを緩和するために、IPFilter にはグループという考え があります。ルールセットをグループに分けて、パケットに適用するグループを 設定する事が出来るようになっているのです。グループは番号によって区別 されます。それぞれのルールがどのグループに所属するかもこの番号を用いて 行います。まず、パケットにどのグループを適用するかは、head オプションを 使って決めます。次の例は、out0 に入って来たパケット全てにグループ番号 100 を適用出来るように、番号100をマークしています。

pass in log on out0 all head 100

但し、この場合はデフォルトで pass を指定しているので、このパケットを block するようなルールが他になければ通ってしまいます。通常、外側から 入って来るパケットについては、デフォルトで block にしておいた方が 良いでしょう。

block in log on out0 all head 100

これによって、out0 に入って来るパケットは全てログを取った上で、100 の 番号がマークされているので、out0 の入って来るパケットには100のグループの ルールが適用されます。 (先に quick ともに head を用いると、という話がありましたが、結論としては quick と共に head を指定すると、head で指定された番号のルールセットは 必ずチェックされます。従って、quick を使っても、すぐにその場ではルール の適用が終りません。)

これらを用いて、これまでの内容を書き直したものが次のルールセットです。

block in log on out0 all head 100
block out log on out0 all head 200
pass  in log on in1 all head 300
pass  out log on in1 all head 400
# Deny reserved addresses
block in log quick from 10.0.0.0/8 to any group 100
block in log quick from 192.168.0.0/16 to any group 100
block in log quick from 172.16.0.0/12 to any group 100
# Deny ip spoofing
block in log quick on out0 from 202.11.97.16/28 to any group 100
block out log quick on out0 from any to 202.11.97.16/28 group 200
# loop back
block in log quick from 127.0.0.0/8 to any group 100
block in log quick from any to 127.0.0.0/8 group 100
block in log quick from 127.0.0.0/8 to any group 300
block in log quick from any to 127.0.0.0/8 group 300
# pass loop back on lo0
pass  in  quick on lo0 all
pass  out quick on lo0 all
# other reserved address
block in quick on out0 from any to 0.0.0.0/8 group 100
block in quick on out0 from any to 169.254.0.0/16 group 100
block in quick on out0 from any to 192.0.2.0/24 group 100
# block in quick on out0 from any to 224.0.0.0/4 group 100 # multicast
block in quick on out0 from any to 240.0.0.0/4 group 100
# IP options
block in log quick on out0 from any to any with opt rr group 100
block in log quick on out0 from any to any with opt ts group 100
block in log quick on out0 from any to any with opt ssrr group 100
block in log quick on out0 from any to any with opt lsrr group 100

以上のように、各々のルールがどのグループに所属するルールかは、ルールの 末尾に付けた group [number] で区別する訳です。



Noriyo Kanayama