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

9. NAT とパケットフィルタリングの混合

ネットワークアドレス変換(NAT HOWTO を見てください(訳注: 日本語訳が あります))とパケットフィルタリングを同時にやりたいときがよくあります。 よいお知らせです ― 2つは実によく調和します。

あなたは NAT のことは完全に忘れて、パケットフィルタリングの設計を してください。パケットフィルターにとってのソースとあて先は ‘実際の’ソースとあて先です。例えば、IP アドレス 1.2.3.4 ポート番号 80 に接続してくるものは何でも IP アドレス 10.1.1.1 ポート番号 8080 へ転送 する DNAT(訳注: あて先 NAT、一般的な NAT のこと)をするなら、パケット フィルターには、1.2.3.4 の 80 ではなくて、10.1.1.1 の 8080 (実際の あて先)へ、パケットが行くように見えます。同様に、IP マスカレードの ことも忘れることができます ― パケットが実際の内部 IP アドレス(例えば 10.1.1.1)から来て、応答パケットもそこへ戻って行くように見えます。

NAT には、とにかくコネクション追跡が必要なので、パケットフィルターに 余分な仕事をさせずに `state' マッチを使うことができます。NAT HOWTO の 簡単なマスカレードの例を増強して ppp0 インターフェイスから入って来る どんな新しいコネクションも禁止するためには、このようにします:

# ppp0 から出て行くものをマスカレードする
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# ppp0 から入って来るパケットで新規と無効のものを入力とフォワードで禁止する
iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j DROP

# IP フォワーディングを ON にする
echo 1 > /proc/sys/net/ipv4/ip_forward


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