使用缺省策略除去的iptables端口转发

分享于 

2分钟阅读

互联网

  繁體 雙語

问题:

我有一个作为普通用户运行的服务器,所以我不能在 1024以下使用端口。 web服务器仍应在端口 443处访问。 我希望iptables端口前进 443到 1443,我的服务器监听传入请求。 这些是我的规则:


iptables -P INPUT DROP


iptables -P OUTPUT DROP


iptables -P FORWARD DROP



iptables -A OUTPUT -p tcp -o eth0 --sport 443 -j ACCEPT


iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT



iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 1443 


iptables -A OUTPUT -t nat -p tcp --dport 443 -j REDIRECT --to-port 1443



但是,除非我添加以下规则,否则iptables仍然删除包:


iptables -A OUTPUT -p tcp -o eth0 --sport 1443 -j ACCEPT


iptables -A INPUT -p tcp -i eth0 --dport 1443 -j ACCEPT



现在我可以在端口 443上找到我的服务器,但也在我不想要的端口 1443。

我丢失了哪些规则,所以我的web服务器只能在端口 443处访问?


回答 1:

我认为实现这个目标最简单的方法是:


iptables -P INPUT DROP


iptables -P OUTPUT DROP


iptables -P FORWARD DROP



iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 1443 



iptables -A INPUT --ctstate ESTABLISHED,DNAT -j ACCEPT


iptables -A OUTPUT --ctstate ESTABLISHED -j ACCEPT




回答 2:

修复该问题的简单方法是,配置你的网络服务器只侦听 localhost ( 127.0.0.1 ),为输入配置iptables规则:


iptables -A INPUT -p tcp -d 127.0.0.1/32 -i eth0 --dport 1443 -j ACCEPT



并将所有请求转发到 127.0.0.1: 1443。



for  DEF  默认  Forward  策略  转发