FTP 服務器承載企業核心圖紙、數據庫備份等高價值資產,長期暴露於暴力破解、木馬上傳、橫向移動等攻擊面。基於 Linux + Vsftpd 平台,本文提煉三大核心加固策略,助力構建「最小權限、零匿名、可審計」的安全傳輸基線。
Vsftpd 默認三類用戶:
| 類型 | 描述 | 默認權限 | 風險 |
|---|---|---|---|
| Real(本地實賬號) | 系統真實用戶 | 主目錄起步,可 cd 遍歷系統 | 高:橫向滲透、敏感文件洩露 |
| Guest(虛擬用戶/受限賬號) | 映射至單一系統賬號,chroot 限制在主目錄 | 僅主目錄及子目錄 | 低:天然隔離 |
| Anonymous(匿名) | 無需憑證,anonymous/ftp 登錄 | 僅 /var/ftp 只讀(可配置寫入) | 極高:掃描器首選、惡意上傳跳板 |
# 1. 編輯主配置
vim /etc/vsftpd/vsftpd.conf
# 關鍵參數
chroot_local_user=YES # 啟用 chroot
chroot_list_enable=YES # 啟用例外名單
chroot_list_file=/etc/vsftpd/chroot_list # 不受 chroot 限制的用戶(極少數管理賬號)
guest_enable=YES # 啟用虛擬用戶映射
guest_username=ftpvirtual # 映射的系統賬號(無 Shell、無權限)
user_config_dir=/etc/vsftpd/user_conf # 每用戶獨立配置目錄
# 2. 創建映射賬號
useradd -d /home/ftpvirtual -s /sbin/nologin ftpvirtual
mkdir -p /home/ftpvirtual
chown ftpvirtual:ftpvirtual /home/ftpvirtual
# 3. 為每業務用戶創建獨立配置(例:user1)
mkdir -p /etc/vsftpd/user_conf
echo "local_root=/data/ftp/user1" > /etc/vsftpd/user_conf/user1
echo "write_enable=YES" >> /etc/vsftpd/user_conf/user1
# 權限精細到目錄級,徹底隔離
# 4. 虛擬用戶認證(PAM + db4 / MySQL)
# 此處略過,參考 vsftpd 官方文檔「Virtual Users」章節
# 5. 重載
systemctl restart vsftpd
# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 核心:禁用匿名
# 若業務極少數需要公開下載,改用 HTTPS 簽名 URL / 對象存儲預簽名 URL 替代
理由: 匿名登錄無審計追蹤,是掃描器、蠕蟲、勒索軟體投遞的首選通道。合規要求(等保、GDPR)均明令禁止生產環境開放匿名 FTP。
ssl_enable=YES + 憑證,強制 FTPS(Explicit TLS),拒絕明文 FTP;/var/log/vsftpd.log,maxretry=3 封禁 IP;uploadscript,異步掃描惡意代碼;xferlog_enable=YES、log_ftp_protocol=YES,轉發至 SIEM;pasv_min_port=40000 pasv_max_port=40100,防火牆精準放行;quota 限制每用戶空間,防單用戶佔滿磁盤導致 DoS。總結: 「Real→Guest 全量遷移」解決橫向滲透,「Anonymous=NO」切斷無憑證攻擊面,「FTPS+Fail2Ban+掃描+配額」構建纵深防禦。三招核心 + 輔助清單,將 FTP 從「弱點」變為「可控傳輸通道」。
Apache 與 Nginx 啟用 Gzip 壓縮完整教學:減少 70% 傳輸流量
XAMPP Apache 啟動失敗「Busy... Port 80」完整排查與雙重解決方案
Windows Server 2003 取消遠程桌面自動鎖屏:關閉屏保一鍵解決
IBM HTTP Server 6.0 (IHS) 安裝完全圖解:基於 Apache、整合快取加速器與 SSL
Windows 2003 + IIS 6 + PHP 5 出現 HTTP 401.3 錯誤解決:PHP 目錄權限授權指南
Vista/Windows 7/Server 2008 IIS 7.x ASP 經典應用「HTTP 500 / 父路徑禁用」快速修復