2025/02/18 デフォルトでFTPSを強制し、一部ユーザーのみ平文FTP接続を許可する vsftpd.conf ------ # 基本設定 anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES # デフォルトで FTPS を強制 ssl_enable=YES rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem rsa_private_key_file=/etc/pki/tls/private/vsftpd.pem force_local_logins_ssl=YES force_local_data_ssl=YES # ユーザーごとの設定を有効化 user_config_dir=/etc/vsftpd/user_config ------ sudo mkdir -p /etc/vsftpd/user_config sudo chmod 755 /etc/vsftpd/user_config ------ echo "force_local_logins_ssl=NO" | sudo tee /etc/vsftpd/user_config/ftpuser echo "force_local_data_ssl=NO" | sudo tee -a /etc/vsftpd/user_config/ftpuser sudo systemctl restart vsftpd ------ これでftpuserのみ平文許可になる。 ------ SELinuxが有効な場合の追加設定 ------ getsebool -a | grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_passive_mode --> off ftpd_is_daemon --> on SELinux はデフォルトで FTP の暗号化を要求 する設定になっている場合があるため、 平文FTP を許可するためにポリシーを変更 する必要があります。 sudo setsebool -P ftpd_connect_db 1 sudo setsebool -P ftpd_use_passive_mode 1 通常、SELinux は FTP ユーザーがホームディレクトリにアクセスすることを制限 しています。 これを許可するには、以下のコマンドを実行。 sudo setsebool -P ftp_home_dir 1 以下のコマンドで確認できます。 sudo ausearch -m AVC,USER_AVC -c vsftpd もし SELinux によるアクセス拒否が原因であれば、avc: denied というログが表示されます。 (以上)