VSFTPD 作為 UNIX/Linux 系統下極具安全性與高性能的 FTP 服務器,已被眾多大型站點廣泛採用。其支持將用戶憑證存儲於數據庫文件或數據庫服務器中,這類用戶稱為「虛擬用戶」。相較於系統本地用戶,虛擬用戶僅擁有 FTP 服務器資源訪問權限,大幅增強系統安全性;相較於匿名用戶,虛擬用戶需憑用戶名密碼登錄,實現了對下載用戶的有效管理。對於需提供下載服務、兼顧安全與管理便利的 FTP 站點,虛擬用戶是理想解決方案。本文詳細講解在 RedHat Linux 9 上將 VSFTPD 虛擬用戶憑證存儲至 MySQL 數據庫的完整流程。
nobody 用戶(useradd nobody)/usr/share/empty 目錄(mkdir /usr/share/empty)mkdir /var/ftp、useradd -d /var/ftp ftp、設置目錄權限 chown root.root /var/ftp、chmod og-w /var/ftp下載 vsftpd-1.2.0.tar.gz,執行:
tar zxvf vsftpd-1.2.0.tar.gz
cd vsftpd-1.2.0
make
make install
RedHat 9 可能需手動複製二進制文件與手冊頁至 /usr/local/sbin、/usr/local/share/man。隨後複製基礎配置文件 vsftpd.conf 至 /etc,PAM 認證文件 vsftpd.pam 至 /etc/pam.d/ftp(允許本地用戶登錄)。
VSFTPD 通過 PAM 驗證虛擬用戶,需一個系統用戶作為「guest」讀取數據庫完成驗證(類似匿名用戶需 ftp 系統用戶)。創建 vsftpdguest 用戶:
useradd vsftpdguest
虛擬用戶登錄後將定位於 /home/vsftpdguest 目錄。
後續需在 MySQL 中創建虛擬用戶表、配置 PAM 使用 MySQL 認證模塊(如 pam_mysql)、修改 vsftpd.conf 啟用虛擬用戶支持(guest_enable=YES、guest_username=vsftpdguest、pam_service_name=vsftpd)等關鍵步驟,構建完整的 VSFTPD + MySQL 虛擬用戶體系。