Ubuntu FTP服務器安全策略配置指南
首先更新系統軟件包并安裝vsftpd(Ubuntu默認FTP服務器):
sudo apt update
sudo apt install vsftpd
編輯配置文件/etc/vsftpd.conf
,按以下要求調整關鍵參數:
anonymous_enable=NO
。local_enable=YES
。write_enable=YES
。chroot_local_user=YES
將用戶鎖定在自己的家目錄(避免遍歷整個文件系統);若需允許用戶寫入主目錄,需額外添加allow_writeable_chroot=YES
(解決chroot環境下的寫入權限問題)。xferlog_enable=YES
、xferlog_std_format=YES
。FTP協議默認以明文傳輸數據,易被竊取或篡改,需通過SSL/TLS加密:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
(按提示輸入域名、郵箱等信息,生成的證書有效期為1年)/etc/vsftpd.conf
中添加以下參數:ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES # 強制數據傳輸加密
force_local_logins_ssl=YES # 強制登錄過程加密
ssl_tlsv1=YES # 僅允許TLSv1協議(禁用SSLv2、SSLv3,避免已知漏洞)
ssl_sslv2=NO
ssl_sslv3=NO
sudo systemctl restart vsftpd
使用UFW(Ubuntu默認防火墻工具)限制訪問,僅允許必要端口:
sudo ufw allow 21/tcp
。pasv_min_port
和pasv_max_port
,如pasv_min_port=50000
、pasv_max_port=50100
),執行sudo ufw allow 50000:50100/tcp
。sudo ufw enable
,并通過sudo ufw status
確認規則生效(顯示“21/tcp ALLOW”和“50000:50100/tcp ALLOW”)。sudo adduser ftpuser
(按提示設置密碼和用戶信息),并設置家目錄權限(確保用戶只能訪問自己的目錄):sudo usermod -d /home/ftpuser ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
/etc/vsftpd.conf
中添加:userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO # 僅允許列表中的用戶登錄(若設為YES,則拒絕列表中的用戶)
然后將允許登錄的用戶名添加到/etc/vsftpd.userlist
中(每行一個用戶名)。sudo apt update && sudo apt upgrade -y
,及時修復vsftpd及系統漏洞。systemctl disable
命令關閉未使用的服務(如Telnet、SSH反向隧道),減少攻擊面。/var/log/vsftpd.log
(或/var/log/xferlog
),關注異常登錄(如頻繁失敗的登錄嘗試)、未授權的數據傳輸等行為。