У меня возникают проблемы при подключении к удаленному ftp-серверу, работающему в UNIX. Когда я пытаюсь подключиться, он зависает на экране приветствия и запрашивает пароль и имя пользователя dos = esnt. Подключен к 17.17.0.181.
220 Добро пожаловать в службу FTP Blabla
Он просто там ничего не замораживает, если я попытаюсь убить его с контролем c или z, он не умрет! Мне нужно войти на другую консоль и сделать убить PID штуковина. Я знаю, что уверен, что это как-то связано с брандмауэром или маршрутизацией, потому что я могу подключиться откуда угодно.
Мой брандмауэр iptables имеет следующие настройки
modprobe ip_nat_ftp порты21
modprobe ip_conntrack_ftp
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --dport 21 --state NEW -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --sport 20 --state RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -m state --dport 1024: 65535 --sport 1024: 65535 --state RELATED -j ACCEPT
Всем, кто за вашу помощь очень благодарен.
Брандмауэр работает на том же компьютере, что и демон ftp? Если это так, я думаю, вам нужно использовать цепочку INPUT, а не FORWARD. Цепочка FORWARD используется при пересылке пакетов. Когда пакеты должны обрабатываться локально, они будут проходить через цепочку INPUT, а не через цепочку FORWARD.
Этот «рисунок» (с веб-сайта netfilter) объясняет, какие цепочки и что делают.
Incoming / \ Outgoing
-->[Routing ]--->|FORWARD|------->
[Decision] \_____/ ^
| |
v ____
___ / \
/ \ |OUTPUT|
|INPUT| \____/
\___/ ^
| |
----> Local Process ----