转发时更改端口号

Change port number while forwarding

提问人:felix 提问时间:9/17/2023 更新时间:9/17/2023 访问量:18

问:

在较大的防火墙中,以下两行允许我从 Internet 连接到在 LAN 主机 172.27.255.4 上运行并侦听端口 1046 22 的 SSH 服务器:

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:1046
iptables -t filter -A FORWARD -p tcp -i ppp0 -d 172.27.255.4 --dport 1046 -j ACCEPT

地址 aaa.bbb.ccc.ddd 是防火墙的 IPV4 公共地址。使用端口 1046 连接到 SSH 服务器,这工作正常。
我现在要做的是阻止 SSH 服务器侦听端口 1046,但在从 Internet 连接时仍使用端口 1046。只需将上述代码的第一行从

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:1046

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:22

剂量不起作用。

我在这里错过了什么?

重定向 端口 iptables 端口转发

评论

1赞 Rob 10/28/2023
我投票决定关闭这个问题,因为正如 iptables 标签所述:IPTABLES 支持是题外话。我可以在这里问什么话题?可以在 superuser.com 上询问支持问题。此标签仅用于有关使用 iptables 编程的问题。有关配置 iptables 的问题应在服务器故障 (serverfault.com) 上提出。请删除此内容。

答:

0赞 felix 9/17/2023 #1

这样可以完成以下工作:

iptables -t nat -A PREROUTING -d aaa.bbb.ccc.ddd -p tcp --dport 1046 -j DNAT --to-destination 172.27.255.4:22
iptables -t filter -A FORWARD -p tcp -d 172.27.255.4 --dport 22 -j ACCEPT

第一条规则在路由数据包之前更改数据包目标。第二条规则路由(在本例中为转发)具有新的所需目的地的数据包。