パケットフィルタリングを有効にする | ホームサーバが出来るまで。

パケットフィルタリングを有効にする

インターネットに接続する前に変なことが起こるのを減らす必要があります。要するにセキュリティについて考えましょう、ということです。どのような手法があり、どのような対策を行うか、ということはとても範囲が広いので、今ここで記述することはできません(知識的にも、時間的にも)。

境界ルータでパケットフィルタリングを行っているのですが、ホームサーバにも基本的なパケットフィルタリングを付けることにします。FreeBSD に標準で含まれている IPFilter を有効にします。おそらく未来永劫、使い続けると思うのでカーネルに組み込んでしまうことにします(試していませんがカーネルを変更しない方法もあるようです。man kldstatとかで調べられそうです)。

/usr/src/sys/i386/conf/GENERIC を元にして
options IPFILTER # ipfilter support
options IPFILTER_LOG # ipfilter logging
options IPFILTER_DEFAULT_BLOCK # block all packets by default
を追加、カーネルの再構築を行います。手順は色々な場所に乗っているのでごく簡単に。
cp GENERIC k20040918
vi k20040918
config k20040918
cd ../compile/k20040918/
make depend; make
ここで、2時間強かかりました。使用するマシンの性能によります。
エラーが無ければ、
make install
shutdown -r now

無事に起動したら、IPFilter を有効にするための設定を行います。/etc/rc.conf に
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipflog"
を追加。
touch /var/log/ipflog
も念のために実行しておきます。
そして /etc/ipf.rules を作成。
全て通す設定にすれば、とりあえず試すことが出来ます。
pass in all
pass out all
運用時にはpass in all,pass out allの代わりに色々な設定をすることになります。リモートから ssh で操作している場合、ssh をブロックすると大変なことになるかと思います。ルールの作成には注意が必要です。

参考リンク
Firewall 構築ガイド
ASH multimedia lab.より
F.Kimura.com より