BACKipfilterOCNのサイトの参考例はルーターで一通りのセキュリティ設定をした後、サーバー本体でも同様のセキュリティ設定をするようになっている。確かに2重にかければルーターが何らかの理由によって穴が開いてもサーバー本体でブロックすることができる。FreeBSDではipfilterを使った設定例が示されていたので、これを参考にした。ipfilterはモジュールをカーネルにロードする方式を選んだ。一つの方法はカーネルの再構築であるが、モジュールを使う方がお手軽である。現状のカーネル状態を表示する。kernelモジュールを追加してその結果を再表示する。ipl.koこれだけではリブートすると元に戻ってしまうので、ブート時に自動組込されるように/boot/loader.confに下記を追記する。ipl_load="YES"さらに/etc/rc.confを編集して下記をコメントする。/var/log/ipflog"これでipf.rulesによりフィルターが有効になり、ログの採取もできるようになる。ipf.rulesデフォルトのipf.rulesは以下のコマンドで実施する。inet6はIPv6を使わないというおまじないとのこと。/etc/ipf.rulesただし、FreeBSD4.4Rインストールの際、全てのソースファイルのインストールを選択しておく必要がある。インストールしていない場合は/stand/sysinstallで追加する。入力と規定されている。これをベースにチューニングしていくわけであるが、自宅サーバーは外部向けにはwww、smtp、内部向けにはssh、POP、ftpを使いたいのでこれらについて記述する。サーバーのアドレスは192.168.0.2と仮定する。100と記述したらLAN内から192.168.0.2を叩いてもブラウジングできない。80とするとちゃんと接続できるしGETと叩くとテキストを引っ張ってくるので、ipf.rules記述に問題があるようである。結果をいろいろと試してみた。100と記述したら通るようになった。オプションのS/SAを外す必要があった。100はルーターからのsyslogを受け取るための記述である。入ってくる方は以下のコマンドでわかる。any出る方は以下のコマンドでわかる。anyNIC交換時の注意サーバーが不調になった際、NICの故障も考えられたので念のため、交換した。NE2000互換の10MbpsタイプのNICは売っておらず、プラネックスコミュニケーションのFW-110TX-PKを購入して装着した。NIC自体はPCのBIOSで認識されており、/stand/sysinstallでIPアドレスを設定したら、無事使用できるようになった。して/var/log/ipflogが更新されいないのに気がついた。原因を探っていた結果、設定ファイルを修正することで解決した。00:90:cc:42:8e:1bでrl0と認識されており、NE2000互換NICのed0とは違っていたのでこれを書き換える必要がある。255.255.255.0"のed0をrl0に書き換える。100のed0をrl0に書き換える。以上、2つの設定ファイルでNIC関連の箇所を書き換え、リブートすればOKである。上述したipf.rulesはFreeBSD4系から使い始め、現在の6.3系でもそのままである。ところが、最近になって、最新Linuxディストリビューションから自宅サーバーのWebサイトが閲覧できない。特定のメールアドレス、例えばGmailから自宅サーバー宛にメールが届かないというトラブルが判明した。試行錯誤の結果、最終的にipf.rulesに問題があることが分かったので、変更することにした。現用サーバーのNICはrl0であり、サーバーのアドレスは192.168.0.20と仮定する。フィリタングの考え方は基本的には同じであるが、自宅LAN内からのアクセスは全て通すように変えてある。stateの記述が追加されている。変更したipf.rulesを反映させるためには以下のコマンドを叩けばOKである。15/Aug/2009。