LINUX.ORG.RU
ФорумAdmin

траблы с маршрутизацией FTP


0

0

Всем привет, есть маленький вопросик.

Есть машина с линух FC2, как шлюз в инет. внешний IP - xxx.xxx.xxx.xxx и внутр. сетка 192.168.0.0/24

-A POSTROUTING -o eth0 -j SNAT --to xxx.xxx.xxx.xxx

Все прекрасно работает, за исключением ftp

при конекте к какому-то ftp с любой из манины(192.168.0.101) в сетке выдается следующее сообщение. Команда PORT не выполнена.

500 I won't open a connection to 192.168.0.101 (only to xxx.xxx.xxx.xxx) 425 No data connection

Что такое команда PORT и как избавиться от этой проблемы? Заранее спасибо.

anonymous

А ftp в каком режиме - активном или пассивном? А connection tracking для ftp включен? То-то же! :-)

no-dashi ★★★★★
()

Команда PORT - указание серверу, на какой порт ему соединяться с тобой для передачи данных. ( ftp - это два соединения, управляющее и данные ) Это активный режим. А маскируешь ты только один порт. Вывод: вруби в ядре то, что тебе сказали выше меня.

Chumka ★★★
()

Протокол FTP сначала открывает одиночное соединение, которое называется "сеансом управления FTP" (FTP control session). При выполнении команд в пределах этого сеанса, для передачи сопутствующих данных открываются дополнительные порты. Эти соединения могут быть активными или пассивными. При создании активного соединения клент передает FTP серверу номер порта и IP адрес для соединения. Затем клент открывает порт, сервер подключает к заданному порту клиента свой порт с номером 20 (известный как FTP-Data) и передает данные через установленное соединение.

Проблема состоит в том, что брандмауэр ничего не знает об этих дополнительных подключениях, поскольку вся информация о них передается через область данных пакета. Из-за этого брандмауэр не позволит серверу соединиться с указанным портом клиента.

Решение проблемы состоит в добавлении специального вспомогательного модуля трассировки, который отслеживает, специфичную для данного протокола, информацию в области данных пакетов, передаваемых в рамках сеанса управления. При создании такого соединения, вспомогательный модуль корректно воспримет передаваемую информацию и создаст соответствующую запись в таблице трассировщика со статусом RELATED, благодаря чему соединение будет установлено.

в FC2 при загрузке не подгружается модуль ip_nat_ftp попробуй: modprobe ip_nat_ftp

nevsky
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.