pf ( Packet Filter ) の導入
pf は、もともとは OpenBSD の為に開発されたファイアウォールソフトウェアです。
現在は FreeBSD などの、 BSD 系 OS に移植が進められており、近年注目のファイアウォールソフトウェアだと言えます。
ここでは pf を使用したファイアウォール構築の為の、前準備について説明します。
カーネル再構築
私は HP の ProLiant ML115 を使っているので、同じ物を使用してる方はこちらをご覧下さい。
それ以外の方は下記の手順に従ってカーネル再構築を行ってください。
pf を有効にする為にコンフィグファイルを編集する
まずはカーネル再構築の為にコンフィグファイルを編集します。
# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/PFKERNEL
# vi /usr/src/sys/i386/conf/PFKERNEL
ident GENERIC
↓ ( 変更 )
ident PFKERNEL
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
↓ ( 追記 )
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device pf # Packet filter
device pflog # Packet filter logging
device pfsync # Packet filter state table logging
不要ファイルの削除
再構築の際には、以前に buildworld などを行っている場合は /usr/obj 以下を削除する必要があります。
# chflags -R noschg /usr/obj/*
# rm -rf /usr/obj/*
再構築
ここでは -j オプションと KERNCONF オプション、後でログを閲覧出来るように tee を使用したログ出力を行います。
# make -j4 buildkernel installkernel KERNCONF=MYKERNEL |& tee ~/MakeKernel.log
再起動
特にエラーなどが無かったら再起動します。
再起動後は uname などで新しいカーネルが使われているかどうか調べてください。
# shutdown -r now
有効にする
pf を有効にする為に rc.conf に記述します。
今回はルールファイルを一から作るので、 pf_rules の項目を変えました。
# vi /etc/rc.conf
pf_enable="YES"
pf_rules="/etc/pf.rules"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
ファイアウォールの種類
ファイアウォールには利用の仕方によって、いくつかの種類に分けられます。