次のページ 前のページ 目次へ

11. パケットフィルター設定のアドバイス

コンピュータのセキュリティ分野での常識は、全てをブロックし、その後に 必要とする穴を空けることです。これは通常「明白でなきもの許すべからず」 と、慣用句で言われます。セキュリティがあなたの最大の関心事なら、この アプローチをお勧めします。

必要でないサービスは動かしてはいけません ― たとえ、あなたがそれら へのアクセスをブロックしているから大丈夫と思っていても。

あなたがファイアーウォール専用機を作っているなら、何も動かさず、全ての パケットをブロックするところから始めてください。それからサービスを追加し 必要なパケットを通過させるようにしてください。

次のものを組み合わせてセキュリティをより深めることをお勧めします: TCP Wrappers (パケットフィルター自身への接続に対して)、 プロキシー(パケットフィルターを通り抜ける接続に対して) (訳注: このパケットフィルターとは広義に Linux ボックスと解釈する ほうがよいでしょう)、 ルート(経路)検証、そして、パケットフィルタリング。 ルート検証とは予期しないインターフェイスから来るパケットを破棄する ことです(訳注: カーネルコンフィギュレーションの CONFIG_IP_ADVANCED_ROUTER 参照)。 例えば、内部ネットワークアドレスが 10.1.1.0/24 であるとして、 外部インターフェイスから入って来るパケットでソースアドレスが 内部ネットワークアドレスになっていれば、それは破棄されます。 これをあるインターフェイス(ppp0)で有効にするためには以下のようにします:

# echo 1 > /proc/sys/net/ipv4/conf/ppp0/rp_filter
#

あるいは、全ての存在するそして将来のインターフェイスのためには、 このようにします:

# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
#     echo 1 > $f
# done
# 

Debian では、可能ならデフォルトで上記のように設定します。もし、あなたが 非対称ルーティングを行っているなら(すなわち、変わった方向から パケットが来るのを期待している)、それらのインターフェイスでは このフィルタリングを無効にしたいでしょう。

ファイアーウォールの作成時ばかりではなく、どこか動かないところが あってファイアーウォールの設定を調整しているとき、ログを取ることは 役に立ちます。どこかのログがあふれるのを防ぐために、必ず `limit' マッチと組み合わせましょう。

安全性が求められるシステムではコネクション追跡が非常にお勧めです。 それは若干のオーバーヘッドがありますが、全ての接続が追跡されるので、 あなたのネットワークへのアクセス制御にとても有効です。もし、カーネルが モジュールを自動的にロードしない場合や、それをカーネルに直に組み込んで いない場合、`ip_conntrack.o' モジュールをロードする必要があるかもしれ ません。あなたが実際に複雑なプロトコルを追跡したいなら、しかるべき ヘルパーモジュール(例えば `ip_conntrack_ftp.o')をロードする必要があり ます。

# iptables -N no-conns-from-ppp0
# iptables -A no-conns-from-ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A no-conns-from-ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A no-conns-from-ppp0 -i ppp0 -m limit -j LOG --log-prefix "Bad packet from ppp0:"
# iptables -A no-conns-from-ppp0 -i ! ppp0 -m limit -j LOG --log-prefix "Bad packet not from ppp0:"
# iptables -A no-conns-from-ppp0 -j DROP

# iptables -A INPUT -j no-conns-from-ppp0
# iptables -A FORWARD -j no-conns-from-ppp0

よいファイアーウォールを構築することは、この HOWTO の範囲を越えて いますが、私からの助言は「いつも最小限主義者であれ」です。あなたの箱を テストし抜け穴がないか探るためのより多くの情報が必要なら、 Security HOWTO を見てください。


次のページ 前のページ 目次へ