Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > Настройка шлюза для работы ftp


Автор: Хоббит 7.10.2010, 16:50
Есть шлюз. Через него компьютеры выходят в интернет. На нем настроен iptables.
Нужно разрешить доступ через ftp наружу.
Прописываю правило для 21 и 20 порта.

$IPT -A FORWARD -p tcp -m tcp -i $LAN_IFACE -o $INET_IFACE --sport $UNPRIPORTS --dport 21 -j ACCEPT

Но ничего не получаю.

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

Или я что-то не так понимаю. Подскажите?

Автор: ZeeLax 7.10.2010, 19:56
NAT?
Код

iptabels -L -n -t filter -v
iptabels -L -n -t nat -v

Автор: Хоббит 9.10.2010, 16:43
# Masquerade
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

Автор: ZeeLax 10.10.2010, 07:53
Тогда пассивный режим FTP ваш друг.

Автор: Хоббит 10.10.2010, 11:29
Почитал еще раз.
Пассивный режим не совсем поможет.

Разница в активном режиме сервер выполняет обратное соединение к клиенту.
А в пассивном режиме сервер возвращает клиенту адрес и порт по которому клиенту надо совершить соединение.

У меня на шлюзе разрешен проходящий трафик на порт 20 и 21 фтп сервера.
При соединение фтп сервер возвращает другой порт с которым я должен соединиться в пассивном режиме. 
Но проходящий трафик на этот порт на шлюзе не разрешен. (Потому что я заранее не знаю какой порт вернет фтп сервер и должен для этого открыть кучу портов.)

Как решается этот вопрос? Или ни как?

Автор: ZeeLax 10.10.2010, 11:40
Ах да, забыл... Нужно ещё заюзать хелпер для ната фтп.
Код

man iptables

ищем там helper, ftp.

Автор: Хоббит 18.11.2010, 12:09
Не хватало модуля для iptables для отслеживания ftp соединений. Все работает. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)