如何转发FTP请求到另一个IP?

我有一个VMware: 10.10.10.1linux in VMware (Guest): 10.10.10.128一个linux in VMware (Guest): 10.10.10.128honeypot on Guest: 10.10.10.15和我的Windows (Host): 192.168.1.11 honeypot on Guest: 10.10.10.15一个honeypot on Guest: 10.10.10.15 。 我可以直接从我的Host发送FTP请求到honeypot ,连接build立。 现在我想发送FTP请求到Guest ,这些转发到我的honeypot 。 我把这些规则放在Guest iptables中:

 iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 10.10.10.15:21 iptables -t nat -A POSTROUTING -p tcp -s 10.10.10.15 --sport 21 -j SNAT --to-source 10.10.10.128 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

但是我无法得到理想的结果。 我能做什么?

注意 :当honeypot运行时,我可以从Host ping它,但是我不能从Guest ping它,结果是:

 Destination Host Unreachable 

我的错在哪里?

如果你想转发FTP请求,你只能转发端口21. FTP使用2个或更多的连接:

  • 1连接发送命令,端口21
  • 通过FTP服务器确定的可变端口号上的一个或多个连接来传输数据

因此,如果要转发FTP连接,则需要查看服务器configuration,以检查FTP服务器将用于接受客户端连接的端口范围(假设您的客户端以“被动模式”连接到FTP服务器)。
所以你需要转发端口21 +在“被动端口”范围内定义的所有端口。

但这是不够的 ,因为FTP服务器指示FTP客户端在哪个IP上联系打开数据传输连接,通常这是服务器IP。
FTP服务器不知道您用来转发连接的服务器。

所以你也应该告诉你的FTP服务器他的“公共IP”不是FTP服务器的IP地址,而是服务器的IP地址,它将接受(并转发)来自客户端的FTP连接。