vsftpd(Very Secure FTP Daemon)以安全性著稱,運行於 Linux、BSD、Solaris、HP-UX 等類 Unix 系統,完全免費開源。支援高安全需求、頻寬限制、良好擴展性、虛擬用戶、IPv6、高傳輸速率等眾多其他 FTP 伺服器不具備的特性。
# 檢查/建立 nobody 用戶
useradd nobody
# 檢查/建立空目錄
mkdir -p /usr/share/empty
# 匿名訪問需建立 ftp 用戶與目錄
mkdir /var/ftp
chown root.root /var/ftp
chmod 755 /var/ftp
安全考量:/var/ftp 不屬於 ftp 用戶,無寫入權限,防止匿名上傳惡意文件。
# 下載源碼
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz
# 解壓編譯安裝
tar xzvf vsftpd-2.0.3.tar.gz
cd vsftpd-2.0.3
make
make install
# 主配置文件
cp vsftpd.conf /etc/
# PAM 認證文件(關鍵:源碼安裝缺失導致本地用戶無法登入)
cp RedHat/vsftpd.pam /etc/pam.d/ftp
關鍵說明:vsftpd 採用 PAM 認證,源碼安裝未自動部署 PAM 文件,導致匿名可登入但本地用戶失效,必須手動複製。
anonymous_enable=NO
local_enable=YES
write_enable=YES
# 需配合 PAM 文件 /etc/pam.d/ftp 生效
chroot_local_user=YES
userlist_enable=YES
userlist_deny=YES # YES=列表用戶禁止登入,NO=僅允許列表用戶
userlist_file=/etc/vsftpd.user_list
建立 /etc/vsftpd.user_list,每行一個用戶名。
chmod_enable=NO
local_umask=022
# 檔案 644、目錄 755,解決網頁權限不足問題(預設 077 導致 Permission denied)
useradd -g ftp -s /sbin/nologin ftpuser
passwd ftpuser
max_clients=100 # 最大並發連接數
max_per_ip=3 # 單 IP 最大連接數
以上配置滿足基礎 FTP 伺服器需求,vsftpd 提供豐富進階選項可按業務深度調優。