このルールを使用して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
このルールは何をしますか?
-A POSTROUTING -o eth1 -j MASQUERADE
パケットがネットワークを離れるときに内部IPを隠す-P FORWARD -j DROP
FORWARDチェーンのデフォルトポリシーをDROPに設定-A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
新規および既存のFORWARDの接続を許可-A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT
FORWARD接続のみが許可されています。
上記のルールでは、このデバイスをゲートウェイ/ファイアウォールとして使用し、eth1
WANとeth0
LANに接続すると想定しています。
編集する
「条件付き」ポート転送を設定するには:
ソースポート別
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