Назад | Перейти на главную страницу

Как перенаправить FTP-запросы на другой IP-адрес?

у меня есть 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. Я могу отправлять запросы FTP прямо со своего Host к 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

Где я ошибаюсь?

Если вы хотите переслать FTP-запрос, вы не можете просто перенаправить порт 21. FTP использует 2 или более соединения:

  • 1 соединение для отправки команды на порт 21
  • 1 или несколько соединений на переменном номере порта, определяемом FTP-сервером для передачи данных

Итак, если вы хотите пересылать FTP-соединения, вам нужно посмотреть в конфигурации вашего сервера, чтобы проверить диапазон портов, который FTP-сервер будет использовать для приема клиентских подключений (при условии, что ваш клиент подключается к FTP-серверу в «пассивном режиме»).
Таким образом, вам нужно перенаправить порт 21 + весь порт, определенный в диапазоне «пассивных портов».

Но этого недостаточно, потому что это FTP-сервер, который указывает FTP-клиенту, с каким IP-адресом связаться, чтобы открыть соединение для передачи данных, и обычно это IP-адрес сервера.
FTP-сервер не знает, какой сервер вы используете для пересылки соединения.

Таким образом, вы также должны сообщить своему FTP-серверу, что его «общедоступный IP-адрес» - это не IP-адрес FTP-сервера, а IP-адрес сервера, который будет принимать (и пересылать) FTP-соединение от клиента.