配置Ubuntu FTP服務器的用戶認證可以通過多種方式實現,其中最常見的是使用vsftpd(Very Secure FTP Daemon)。以下是詳細的步驟指南:
首先,確保你的系統是最新的,然后安裝vsftpd:
sudo apt update
sudo apt install vsftpd
編輯vsftpd的配置文件 /etc/vsftpd.conf
:
sudo nano /etc/vsftpd.conf
在配置文件中,你可以根據需要進行以下設置:
允許本地用戶登錄:
local_enable=YES
允許寫操作:
write_enable=YES
允許匿名用戶登錄(可選):
anonymous_enable=NO
使用本地用戶進行認證:
local_umask=022
啟用被動模式(如果需要通過防火墻訪問):
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
限制用戶訪問特定目錄(可選):
chroot_local_user=YES
allow_writeable_chroot=YES
使用PAM進行認證(推薦):
auth_enable=YES
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_nologin.so
account required pam_access.so
創建一個用戶列表文件 /etc/vsftpd.user_list
,并列出允許訪問FTP的用戶:
sudo nano /etc/vsftpd.user_list
添加用戶名 ftpuser
到文件中:
ftpuser
重啟vsftpd服務以應用更改:
sudo systemctl restart vsftpd
如果你使用的是UFW防火墻,確保開放FTP端口(默認是21和被動模式的端口范圍):
sudo ufw allow 21/tcp
sudo ufw allow 1024:1048/tcp
使用FTP客戶端連接到你的服務器,測試是否可以成功登錄并進行文件傳輸。
通過以上步驟,你應該能夠成功配置Ubuntu上的FTP服務器,并使用本地用戶進行認證。