opium
@opium
Просто люблю качественно работать

Не работает ftp с iptables

В фаерволе простые правила
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

После включения у части людей не работает доступ ни в активном ни в пассивном режиме, у меня доступ работает, но в пассивном режиме наблюдается лаг в 10 секунд при получении списка файлов при входе на фтп, выключаю фаер все работает у всех, у меня лага нет.

При пассивном у людей вылетает вот так
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing

При активном
Response: 200 Switching to Binary mode.
Command: PORT 192,168,123,104,227,59
Response: 500 Illegal PORT command.
Error: Failed to retrieve directory listing

На сервере два интерфейса eth0 eth1
НА eth0 висит через алиасы 25 ip адресов(eth0:1, eth0:2, eth0:3 и тд)
На eth1 висит один приватный ip.
Все ходит через eth0.

В чем может быть проблема?
  • Вопрос задан
  • 10481 просмотр
Пригласить эксперта
Ответы на вопрос 6
shadowalone
@shadowalone
Ну и где у Вас в правилах открытый FTP?
Вам надо еще на самом демоне указать пассивные порты, и открыть их на файрволе.
Какой демон?

>В чем может быть проблема?
В непонимании Вами происходящего.
Ответ написан
ValdikSS
@ValdikSS
Еще можете подгрузить nf_conntrack_ftp
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
21 порт это для управления. Данные же ходят по Х порту(-ам). Нужно в настройках своего ftp сервера найти настройку отвечающую за это, задать там эти порты и продырявить их в фаере.

Обычно ftp сервер при работе в пассивном режиме сам случайным образом назначает порт для данных, сообщает его через 21-ый клиенту, в дальнейшем клиент использует его, но запрос этот тормозится фаерволом, поэтому ни чего и не работает.
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
>А если фтп в активном режиме?
Да не важно. При активном в состоянии LISTEN висит сокет на клиенте, на сервере он будет в SYN_SENT первоначально, но до ESTABLISHED не дойдет, ибо фаер ему это не даст сделать.
Ответ написан
Комментировать
alekciy
@alekciy
Вёбных дел мастер
В общем я крайне рекомендую прочесть книгу "UNIX: разработка сетевых приложений" Стивенсона. Имхо, гениальный труд который одинаково хорошо использовать и как учебник, и как справочник.
Ответ написан
Комментировать
edgesection
@edgesection
Internet-project
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы