以下是Ubuntu FTP Server(以vsftpd為例)的定制化配置步驟,涵蓋基礎設置、用戶權限、安全增強及高級功能:
安裝vsftpd
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目錄可寫
listen_port=2121 # 自定義監聽端口(默認21)
pasv_enable=YES # 啟用被動模式
pasv_min_port=30000 # 被動模式端口范圍(需與防火墻一致)
pasv_max_port=30001 #
創建專用FTP用戶
sudo adduser ftpuser --shell /sbin/nologin # 禁止shell登錄
sudo chown ftpuser:ftpuser /home/ftpuser # 設置主目錄權限
sudo chmod 755 /home/ftpuser # 確??稍L問
用戶列表控制(可選)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO # 允許列表內用戶訪問
/etc/vsftpd.userlist
,每行一個。啟用SSL/TLS加密
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES # 強制數據傳輸加密
限制IP訪問(可選)
/etc/hosts.allow
和 /etc/hosts.deny
,添加:vsftpd: 192.168.1.0/24 # 允許指定IP段訪問
vsftpd: ALL # 拒絕其他IP
虛擬用戶(非系統用戶)
sudo apt install libpam-pwdfile
# 在/etc/vsftpd.conf中添加
guest_enable=YES
guest_username=virtualuser # 系統中需存在該用戶
pam_service_name=vsftpd.virtual
/etc/vsftpd/virtual_users.txt
),格式:用戶名:密碼
,并生成PAM配置。日志與監控
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES # 記錄協議交互日志
重啟服務
sudo systemctl restart vsftpd
測試連接