ファイアウォール(ipfw)の利用設定〜FreeBSD 4.8-RELEASE の場合〜
FreeBSD 4.8-RELEASE では、新たにファイアウォールソフトなどをインストールしなくても、カーネルの再構築をすれば、ファイアウォール(ipfw)の利用が出来るようになる。
下記オプションを追加して、カーネル再構築。
(今回は、/usr/src/sys/i386/conf/SHINODA を使用)
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
カーネル再構築がすんだら、/etc/rc.conf に、下記の記述を追加。
firewall_enable="YES"
firewall_type="open"
このように、ファイアウォールのタイプにとりあえず "open" を指定しておかないと、再起動後に別のマシンから telnet が出来なくなり("closed" を指定したのと同じ状態なんかな?)、コンソールから操作をしなくてはいけなくなるので面倒やで。
ちなみにわしは、firewall_enable="YES" の記述もしてなかったので、「ファイアウォールを使えるようにはしたが、有効にはしていない」状態なのかと思っていたが、再起動後に telnet 接続が出来なくなってたんで焦った。
なんでやろう?
/etc/defaults/rc.conf を見ると、ちゃんと firewall_enable="NO" がディフォルトのようだが・・・。何か、別に原因があったのか???
ま、ちゃんと /etc/rc.conf に設定を書けば問題ないけど。
で、再起動後、手動でルールを追加してテストをしながら通常設定するルールを決めていく。
で、そのルールを適当なファイル(/etc/rc.ipfw 等)に保存して、/etc/rc.conf の中で、
firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
のように記述。(firewall_type="open" の記述は、削除するかコメントにする)
で、一旦、
mikan# /etc/rc.ipfw
のように実行して、ipfw のルールの設定状況をきれいにしましょうで。
<特別付録>
一番最初に設定した /etc/rc.ipfw の中身。
#!/bin/sh
# rc.ipfw
fwcmd="/sbin/ipfw -q"
${fwcmd} -f flush
# Only in rare cases do you want to change these rules
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
${fwcmd} add 410 deny all from 192.168.10.0:255.255.255.0 to any in recv ed0
${fwcmd} add 420 deny all from 192.168.0.0:255.255.255.0 to any in recv dc0
${fwcmd} add 430 deny all from 10.0.0.0/8 to any via ed0
${fwcmd} add 440 deny all from 172.16.0.0/12 to any via ed0
# maintenance IP
# 192.168.0.7 Windows 2000 PC
# 192.168.0.17 Fedora Core 1 PC
${fwcmd} add 510 allow ip from 192.168.0.7 to 192.168.0.5
${fwcmd} add 520 allow ip from 192.168.0.5 to 192.168.0.7
${fwcmd} add 530 allow ip from 192.168.0.17 to 192.168.0.5
${fwcmd} add 540 allow ip from 192.168.0.5 to 192.168.0.17
この後、Samba サーバにつながらない等の諸症状を解決するため、問題が出るたびにルールの追加をしていっています。
|
|