Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 伺服器綜合

Linux 架設 FTP 伺服器進階實戰(二):wu-ftpd 編譯安裝、配置指令全解析與虛擬主機部署

編輯:伺服器綜合

前言:wu-ftpd 為經典 FTP 守護進程,功能強大、配置精細,掌握其編譯與配置即掌握 Linux FTP 核心技術

雖 vsftpd、ProFTPD 更現代,但 wu-ftpd 仍廣泛應用於傳統系統,其配置指令涵蓋存取控制、頻寬限制、虛擬主機、上傳權限等企業級需求。本文詳述原始碼編譯安裝、核心配置指令語法與實戰範例。

一、原始碼編譯安裝 wu-ftpd 2.6.0

1. 取得原始碼

官方:`ftp://ftp.wu-ftpd.org/pub/wu-ftpd/` 下載 `wu-ftpd-2.6.0.tar.gz`。

2. 解壓與進入目錄

cp wu-ftpd-2.6.0.tar.gz /usr/src
cd /usr/src
tar xvfz wu-ftpd-2.6.0.tar.gz
cd wu-ftpd-2.6.0

3. 編譯(指定 GCC)

./build CC=gcc lnx
# lnx 為 Linux 目標平台識別碼

編譯產出執行檔:`ftpd` (主程式)、`ftpshut` (關閉)、`ftpcount` (計數)、`ftpwho` (連線查看)、`ckconfig` (配置檢查)、`ftprestart` (重啟)、`privatepw` (群組密碼管理)。

4. 安裝

./build install
# 自動複製執行檔至 /usr/sbin、/usr/bin,man page 至 /usr/man

5. 配置 inetd/xinetd 啟動 ftpd

編輯 `/etc/inetd.conf` 或 `/etc/xinetd.d/wu-ftpd`,指向新 `ftpd`,建議加入 `-a` 參數啟用 `ftpaccess` 進階配置。
常用參數:
`-d` 偵錯日誌 → `/var/log/messages`
`-l` 記錄每次會話
`-t 600` 閒置 10 分鐘斷線
`-a` 使用 ftpaccess 配置
`-i` 記錄上傳至 `xferlog`
`-L` 記錄所有指令

6. 複製系統工具至匿名根目錄


cp /bin/tar /bin/gzip /bin/gunzip /bin/compress /bin/uncompress ~ftp/bin/
cp /bin/ls ~ftp/bin/ls

7. 首次安裝檢查配置


ckconfig
# 依提示修復缺失配置檔,參考 doc/examples/ 範例

二、核心配置檔 `/etc/ftpaccess` 指令全解析

此檔案控制 FTP 伺服器行為核心,採指令式語法,支援類別、限制、訊息、記錄、上傳、別名、虛擬主機等豐富功能。

1. 使用者分類:class


class all real,guest,anonymous *
class friend real,guest,anonymous *.linuxaid.com.cn 202.102.13.*
• 類別名自定義 • 類型:real(實體帳號)、guest(客體)、anonymous(匿名) • IP 遮罩支援萬用字元。

2. 連線數與時間限制:limit


limit local 20 Any /tmp/message/msg.toomany
limit outworld 100 MoTu|Any 2200-0800 /tmp/message/msg.limit
• 類別、最大連線數、時段、超限提示訊息檔。
• 訊息檔支援變數:`%T`(時間)、`%M`(上限)、`%N`(當前數)、`%F`(剩餘空間)、`%C`(當前目錄)、`%E`(管理員信箱)、`%R`(遠端主機)、`%L`(本地主機)、`%U`(登入帳號)。

3. 登入/目錄切換自動顯示訊息:readme / message


readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
• `readme` 顯示檔案內容 • `message` 顯示指定檔案 • `cwd=*` 任意目錄切換觸發。

4. 壓縮與打包支援:compress / tar


compress yes all
tar yes all

5. 記錄設定:log commands / log transfers


log commands real
log transfers anonymous,real inbound,outbound

6. 關閉控制:shutdown


shutdown /etc/shutmsg
# 以 ftpshut 建立時間檔,刪除檔案即恢復服務

7. 匿名密碼驗證策略:passwd-check


passwd-check rfc822 enforce
# 僅接受 RFC822 郵件格式密碼,不符拒絕登入

8. 上傳目錄與權限控制:upload


upload /var/ftp * no
upload /var/ftp /incoming yes ftp daemon 0666
upload /var/ftp /incoming/gifs yes jlc guest 0600 nodirs
• 僅允許 `/incoming` 及 `/incoming/gifs` 上傳 • 新檔擁有者/群組/權限指定 • `nodirs` 禁止建立子目錄。

9. 目錄別名:alias / cdpath


alias xwin /pub/linux/xwindows
cdpath /pub/linux /pub /
• `cd xwin` 即進入 `/pub/linux/xwindows` • `cdpath` 模擬 PATH 變數行為。

10. 檔名過濾:path-filter


path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_.]*$ ^.-
# 僅允許字母數字底線點連字號,禁止以 . 或 - 開頭

11. 客體/實體使用者映射:guestgroup / guestuser / realgroup / realuser


guestuser *
realgroup admin
# 所有非匿名用戶視為 guest (chroot 限制),admin 群組例外保持 real 身分
• `/etc/passwd` 中 home 目錄格式:`/ftp/./incoming` → `chroot("/ftp")` + `chdir("/incoming")`。

12. 虛擬主機支援:virtual


virtual 192.168.1.10 root /var/ftp/vhost1
virtual 192.168.1.10 banner /var/ftp/vhost1/banner.msg
virtual 192.168.1.10 logfile /var/log/xferlog_vhost1
virtual 192.168.1.10 allow user1 user2
virtual 192.168.1.10 deny baduser
virtual 192.168.1.10 private
• 同一 IP 綁定多個虛擬 FTP 站點,各自獨立根目錄、歡迎訊息、日誌、存取控制。

13. 存取控制:deny / allow-retrieve / noretrieve


deny 202.102.15* *.hacker.com /tmp/message/deny.msg
noretrieve /etc/passwd core
allow-retrieve /pub/README

14. 其他重要指令

  • `loginfails n`:密碼錯誤 n 次斷線
  • `autogroup`:匿名用戶自動切換群組實現特定權限
  • `email`:管理員聯絡信箱
  • `hostname`:伺服器主機名稱
  • `greeting` / `banner`:登入前/後歡迎訊息控制
  • `timeout` 系列:各類逾時參數調整
  • `file-limit` / `byte-limit`:檔案數/位元組傳輸配額
  • `limit-time`:單一會話最長持續時間
  • `private yes`:啟用 SITE GROUP/GROUP PASS 增強存取控制
  • `daemonaddress`:綁定特定 IP 監聽
  • `defaultserver allow/deny/private`:預設站點存取控制

三、升級安裝注意事項

  • 升級前**備份所有舊配置檔**(`ftpaccess`、`ftpusers`、`ftpgroups`、`ftpconversions` 等),否則將被覆蓋。
  • 編輯範例配置檔適配自身需求,而非直接套用預設值。

結語

wu-ftpd 配置雖繁複,但每一指令皆直映業務需求。建立標準化 `ftpaccess` 模板、版本控管配置檔、自動化 `ckconfig` 驗證納入 CI/CD,讓 FTP 服務配置從「玄學」變為「工程」。

Copyright © Windows教程網 All Rights Reserved