了解FTP;带防火墙和 NAT 的主动/被动

0 firewall nat ftp passive

我有一些关于带有防火墙和 NAT 的 FTP 的基本问题,我希望有人可以帮助我 :)

我把它们分成不同的场景:

没有 NAT 的主动 FTP

设置:

服务器 1.2.3.4,默认端口;客户端 1.2.3.5,端口:3141(cmd)、3142(数据)

客户端:3141 连接到服务器:20

服务器:20 响应客户端:3141

服务器:21 连接到客户端:3142

这在实践中通常如何解决?我可以想到以下可能性:

  • 客户端防火墙记得有一个 FTP 命令连接,因此打开端口 3142
  • 客户端防火墙记住有一个 FTP 命令连接,因此允许从 1.2.3.4:21 到 1.2.3.5:3142 的所有连接
  • 客户端防火墙允许从 xxxx:21 到 1.2.3.5:3142 的所有连接

我假设在所有这些解决方案中,客户端将始终使用两个连续的端口 - 这是真的吗?

使用 NAT 的主动 FTP

设置:

服务器 1.2.3.4 默认端口;客户端 192.168.0.2,端口 3141、3142;路由器,1.2.3.5 和 192.168.0.1

Client:3141 通过 192.168.0.1 连接到 1.2.3.4:20

Server:20 对 1.2.3.5:ARBITRARY 的响应 - 由于存在 SNAT 被传送到 192.168.0.2:3141

Server:21 连接到 1.2.3.5:(ARBITRARY+1) - 路由器从哪里知道这个数据包属于谁?

带有 NAT 的被动 FTP

服务器在路由器后面 - 路由器从哪里知道在任意端口上接收的数据包是给 FTP 服务器的?(因此,路由器如何知道不丢弃此数据包)

为什么被动 FTP 使用服务器站点上的任意端口进行数据连接?为什么不是21端口?

我希望你理解我的问题,有人可以帮助我:)

谢谢

vor*_*aq7 5

在实践中,我可以给您关于 FTP 和 NAT的绝对最佳建议要这样做”

使用像SFTP这样的现代替代方案,它可以增加连接的安全性(如今以明文形式发送密码通常被认为是一件坏事),并且也不会像 FTP 那样进行疯狂的端口舞会。这样您就不必担心 FTP 工作方式的奥秘。


要回答您的具体问题,您需要阅读FTP RFC如果您打算使用 FTP
您可能还想阅读Firewall-Friendly FTP安全注意事项的大列表

如果您出于求知欲而询问这些参考资料就足够了。
如果在阅读 RFC 后,您仍然有与解决实际的实际问题相关的具体实施问题,请提出具有具体细节的新问题。