pf 続き
ちょろっとメモです。
まずは使い方ですが
- /etc/rc.conf に pf_enable="YES"
- /etc/pf.conf(デフォルト)にルール記述
- /etc/rc.d/pf start で pf 開始、/etc/rc.d/pf stop で停止
です。ちなみに
- pfctl -nf /etc/pf.conf でルールテスト可能
- ipfilter と違い、/etc/pf.conf にフィルタルール/NAT ルール共に記載
も私的にはポイントです。
loadable module なので kernel の再構築が必要ない*1のは ipfilter 同様で便利ですが、ファイアウォールとしてのデフォルトポリシーを明示的に指定しないと DENY にできないのはチョッと... ま、かといって ipfw.ko みたいに load した瞬間に DENY ポリシーが適応されて、ネットワーク経由での操作が一切できなくなるのもかなり怖いですが :p)。
とりあえず自宅の VMWare 環境*2では、以下のルールを設定しています。
ext_if = "lnc0" tableconst { 10.0.0.0/8 172.16.0.0/12 } scrub in all pass in quick on lo0 all pass out quick on lo0 all antispoof quick for $ext_if inet block in on $ext_if from to any block out on $ext_if from any to
自宅では 192.168.0.0/24 を使っているので、それは除外してます。で、これを load すると、実際にはこんな感じに展開されます。
# pfctl -sr scrub in all fragment reassemble pass in quick on lo0 all pass out quick on lo0 all block drop in quick on ! lnc0 inet from 192.168.0.0/24 to any block drop in quick on ! lnc0 inet from 192.168.0.53 to any block drop in quick on ! lnc0 inet from 192.168.0.54 to any block drop in quick on ! lnc0 inet from 192.168.0.55 to any block drop in quick on ! lnc0 inet from 192.168.0.56 to any block drop in quick inet from 192.168.0.52 to any block drop in quick inet from 192.168.0.53 to any block drop in quick inet from 192.168.0.54 to any block drop in quick inet from 192.168.0.55 to any block drop in quick inet from 192.168.0.56 to any block drop in on lnc0 fromto any block drop out on lnc0 from any to # pfctl -t rfc1918_wo_192 -Tshow 10.0.0.0/8 172.16.0.0/12
ipfilter も 4.x になると大分変わったみたいなので一概には言えませんが、現行の ipfilter 3.x と比較すると、ルールの記述がかなりシンプルにできるので、既存のルールがゴチャゴチャしてきたなぁ... と思っていた私には嬉しい限りです(ので、こうしてメモメモ :-)。