next up previous contents
Next: ロギング Up: フィルタリングルール Previous: ここまでのまとめ

テスト

rule が完成したならば、最初に紹介した ipftest を用いてテストをします。 この場合、SYN ビットなどを指定したテストや、ICMPのパラメータを指定 したテストを行う必要があります。

下は、tcp のフラグをセットしたテストのためのデータの例です。


in  on fxp0 tcp 202.11.200.10,200000  192.168.1.1,80     S 
out on fxp0 tcp 192.168.1.1,80       202.11.200.10,20000 SA
in  on fxp0 tcp 202.11.200.10,200000  192.168.1.1,80     A 
out on fxp0 tcp 192.168.1.1,80       202.11.200.10,20000 A
in  on fxp0 tcp 202.11.200.10,200000  192.168.1.1,80     A 
out on fxp0 tcp 192.168.1.1,80       202.11.200.10,20000 FA
in  on fxp0 tcp 202.11.200.10,200000  192.168.1.1,80     A 
in  on fxp0 tcp 202.11.200.10,200000  192.168.1.1,80     FA 
out on fxp0 tcp 192.168.1.1,80       202.11.200.10,20000 A

この場合、202.11.200.10,20000 から内部の 192.168.1.1,80 への アクセスがあり、データをやり取りして終了するという流れを想定 したデータになっています。

一方、不正なTCPフラグを持ったテストは以下のようなものです。


in  on fxp0 tcp 202.11.200.10,20000  192.168.1.1,80     S 
in  on fxp0 tcp 202.11.200.10,20000  192.168.1.1,80     SA 
in  on fxp0 tcp 202.11.200.10,20000  192.168.1.1,80     SFP 
in  on fxp0 tcp 202.11.200.10,20000  192.168.1.1,80     SPU

一方、ICMP については、


in  on fxp0 icmp 202.11.200.10  192.168.1.1  echo 
in  on fxp0 icmp 202.11.200.10  192.168.1.1  echorep
in  on fxp0 icmp 202.11.200.10  192.168.1.1  unreach

のようにします。勿論、応答があるICMPについてはその方向を考慮した テストが必要です。

もう一度、IPFilter におけるICMP type の表記を書いておきましょう。

"unreach","echo","echorep","squench", "redir", "timex","paramprob","timest", "timestrep","inforeq", "inforep","maskreq","maskrep" ,"routerad","routersol"

勿論、番号でも構いません。

同様に、UDP についてもテストを行う必要がありますが、この際に注意すべきは、 keep state を使っている場合に、どちらからどちらへのコネクションを keep state を用いて許しているかです。許している方向、許していない方向、両方についての テストが必要です。

その他に、IP オプションやフラグメンテーション、TCP オプションなどのテスト もできますが man や IPFilter のドキュメントを参照してください。



Noriyo Kanayama