フィルタリングルールを書く際に、テストをせずにいきなり運用するのは危険です。 幸い、IPFilter には設定したルールのテストを IPFilter を動かす事無く行う 事が出来るようになっています。ipftest コマンドがそのためのコマンドで、 設定したルールセットに対して、どういうパケットが入って来たらどういう動作を するのかを見る事が出来ます。
# ipftest -r ipf.rules -i data |
上の例では、作成したルールセットのファイルが ipf.rules で、テストしたい パケットの特徴を記述したファイルが data です。 例えば、data ファイルは以下のように記述します。
in on out0 tcp 202.11.100.1,20000 202.11.97.17,80 |
このデータでは、TCP プロトコルを用いて、インターフェース out0 に IP 202.11.100.1 のPort 20000 から、202.11.97.17 の Port 80 への パケットが飛んで来たという事を意味しています。
これを実際にテストを行うと例えば以下のようになり、許可されている (pass)ことが分かります。
# ipftest -r ipf.rules -i data opening rule file "ipf.rules" input: in on out0 tcp 202.11.100.1,20000 202.11.97.17,80 pass ip 40(20) 6 202.11.100.1,20000 > 202.11.97.17,80 -------------- |
このように、想定されるパケット一つ一つに対して、ルールセットが正しいか 否かを検査する事が出来る訳です。