Я не могу заставить vsftpd и firewalld правильно работать вместе на CentOS 7 (без добавления пассивного диапазона к firewalld). Похоже, firewalld игнорирует отслеживание соединений (nf_conntrack_ftp загружен, но у него 0 пользователей). Правильно ли, что firewalld еще не поддерживает отслеживание соединений, как предлагается? Вот?
В firewalld я включил службу ftp, но пока я могу войти в систему и получить список, я не могу загружать файлы, пока не отключу брандмауэр или не добавлю явный пассивный диапазон.
Команда Firewalld:
firewall-cmd --permanent --add-service=ftp
Результирующее правило iptables:
-A IN_public_allow -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT
Модуль отслеживания подключений:
# lsmod | grep conntrack_ftp
nf_conntrack_ftp 18638 0
Думаю нужно открыть ftp-data, tcp порт 20
У меня была такая же проблема с CentOS 8 и vsftpd. Как упоминалось в другом Почта вам необходимо загрузить модуль ядра "nf_conntrack_ftp" (что уже было в CentOS 8) и включите "nf_conntrack_helper" в настройках ядра:
echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
Добавьте эту строку в /etc/sysctl.conf
(или /etc/sysctl.d/10-nf_conntrack_helper.conf
когда /etc/sysctl.d/
присутствует) для постоянной перезагрузки:
net.netfilter.nf_conntrack_helper=1