iptablesでポートをリダイレクトする

iptablesでポートをリダイレクトする

iptables2 つの NIC を備えたボックスを使用して、すべてのインターフェースのポート 443 を 1 つのインターフェースの 8080 にリダイレクトする必要があります。

また、それらのインターフェース上の他のほとんどすべてをブロックする必要もあります。

私の iptables ファイルは次のとおりです:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A PREROUTING -i eth0 -p tcp -d 10.10.1.9 --dport 443 -j DNAT --to 10.10.1.9:8080
-A PREROUTING -i eth1 -p tcp -d 10.10.1.10 --dport 443 -j DNAT --to 10.10.1.9:8080
COMMIT


*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

何が間違っているのでしょうか、言い換えれば、なぜこれが機能しないのでしょうか?

答え1

INPUT テーブルでは、ポート 443 はブロック解除されていますが、8080 はブロックされていません。また、転送ルールを最適化できると思います。conf は次のようになると思います:-

 *nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A PREROUTING -p tcp --dport 443 -j DNAT --to 10.10.1.9:8080
 COMMIT


*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

関連情報