CentOS中vsftpd安全設置指南
sudo yum update -ysudo yum install vsftpd -yanonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YES(若用戶主目錄需寫入,必須設置為YES,否則會導致登錄失?。?/li>
user_list文件定義允許/拒絕登錄的用戶列表(需配合userlist_enable和userlist_deny使用)userlist_enable=YESuserlist_file=/etc/vsftpd/user_listuserlist_deny=NO(設置為NO時,僅允許user_list中的用戶登錄;設置為YES時,拒絕user_list中的用戶登錄)xferlog_enable=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YES被動模式可避免客戶端因防火墻限制無法連接的問題,需指定安全的端口范圍(建議選擇1024-65535之間的高端口):
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50010(端口范圍可根據實際需求調整)
加密數據傳輸,防止用戶名、密碼及文件內容被竊?。?/p>
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/vsftpd.key \
-out /etc/pki/tls/certs/vsftpd.crt
ssl_enable=YESforce_local_data_ssl=YES(強制數據傳輸加密)force_local_logins_ssl=YES(強制登錄過程加密)ssl_tlsv1=YES(啟用TLSv1協議)ssl_sslv2=NO(禁用不安全的SSLv2)ssl_sslv3=NO(禁用不安全的SSLv3)rsa_cert_file=/etc/pki/tls/certs/vsftpd.crtrsa_private_key_file=/etc/pki/tls/private/vsftpd.key允許FTP服務端口(21/tcp)及被動模式端口范圍通過防火墻(以firewalld為例):
sudo firewall-cmd --permanent --add-service=ftp # 允許FTP服務(自動開放21/tcp)
sudo firewall-cmd --permanent --add-port=50000-50010/tcp # 允許被動模式端口范圍
sudo firewall-cmd --reload # 重新加載防火墻規則
調整SELinux策略,允許vsftpd訪問用戶主目錄:
sudo setsebool -P ftp_home_dir on # 允許FTP訪問用戶主目錄
sudo chcon -Rt svirt_sandbox_file_t /home/* # 設置用戶主目錄的SELinux上下文
sudo useradd -m ftpuser -s /sbin/nologin # 創建用戶并設置shell為nologin(禁止SSH登錄)
sudo passwd ftpuser # 設置強密碼
sudo chown ftpuser:ftpuser /home/ftpuser # 修改主目錄所有者
sudo chmod 755 /home/ftpuser # 設置目錄權限(所有者可讀寫執行,其他用戶可讀執行)
應用配置后,重啟vsftpd服務并設置為開機自啟:
sudo systemctl restart vsftpd # 重啟服務
sudo systemctl enable vsftpd # 開機自啟
tail -f /var/log/vsftpd.log實時監控FTP活動,及時發現異常行為。sudo yum update vsftpd更新vsftpd至最新版本,修復安全漏洞。