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

Ситуация: есть сервер, на котором крутится 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-соединения без шифрования. Для поддержки шифрования нужно сделать две вещи:

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

После этого пассивные FTPS-соединения будут работать.
Источник http://blog.sjinks.pro/linux/790-proftpd-ftps-iptables/

Запись опубликована в рубрике *CentOS. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91