我有一个VMware: 10.10.10.1
、一个linux in VMware (Guest): 10.10.10.128
和一个honeypot on Guest: 10.10.10.15
,以及我的Windows (Host): 192.168.1.11
。我可以直接从我的Host
向发送 FTP 请求honeypot
,并且连接已建立。现在我想向发送 FTP 请求,Guest
并将这些请求转发到我的。我在上honeypot
设置了这些规则:iptables
Guest
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
运行时,我可以ping
从 执行它Host
,但无法ping
从 执行它Guest
,结果是:
Destination Host Unreachable
我错在哪儿?
答案1
如果您想转发 FTP 请求,您不能只转发端口 21。FTP 使用 2 个或更多连接:
- 1 个连接用于发送命令,在端口 21
- 由 FTP 服务器确定的可变端口号上的 1 个或多个连接来传输数据
因此,如果您想转发 FTP 连接,您需要查看服务器配置以检查 FTP 服务器将用于接受客户端连接的端口范围(假设您的客户端以“被动模式”连接到 FTP 服务器)。
因此您需要转发端口 21 +“被动端口”范围内定义的所有端口。
但这还不够因为 FTP 服务器会指示 FTP 客户端联系哪个 IP 来打开数据传输连接,而通常这个 IP 就是服务器 IP。FTP
服务器不知道您使用哪个服务器来转发连接。
因此,您还应该告诉您的 FTP 服务器,他的“公共 IP”不是 FTP 服务器的 IP,而是将接受(并转发)来自客户端的 FTP 连接的服务器的 IP。