I have a VMware: 10.10.10.1
, a linux in VMware (Guest): 10.10.10.128
and a honeypot on Guest: 10.10.10.15
, and my Windows (Host): 192.168.1.11
. I can send FTP requests directly from my Host
to honeypot
and the connection is established. Now I want to send FTP requests to Guest
and these forward to my honeypot
. I put these rules in iptables
on 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
But I cannot get the desired result. What can I do?
Note: When the honeypot
is running, I can ping
it from the Host
, but I cannot ping
it from the Guest
and the result is:
Destination Host Unreachable
Where is my wrong?
Если вы хотите переадресовать FTP-запрос, вы не можете просто переадресовать порт 21. FTP использует 2 или более соединений:
Таким образом, если вы хотите переадресовывать FTP-соединения, вам нужно посмотреть в конфигурации сервера, чтобы проверить диапазон портов, который FTP-сервер будет использовать для приема клиентских соединений (предполагая, что ваш клиент будет подключаться к FTP-серверу в "пассивном режиме").
Поэтому вам нужно переадресовать порт 21 + все порты, определенные в диапазоне "пассивного порта".
Но этого недостаточно , потому что именно FTP-сервер инструктирует FTP-клиента, с которым нужно связаться, чтобы открыть соединение для передачи данных, и обычно это IP-адрес сервера.
FTP-сервер не знает, какой сервер вы используете для переадресации соединения.
Поэтому вы также должны сообщить вашему FTP-серверу, что его "публичный IP" - это не IP FTP-сервера, а IP сервера, который будет принимать (и переадресовывать) FTP-соединение от клиента.
.