我有一些关于带有防火墙和 NAT 的 FTP 的基本问题,我希望有人可以帮助我 :)
我把它们分成不同的场景:
没有 NAT 的主动 FTP
设置:
服务器 1.2.3.4,默认端口;客户端 1.2.3.5,端口:3141(cmd)、3142(数据)
客户端:3141 连接到服务器:20
服务器:20 响应客户端:3141
服务器:21 连接到客户端: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端口?
我希望你理解我的问题,有人可以帮助我:)
谢谢
在实践中,我可以给您关于 FTP 和 NAT的绝对最佳建议是“不要这样做”。
使用像SFTP这样的现代替代方案,它可以增加连接的安全性(如今以明文形式发送密码通常被认为是一件坏事),并且也不会像 FTP 那样进行疯狂的端口舞会。这样您就不必担心 FTP 工作方式的奥秘。
要回答您的具体问题,您需要阅读FTP RFC。如果您打算使用 FTP,
您可能还想阅读Firewall-Friendly FTP和安全注意事项的大列表。
如果您出于求知欲而询问这些参考资料就足够了。
如果在阅读 RFC 后,您仍然有与解决实际的实际问题相关的具体实施问题,请提出具有具体细节的新问题。
归档时间: |
|
查看次数: |
5765 次 |
最近记录: |