IPTABLES如何從 21到 2100埠轉發

分享于 

2分钟阅读

互联网

  简体 双语

问题:

在其他服务器上通过FTP发布文件的脚本,但是脚本只允许你使用端口 21. 在目标服务器上,唯一的FTP端口为 2100.

可以在源服务器上使用 IPTABLES,将端口 21上的输出连接转发到 2100?

在源服务器上运行这个脚本将尝试在端口 21上运行 FTP,并将它的转发到端口 2100和目标服务器接受。

如果可能,这里规则只能与特定目标IP一起使用?

致谢。


回答 1:

你必须使用nat重定向

例如:


iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080




回答 2:

虽然理论上可以用iptables来做它,但我不推荐这样做。 这可能会产生比解析更多的麻烦。

我的建议是:

  • 如果可以的话,去掉 ftp。 它是一个旧的不安全的协议,最好用 sftp ( 通常使用端口 22/tcp), 或者至少是 ftps ( ftp与 ssl ) ) 代替。

  • 在ftp服务器上使用标准端口。 除非同一服务器承载多个ftp服务器实例,否则很少有更改服务默认端口的原因。

  • 修改脚本以连接到这里特定服务器上的端口 2100. 大多数ftp客户端都允许你指定目标端口。

  • 如果上述所有都不可能,你可以像这样使用 iptables DNAT命令:

    iptables -t nat -A输出 -d 1.2.3.4 -p tcp -m tcp --dport 21 -j DNAT --to-destination 1.2.3.4: 2100

  • 请注意,FTP被动模式在端口 22/tcp, 上使用了反向连接,这可以能不能仅仅使用这个fram规则。



for  Forward  转发  Iptables  
相关文章