Настройка iptables для поддержки пассивных FTPS-соединений

Ответить
kmm
Site Admin
Сообщения: 16
Зарегистрирован: Вс сен 11, 2011 3:35 pm

Настройка iptables для поддержки пассивных FTPS-соединений

Сообщение kmm » Сб окт 01, 2011 9:47 am

Ситуация: есть сервер, на котором крутится ProFTPd, а iptables настроен так, чтобы не разрешать лишних соединений (политика по умолчанию — DROP). При этом есть желание, чтобы FTP-сервер работал по протоколу FTPS и поддерживал пассивные соединения.

Использование модуля ip_conntrack_ftp в данном случае не поможет — управляющее соединение зашифровано, и ip_conntrack_ftp просто не сможет узнать, на какой порт идёт пассивное соединение.

Предположим, что имеются такие правила:
[-]
View Code Bash
modprobe ip_conntrack
modprobe ip_conntrack_ftp

# Политика по умолчанию: отброс соединения
iptables -P INPUT DROP

# Отбрасываем соединения с неверным состоянием
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP

# Разрешаем установленные и относящиеся к ним соединения
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Разрешаем FTP-соединения
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --sport 1024:65535 --dport 20:21 -j ACCEPT

Данный сценарий разрешает как активные, так и пассивные (благодаря ip_conntrack_ftp) FTP-соединения без шифрования. Для поддержки шифрования нужно сделать две вещи:

Явно задать в конфигурации ProFTPd список портов, которые могут быть использованы для пассивных соединений, например: PassivePorts 49000 49500 и перезапустить демон;
Открыть перечисленные порты в iptables: iptables -A INPUT -p tcp --sport 1024:65535 --dport 49000:49500 -j ACCEPT

После этого пассивные FTPS-соединения будут работать.

Оригинал http://blog.sjinks.pro/linux/790-proftpd-ftps-iptables/

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей