iptablesを使用したNATフィルタリング動作の設定

iptablesを使用したNATフィルタリング動作の設定

このルールを使用してSNATを設定します。

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:4000

セッションが開始された内部アドレスとポートに向かわないパケットをフィルタリングするルールを指定したいと思います。さらに、特定の外部エンドポイントからパケットを受信するには、内部エンドポイントは最初にその特定の外部エンドポイントのIPアドレスにパケットを送信する必要があります。 (NAT アドレス関連フィルタリング)

例:

NATの背後に内部IPとポート(X:x)があるコンピュータは、IP Yでサーバーへの接続を開きます。したがって、ルールによっては、IPアドレスYから(X:X)までしか許可できません。他のすべての接続は削除されます。

答え1

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -P FORWARD -j DROP
iptables -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT

このルールは何をしますか?

  1. -A POSTROUTING -o eth1 -j MASQUERADEパケットがネットワークを離れるときに内部IPを隠す
  2. -P FORWARD -j DROPFORWARDチェーンのデフォルトポリシーをDROPに設定
  3. -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT新規および既存のFORWARDの接続を許可
  4. -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPTFORWARD接続のみが許可されています。

上記のルールでは、このデバイスをゲートウェイ/ファイアウォールとして使用し、eth1WANとeth0LANに接続すると想定しています。

追加資料:ポストルーティングとIPマスカレーディング

編集する

「条件付き」ポート転送を設定するには:

ソースポート別

iptables -A PREROUTING -t nat -i eth1 -p tcp --sport [trusted_source_port] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

ソースIP別

iptables -A PREROUTING -t nat -i eth1 -p tcp -s [trusted_source_ip] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

関連情報