Как переслать 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-соединение от клиента.