パケットフィルタリングの設定 その1

まずは原則許可のルールでパケットフィルタリングの設定の雛形を用意します。
この段階ではルータが動作することを優先することとし、パケットフィルタリングの詳細な設定は後で行います。

/etc/rc.firewallに"MyRouter"エントリを追加する
# ee /etc/rc.firewall

[Mm][Yy][Rr][Oo][Uu][Tt][Ee][Rr])
oif="tun0"               #WAN側インターフェイス
iif="sis0"               #LAN側インターフェイス名
inet="192.168.0.0"       #LAN側ネットワークアドレス
imask="255.255.255.0"    #LAN側ネットマスク
iip="192.168.0.1"        #このルータのLAN側のIPアドレス
#NAT使用の場合
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add divert natd all from any to any via ${natd_interface}
fi
;;
esac
${fwcmd} add allow ip from any to any  #全てのパケットの出入りを許可
;;

※ ${fwcmd}は/etc/rc.firewallの最初の方で下の様に予め指定されています。

*)
fwcmd="/sbin/ipfw"
;;
esac


あとはshutdown -r nowでリブートすれば自動的に接続してくれます。
ifconfig -a でtunnelデバイスの部分にプロバイダ側のIPアドレスが出てれば接続されています。

ifconfig -aの例(一部抜粋)

tun0: flags=8051 mtu 1454
inet ***.***.***.*** --> ***.***.***.*** netmask ********
Opened by PID 92

原則許可のipfwルールリスト表示の例

# ipfw list
00100 allow ip from any to any via lo0
00200 divert 8668 ip from any to any via tun0
00300 allow ip from any to any
65535 deny ip from any to any

00200はNATの場合のみ。これがNATアドレス変換のルール。
65535はデフォルトで自動追加される原則拒否ルールだが00300で全て通すので事実上無効となっている。

これでルータは一応完成です。
FreeBSDのインストールをしたことが無い人はFreeBSDのインストールがちょっと心細いかもしれませんが、ルータにする場合はその後の作業はとても簡単であっという間に完成してしまいます。(この後フィルタリング設定を煮詰めるのに苦労しますが・・・)


パケットフィルタリングの設定その2に進む