我目前正在尝试将端口 80 转发到端口 4999,这样 80 就可以暴露,而 4999 则不会。研究完之后,我发现下面的表格可以成功完成我想要的操作,但我不明白它们是如何工作的。有人能告诉我这里发生了什么吗?告诉我这是否会导致任何安全问题?
*nat
:PREROUTING ACCEPT [325:20003]
:INPUT ACCEPT [404:24676]
:OUTPUT ACCEPT [360:25177]
:POSTROUTING ACCEPT [360:25177]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 4999
-A PREROUTING -p tcp -m tcp --dport 4999 -j REDIRECT --to-ports 80
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8142:1141863]
-A INPUT -p tcp -m tcp --dport 4999 -j ACCEPT
-A INPUT -j DROP
COMMIT
答案1
第一个预路由规则将传入端口 80 的流量更改为端口 4999,并且第一个输入规则接受它。
第二条预路由规则将端口 4999 流量更改为端口 80,第二条输入规则将其丢弃。
我认为将第二条预路由规则更改为 -j DROP 会更好。
或者将默认的 INPUT 策略更改为 DROP,并删除第二条 INPUT 规则。
正如 Zoredache 所说,它没有多大意义。