因業務需求決定替換現有的 Exchange 郵件伺服器,新平台無特定系統限制,但要求正版或免費授權,最終選定 TurboLinux DataServer 7 作為作業系統基礎。硬體環境為 IBM x345(單顆至強 2.8GHz、1GB 記憶體、3×36GB RAID 5),磁碟分區規劃為 `/boot` 64MB、`/swap` 2GB、其餘全分給 `/` 根分區。
初次安裝完成後發現 Telnet 與 FTP 預設關閉。歷經多次嘗試,最終透過以下步驟成功開啟 Telnet:
經驗總結:服務精簡與 PAM 設定是關鍵,單純開啟 xinetd 往往不足夠。
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g nofiles -d /var/qmail qmailq
useradd -g nofiles -d /var/qmail qmailr
useradd -g nofiles -d /var/qmail qmails
tar xvzf netqmail-1.04.tar.gz
cd netqmail-1.04
./collate.sh # 1.04 版需先打 patch
cd netqmail-1.04
make setup check
./config-fast $HOSTNAME
cd ~alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
sed 's/Mailbox/Maildir\//' /var/qmail/boot/home >/var/qmail/rc
chmod 755 /var/qmail/rc
依序編譯安裝 `ucspi-tcp-ssl-pid-0.88`、`daemontools-0.70`、`vpopmail-5.4.17`,為後續虛擬域、POP3 驗證、服務監控奠基。
簡單 `make && make install` 即可完成,為 qmailadmin 提供依賴項。
系統自帶 Apache 1.3.27、PHP 4.2.3、MySQL 4.0.20,調整 `httpd.conf` 與 `php.ini` 參數後啟動,驗證 phpMyAdmin 運作正常。
編譯 `ezmlm-0.53` 時遇到 `errno` 未定義錯誤,於 `substdo.c` 手動加入 `int errno;` 解決;`make setup` 因 `/usr/local/man` 目錄已存在失敗,略過不影響功能。
./configure --enable-cgibindir=/var/www/cgi-bin \
--enable-htmllibdir=/var/www/html/qmailadmin
make && make install
登入測試成功,透過建立 `.qmailadmin-limits` 設定預設配額 10MB(`default_quota 10485760S`)。
執行 `configure` 產生 Makefile,部署 CGI 與 HTML 檔案至對應目錄,調整權限為 `vpopmail:vchkpw` 後測試通過,並完成介面漢化。
於 `/var/qmail/control/databytes` 寫入 `3072000`(3MB),Outlook 測試正確回傳超大郵件錯誤。
初期嘗試 `checkpassword`、`cmd5checkpw` 均遇 `errno` 未定義,同樣手動修補原始碼解決。修改 `/var/qmail/bin/qmail` 啟動腳本引入 `vchkpw` 驗證,但發現「發信無需認證」的嚴重漏洞。最終下載 `qmail-smtpd.c` 修補版覆蓋原檔並重新編譯,測試結果:
| 類別 | 清單 |
|---|---|
| 作業環境 | TurboLinux DS 7 / Apache 1.3.27 / PHP 4.2.3 / MySQL 4.0.20 |
| 自編軟體 | qmail-1.04, vpopmail-5.4.17, qmailadmin-1.2.9, autorespond-2.0.2, ucspi-tcp-0.88, daemontools-0.70, vqsignup-0.5, ezmlm-0.53 |
| 已完成功能 | SMTP/POP3 收發、虛擬域、系統/郵件帳號隔離、郵件列表、大小限制、轉發、自動回覆、Web 管理、使用者自助註冊 |
| 待補強項目 | SMTP AUTH 完善、Webmail (sqwebmail)、反垃圾郵件、防病毒整合 |
四天從零上手達成核心郵件流程,後續將引入 `checkpassword` 徹底修復 SMTP 認證、部署 sqwebmail 並整合反垃圾/防毒模組,朝企業級郵件系統邁進。