apt-cache search ftpd 列出十餘種 FTP 服務,Wu-ftpd (Washington University FTP Daemon) 為歷史最悠久、部署最廣、功能最完整的免費 FTP 伺服器,支援虛擬主機、壓縮傳輸、連線控制、上傳/下載日誌、目錄限制等企業級特性。Debian 套件版本 2.6.2,穩定可靠。
apt-get install wu-ftpd
安裝精靈詢問:
/home/ftpincoming,權限 daemon:ftp 0666)安裝完成會提示 libnss_files.so 缺失導致匿名用戶看到 UID/GID 數字而非名稱,手動複製至 /home/ftp/lib 並 chmod 444 可修正(非必須)。
chmod 555 /home/ftp
chmod 111 /home/ftp/bin/*
chmod 555 /home/ftp/lib/*
chmod 444 /home/ftp/etc/*
確保匿名用戶進入 chroot 後無法寫入系統目錄、無法執行非必要二進制檔。
依區塊說明關鍵指令:
email ftpadmin@yourdomain.com
# deny-uid %-99 # 範例語法,視需求啟用
# allow-uid ftpadmin
# allow-gid ftpadmin
loginfails 5
restricted-uid kanaka
啟用後,用戶 kanaka 僅能見到自己的家目錄,無法向上遍歷,極大降低資訊洩露風險。
class all real,guest,anonymous *
class local real localhost loopback
class remote guest,anonymous *
class rmtuser real !*.example.com
依來源 IP 與帳號類型分級,後續可針對不同 class 套用不同配額、超時、權限。
limit all 30 Any /etc/wu-ftpd/msg.toomany
readme README* login
readme README* cwd=*
compress yes local remote all
tar yes local remote all
用戶下載目錄時可直接 get dir.tar.gz,伺服器端即時打包壓縮傳輸,節省頻寬。
log transfers anonymous,guest,real inbound,outbound
limit-time anonymous 30
rename no anonymous
delete no anonymous
overwrite no anonymous
chmod no anonymous
umask no anonymous
# upload /home/ftp * no
# upload /home/ftp /pub/incoming yes ftp daemon 0666 nodirs
僅允許上傳至 /pub/incoming,檔案屬主 ftp:daemon,權限 0666,禁止建立子目錄。
ftpusers:拒絕登入帳號清單(root、daemon、bin、sys、sync 等系統帳號預設列入)。ftpconversions:定義壓縮/解壓縮指令對應(.gz→gzip、.bz2→bzip2、.tar→tar 等),預設已涵蓋主流格式,確認 /home/ftp/bin 具備對應執行檔(如 bzip2 需自行 apt-get install bzip2 並複製)。msg.deny、msg.nodns、msg.toomany、pathmsg:各種提示訊息自訂。ftp localhost 測試匿名/實名登入、目錄可見度、上傳下載權限。/var/log/ftp.log 或 xferlog 確認記錄完整。ftpmirror 建立鏡像站。mod_wrap (tcp_wrappers) 強化存取控制。本系列教學順序:(一) Apache+MySQL+PHP → (二) Wu-ftpd → (三) Exim 郵件 → (四) 其他服務。