注: 以下の提案は, ただの提案にすぎません: 必要な処理はそれぞれのファイアウォールで異なるため, あなた独自の要求にあったファイアウォールを構築する方法を ここで述べることはできないのです.
最初にファイアウォールをセットアップするとき, コントロールされた環境でファイアウォールホストの設定がおこなえるような テストベンチセットアップが用意できない場合には, カーネルのログ取りを 有効にしてログ取り版のコマンドを使用することを強くおすすめします. そうすることで, 大した混乱や中断なしに問題となる範囲の特定と処置を 素早くおこなうことができます. 初期セットアップフェーズが完了してからであっても, アタックの可能性のあるアクセスをトレースしたり, 要求の変化に応じてファイアウォールルールを変更したりできるので, `deny' に対するログ取りをおこなうことをおすすめします.
注: accept コマンドのログ取りをおこなっていると,
ファイアウォールをパケットが一つ通過する毎に 1 行のログが生成されるため
大量の ログデータが発生します.
そのため, 大規模な ftp/http 転送などをおこなうと, システムが非常に
遅くなってしまいます.
また, パケットが通過するまでにカーネルにより多くの仕事を要求するため,
パケットのレイテンシ (latency) を増加させてしまいます.
syslogd もログをディスクに記録するなど, より多くの CPU タイムを
使用し始め, 実に容易に /var/log
が置かれているパーティションを
パンクさせてしまう可能性があります.
現状では, FreeBSD はブート時にファイアウォールルールをロードする
能力を持っていません.
私は /etc/netstart
スクリプトにロードをおこなうスクリプトを
追加することをおすすめします. IP インターフェースの設定がおこなわれる前に
ファイアウォールの設定がおこなわれるように, netstart ファイル中の
充分に早い位置にルールをロードするスクリプトを配置してください.
こうすることで, ネットワークがオープンな間は常に抜け道が塞がれている
ことになります.
ルールをロードするために使用するスクリプトは,
あなたが作成しなければなりません.
現在のところ ipfw
は 1 コマンドで複数のルールを
ロードするユーティリティをサポートしていません.
私が使用しているシステムでは以下のようにしています:
# ipfw list
ファイルに現在のルールリストを出力し, テキストエディタを使用して
すべての行の前に ``ipfw
'' と書き足します.
こうすることで, このスクリプトを /bin/sh に与えてルールをカーネルに再読み込み
させることができます. これは最も効率的な方法とはいえないかもしれませんが,
きちんと動作しています.
次の問題は, ファイアウォールが実際には何を する べきかです ! これは外部からそのネットワークへのどんなアクセスを許したいか, また内部から外界へのアクセスをどのくらい許したいかに大きく依存します. いくつか一般的なルールを挙げると:
xhost +
をおこなう癖を持っている人がいればなおさらです).
X11 は実際に 6000 番以降のポートを使用する可能性があるため, 通過許可に
上限を定めると, そのマシンで走らせることのできる X ディスプレイの
個数が制限されます.
RFC 1700 (Assigned Numbers) で定義されているように, 上限は 6063 です.
これとは別のファイアウォール設定に関するチェックリストが CERT から 入手可能です. ftp://ftp.cert.org/pub/tech_tips/packet_filtering
前にも述べたように, これはただの ガイドライン にすぎません. ファイアウォールでどのようなフィルタルールを使用するかは, あなた自身が 決めなければなりません. これまでのアドバイスにしたがったにも関わらず, 誰かがあなたのネットワークに 侵入してきたとしても, 私は「いかなる」責任もとることはできません.