FirewallDに付属のCentOS 7では、HTTPアクセスを有効にするのは簡単でした。
firewall-cmd --permanent --zone=public --add-service=http
しかしながら、
firewall-cmd --permanent --zone=public --add-service=ftp
動作しません:ルールは適用されますが、FirewallDを無効にする以外の方法でFTPにアクセスできません。
いくつかの診断情報:
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)。
基本的に、次のことを行う必要があります。
pasv_enable=Yes pasv_max_port=40000 pasv_min_port=40000
systemctl restart vsftpd.service
firewall-cmd --permanent --add-port=40000/tcp firewall-cmd --reload
lftp
に接続できました。アクティブモードチェックを使用するようにFilezillaを設定するには http://www.itzgeek.com/how-tos/linux/centos-how-tos/enable-passive-mode-in-ftp-on-centos-7- rhel-7-for-filezilla-and-winscp.html#axzz3X4loTCMi試してください:編集/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クライアントは機能します