在Ubuntu上設置FTP服務器用戶認證,通常使用vsftpd(Very Secure FTP Daemon)作為FTP服務器軟件。以下是詳細的步驟:
首先,確保你的系統是最新的,然后安裝vsftpd:
sudo apt update
sudo apt install vsftpd
安裝完成后,你需要編輯vsftpd的配置文件 /etc/vsftpd.conf
。
sudo nano /etc/vsftpd.conf
在配置文件中,確保以下幾行沒有被注釋掉(去掉行首的#
):
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
創建一個新的系統用戶,并設置密碼:
sudo adduser ftpuser
sudo passwd ftpuser
如果你希望使用PAM進行更復雜的認證,可以編輯 /etc/pam.d/vsftpd
文件:
sudo nano /etc/pam.d/vsftpd
確保文件中有以下行:
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd.user_list onerr=succeed
auth required pam_shells.so
account required pam_listfile.so item=user sense=deny file=/etc/vsftpd.user_list onerr=succeed
然后創建 /etc/vsftpd.user_list
文件,并添加允許訪問FTP的用戶:
sudo nano /etc/vsftpd.user_list
在文件中添加用戶名:
ftpuser
保存所有更改后,重啟vsftpd服務以應用配置:
sudo systemctl restart vsftpd
確保你的防火墻允許FTP流量。如果你使用的是UFW(Uncomplicated Firewall),可以運行以下命令:
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp # 如果你需要FTPS(FTP over SSL)
sudo ufw reload
使用FTP客戶端(如FileZilla)連接到你的服務器,輸入FTP地址、用戶名和密碼進行測試。
通過以上步驟,你應該能夠在Ubuntu上成功設置FTP服務器用戶認證。如果有任何問題,請檢查日志文件 /var/log/vsftpd.log
以獲取更多信息。