Iptables та пасивний режим FTP

Невелика нотатка про те, як налаштуватиiptables на сервері так, щоб дозволити підключатися до нього в пасивному режиміFTP. На цю тему в інтернеті написано чимало статей, але описаний варіант, на мій погляд, є найбільш правильним і оптимальним.

Для початку необхідно налаштувати серверFTP. Будемо налаштовувати сервер використання фіксованого діапазону верхніх портів, наприклад 49152—65535. Ці порти відповідно до специфікації IANA є динамічними або приватними. Конфігурація кожного конкретного сервераFTP буде виглядати за своїм.

Дляvsftpd, наприклад, необхідно відредагувати файл/etc/vsftpd/vsftpd.conf(залежно від операційної системи шлях може відрізнятися) і внести (або змінити) наступні рядки:

Дляproftpdу файлі /etc/proftpd.conf (шлях, знову ж таки, може відрізнятися залежно від операційної системи чи способу установки) у секції Global потрібно внести такі изменения:

І аналогічно для рештиFTP серверів.

Після внесення змін, сервер потрібно перезапустити.

Тепер необхідно завантажити модульip_conntrack_ftp дляiptables. УRedHat/CentOS достатньо до файлу /etc/sysconfig/iptables-config додати посилання на завантаження модуля ip_conntrack_ftp:

і відредагувати /etc/sysconfig/iptables, додавши до нього рядок, що дозволяє вхідні з'єднання на порт 21. Приклад конфігуIptables, доданий рядок - номер 8.

Тепер потрібно перезапустити фаєрвол:

Можна перевірити правильність діапазону портів черезlsmod:

В результаті система відповість чимось на кшталт цього:

З цього моменту можна використовувати пасивний режимFTP.

Невеликий додаток: Якщоваш сервер знаходиться за NAT, можливо, доведеться завантажити ще один модуль -ip_nat_ftp.