Firewallの設定方法
サーバ1及びサーバ2(FreeBSD2.2.8)
2.2.8ではカーネルの再構築が必要になる。
カーネルに次の2行を追加する。
options IPFIREWALL
options IPDIVERT
カーネルを再構築して、インストールする。
/etc/rc.confの編集
firewall_enable="YES"
firewall_type="open"
として、再起動させる。
とりあえず、Firewallについては、稼働するが、openなので何もしてないと同じ状態である。
そこで、/etc/rc.firewallの中を見てネットワークの環境に応じて変更する必要がある。
(この時に、ネットワーク越しで設定を行う場合は注意が必要。設定を間違うとアクセス
できなくなる可能性あり。ローカルで行った方が無難。)
ただこの状態では、Firewallについては、不正アクセス等のログを取ることができないので、
ipfwのモジュールを再度makeする必要がある。
/usr/src/lkm/ipfw/の中にあるMakefileを編集する。
#CFLAGS+= -DIPFIREWALL_VERBOSE
の行の先頭の#をはずし、make obj all installする。
ip_fw.oとipfw_mod.oが作成される。
さらに、カーネルに組み込む作業が必要になる。
ip_fw.oを/usr/src/sys/compile/{kernel naem}/にコピーする。
そこで、再度カーネルのmakeとmake installを行うと、ipfwのモジュールが新しく組み込まれる。
再起動して、起動画面にIP packetのメッセージの最後がunlimited loggingとなっていれば、
ログが取れる状態になっている。ログの場所は、/var/log/messagesになっている。
そこを確認するといろいろな情報が分かるでしょう。
4.1でのFirewallの設定方法
4.1では、カーネルの再構築は不要である。ただ、/etc/rc.confを編集するだけである。
firewall_enable="YES"
firewall_type="open"
何もしない状態。またはfirewall_typeでなく次の行のようにして、
firewall_script="/etc/firewall.local"
設定を/etc/firewall.localに記述していく方法もある。
中身については、/etc/rc.firewallを見て参考にした方がいいでしょう。
4.1でも同様にログを取るにはipfwのモジュールをmakeする必要がある。
/usr/src/sys/modules/ipfw/の中にあるMakefileを編集する。
#CFLAGS+= -DIPFIREWALL_VERBOSE
の行の先頭の#をはずし、make obj all installする。
後は再起動して、起動画面にIP packetのメッセージの最後がunlimited loggingとなっていれば、
ログが取れる状態になっている。ログの場所は、/var/log/securityになっている。
Firewallの設定ポリシー
既存のネットワークで新たにfirewallを設定する場合は、openから始めて不要なパケットを
通さないように設定していく方法がおすすめであるが、見落としがあったり甘い設定になる
可能性もあるので、充分注意した方がいいだろう。
また、最初から、ネットワークを組みfirewallを設定する場合は、closedからはじめて必要な
パケットを通す設定をしていった方がいいだろう。そうすることによって頑強なサーバを構築
できるのではないでしょうか。