匿名用戶 anonymous_enable=YES anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_root=/var/ftp anon_max_ra ...
匿名用戶
anonymous_enable=YES anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_root=/var/ftp anon_max_rate=0
本地用戶
local_enable=YES local_umask=022 local_root=/var/ftp chroot_local_user=YES #開啟用戶家目錄限制 chroot_list_enable=YES # 開啟白名單 chroot_list_file=/etc/vsftpd/chroot_list #允許chroot_list裡面的用戶可以切換目錄 local_max_rate=0 userlist_enable=YES &userlist_deny=YES#禁止/etc/vsftpd/user_list裡面的用戶登錄ftp userlist_enable=YES &userlist_deny=NO#僅允許/etc/vsftpd/user_list裡面的用戶登錄ftp #配置文件ftpusers 禁止/etc/vsftpd/ftpusers裡面的用戶登錄ftp且許可權比user_list還要高,即時生效 #被動模式 pasv_enable=YES pasv_min_port=30000 pasv_max_port=35000
虛擬用戶
需要生成資料庫文件而且要拿一個本地用戶來映射虛擬用戶,做虛擬用戶配置文件設置時,必須將主配置文件中的 自定義的匿名用戶相關設置 註釋掉,給映射用戶的家目錄設置o+r讓虛擬用戶有讀許可權
vim vsftpd.user #奇數行:用戶,偶數行:密碼 db_load -T -t hash -f vsftpd.user vsftpd.db #對文件加密 #修改許可權 chmod 600 vsftpd.db #創建虛擬用戶的映射用戶,並指定其家目錄 useradd -d /var/ftproot -s /sbin/nologin virtual #建立PAM文件,添加虛擬用戶支持 cp -a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam cat /etc/pam.d/vsftpd.pam auth required pam_userdb.so db=/etc/vsftpd/vsftpd account required pam_userdb.so db=/etc/vsftpd/vsftpd #修改vsftpd.conf 添加支持配置 #pam_service_name=vsftpd pam_service_name=vsftpd.pam guest_enable=YES guest_username=virtual user_config_dir=/etc/vsftpd/dir #做虛擬用獨立戶配置文件設置時,必須將主配置文件中的 自定義的匿名用戶相關設置 註釋掉
anon_upload_enable=YES #允許上傳文件
anon_mkdir_write_enable=YES #允許創建目錄
anon_other_write_enable=YES #允許修改文件
#給映射用戶的家目錄設置o+r讓虛擬用戶有讀許可權
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
chmod a-w /var/ftproot 或者配置文件(主配置文件或者虛擬用戶配置文件都可以)添加allow_writeable_chroot=YES
安全
抓包 tcpdump -i ens32 -nn -X -vv tcp port 21 and ip host 源ip -i #interface -n #對地址以數字方式顯示,否則顯示主機名 -nn #除了-n作用外,將埠顯示為數值,否則顯示市口服務名 -X #輸出包的頭部數據,以16進位和ascii兩種方式同時輸出 -vv #顯示更詳細的輸出
openssl
rpm -q openssl 查看vsftpd是否支持openssl ldd /usr/sbin/vsftpd | grep libssl 生成加密信息的秘鑰和證書文件 位置:/etc/ssl/certs/ openssl genrsa -out vsftpd.key 1024 openssl req -new -key vsftpd.key -out vsftpd.csr openssl x509 -req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt 生成秘鑰和證書文件後,將本目錄(/etc/ssl/certs/)的許可權修改為500 chmod 500 /etc/ssl/certs/
修改主配置文件
#啟用ssl ssl_enable=YES #開啟TLSV1 SSLV2 SSLV3支持 ssl_tlsv1=YES ssl_sslv2=YES ssl_sslv3=YES #允許匿名用戶[虛擬用戶] allow_anon_ssl=YES #匿名用戶登錄和傳輸時強制使用ssl force_anon_logins_ssl=YES force_anon_data_ssl=YES #本地登錄和傳輸時強制使用ssl force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/ssl/certs/vsftpd.crt rsa_private_key_file=/etc/ssl/certs/vsftpd.key
配置完之後重啟服務
使用客戶端連接的時候選擇 TLS/SSL顯示加密可以看到證書信息