Как переслать 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

Где моя ошибка?

1 ответ

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

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

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

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

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

Другие вопросы по тегам