web-dev-qa-db-ja.com

FirewallD(CentOS 7)でパッシブFTP接続を許可する

FirewallDに付属のCentOS 7では、HTTPアクセスを有効にするのは簡単でした。

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

しかしながら、

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

動作しません:ルールは適用されますが、FirewallDを無効にする以外の方法でFTPにアクセスできません。

いくつかの診断情報:

  • サービス定義ファイル(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

私は問題を徹底的に調査していなかったため、詳細はわかりませんが、これはアクティブとパッシブの接続がサーバーとクライアントの両方でvsftpdに設定されている方法と関係があるようです(例:Filezilla)。

基本的に、次のことを行う必要があります。

8
georgem

試してください:編集/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
user395690