三種 FTP 登入模式
- Anonymous FTP:最常用,帳號
anonymous,密碼為電子郵件。
- Real FTP:真實系統帳號密碼,登入後可瀏覽整個目錄樹,安全風險極高,非必要勿用。
- Guest FTP:Real FTP 變體,登入後被
chroot 限制於家目錄,無法存取其他路徑。
主要配置檔案
/etc/ftpaccess:核心控制檔,功能最豐富
/etc/ftpusers:禁止登入的用戶名單 (如 root)
/etc/ftphosts:主機級允許/拒絕清單
/etc/ftpconversions:檔案轉換規則 (如壓縮/解壓)
ftpaccess 關鍵指令詳解
1. 用戶分類
class <類名> <類型> <IP/網域>
# 類型:anonymous, guest, real
class anon anonymous *
class mng real 210.221.80.0/24
class user real !domainname.com # 排除特定域名
2. 存取拒絕
deny <IP/檔案> <訊息檔>
deny !nameserverd /home/ftp/etc/noname.msg # 拒無反解析域名的連線
3. 身份映射
guestgroup <群組>... # 將符合群組的真實用戶視為 guest
guestuser <用戶>...
realgroup <群組>... # 強制視為 real user
realuser <用戶>...
# 例:guestuser * ; realgroup admin → 除 admin 群組外皆視為 guest
4. 連線與逾時控制
nice <類名> <值> # 調整進程優先序
keepalive yes|no # 保持資料通道活躍
timeout accept 120 # 被動模式資料通道連線等待
timeout connect 120 # 主動模式資料通道連線等待
timeout data 1200 # 資料通道閒置逾時
timeout idle 900 # 命令通道閒置逾時
timeout maxidle 7200 # 用戶端可設定的最大閒置上限
timeout RFC931 0 # 0 關閉 ident 查詢
tcpwindows <大小> # TCP 視窗大小,視網路品質調整
5. 傳輸配額限制
file-limit <類名> <in> <out> <total> [raw] # 檔案數量限制
byte-limit <類名> <in> <out> <total> [raw] # 流量位元組限制
limit-time {*|anonymous|guest} <秒數> # 單次會話最長時間 (real 不限)
6. 伺服器與連線數限制
guestserver <主機>... # 指定提供 anonymous/guest 服務的主機
limit <類名> <數量> <時間> <訊息檔> # 時段內最大連線數
實務建議
- 預設拒絕 Real FTP,僅開放 Anonymous 與 Guest。
- 善用
class 搭配 limit、byte-limit 防止濫用頻寬。
- 設定
timeout idle 與 maxidle 釋放閒置連線。
- 定期檢視
/var/log/xferlog 監控異常傳輸。