我有一个作为正常用户运行的can服务器,所以我不能使用低于1024的端口。仍然应该在端口443访问The服务器。我希望iptable将转发443到1443,在此我的want服务器侦听传入的请求。到目前为止,这些是我的原则:
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访问我的want服务器,但也可以访问我不想要的端口1443。
我缺少什么规则,所以我的443服务器只能在端口443访问?
发布于 2019-01-15 14:06:22
我认为实现这一目标的最简单方法是:
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发布于 2019-01-15 11:15:43
修复它的最简单方法是,将Web服务器配置为只在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。
https://serverfault.com/questions/949140
复制相似问题