Назад | Перейти на главную страницу

Разрешение пассивных FTP-соединений в FirewallD (CentOS 7)

В CentOS 7, которая поставляется с FirewallD, включить доступ по протоколу HTTP было просто:

firewall-cmd --permanent --zone=public --add-service=http

Тем не мение,

firewall-cmd --permanent --zone=public --add-service=ftp

не работает: правило применяется, но я не могу получить доступ к FTP никакими способами, кроме отключения FirewallD.

Некоторая диагностическая информация:


zgrep FTP /proc/config.gz

CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_TFTP=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_TFTP=y

Я не исследовал эту проблему досконально, поэтому я не понимаю деталей, но, похоже, это как-то связано с тем, как настраиваются активные - пассивные соединения как для vsftpd на сервере, так и для клиента (например, Filezilla).

В основном вам необходимо:

попробуйте: изменить /etc/vsftpd/vsftpd.conf

pasv_enable=YES
pasv_min_port=65400
pasv_max_port=65410

Затем:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p TCP --dport 21 --sport 1024:65534 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p TCP --dport 65400:65410 --sport 1024:65534 -j ACCEPT
firewall-cmd --reload
firewall-cmd --permanent --direct --get-all-rules

Я использую сервер vsftp, и клиент FileZilla может работать