我需要使用iptables
带有 2 个 NIC 的盒子将所有接口上的端口 443 重定向到一个接口上的 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。此外,我认为可以优化转发规则。我认为您的配置应该这样更好:-
*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