Разрешение пассивных соединений 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.

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

  • Я проверил сервисный файл определения (ftp.xml), и он использует nf_conntrack_ftp модуль.
  • На моем VPS модуль компилируется в ядро (не отдельный), таким образом, это не там через lsmod, но я могу подтвердить, что это там этим:


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
4
задан 9 October 2014 в 02:25
2 ответа

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

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

7
ответ дан 3 December 2019 в 02:50

попробуйте: отредактируйте /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 может работать

1
ответ дан 3 December 2019 в 02:50

Теги

Похожие вопросы