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

從零開始:在 TurboLinux 上架設 Qmail 郵件伺服器的完整實戰日誌

編輯:關於伺服器

專案背景與環境規劃

因業務需求決定替換現有的 Exchange 郵件伺服器,新平台無特定系統限制,但要求正版或免費授權,最終選定 TurboLinux DataServer 7 作為作業系統基礎。硬體環境為 IBM x345(單顆至強 2.8GHz、1GB 記憶體、3×36GB RAID 5),磁碟分區規劃為 `/boot` 64MB、`/swap` 2GB、其餘全分給 `/` 根分區。

系統基礎建置與遠端連線攻關

Telnet 服務啟用全紀錄

初次安裝完成後發現 Telnet 與 FTP 預設關閉。歷經多次嘗試,最終透過以下步驟成功開啟 Telnet:

  • 使用 `ntsysv` 精簡服務,僅保留核心項目(acpid、crond、network、proftpd、syslog、telnet、xinetd 等)
  • `chkconfig telnet on` 啟用服務
  • 修改 `/etc/hosts.allow` 加入 `in.telnetd : ALL`
  • 調整 `/etc/xinetd.conf` 將 `instances` 擴大至 600
  • 註解 `/etc/pam.d/login` 中的 `auth required pam_securetty.so`
  • 暫停防火牆:`/etc/init.d/iptables stop`

經驗總結:服務精簡與 PAM 設定是關鍵,單純開啟 xinetd 往往不足夠。

Qmail 核心套件編譯安裝

使用者與群組建立

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

核心套件編譯(netqmail-1.04)

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、daemontools、vpopmail

依序編譯安裝 `ucspi-tcp-ssl-pid-0.88`、`daemontools-0.70`、`vpopmail-5.4.17`,為後續虛擬域、POP3 驗證、服務監控奠基。

Web 管理介面與擴展功能模組部署

Autorespond 自動回覆

簡單 `make && make install` 即可完成,為 qmailadmin 提供依賴項。

Apache + PHP 環境就緒

系統自帶 Apache 1.3.27、PHP 4.2.3、MySQL 4.0.20,調整 `httpd.conf` 與 `php.ini` 參數後啟動,驗證 phpMyAdmin 運作正常。

Ezmlm 郵件列表管理(踩坑記)

編譯 `ezmlm-0.53` 時遇到 `errno` 未定義錯誤,於 `substdo.c` 手動加入 `int errno;` 解決;`make setup` 因 `/usr/local/man` 目錄已存在失敗,略過不影響功能。

Qmailadmin 虛擬域 Web 管理

./configure --enable-cgibindir=/var/www/cgi-bin \
            --enable-htmllibdir=/var/www/html/qmailadmin
make && make install

登入測試成功,透過建立 `.qmailadmin-limits` 設定預設配額 10MB(`default_quota 10485760S`)。

Vqsignup 使用者自助註冊

執行 `configure` 產生 Makefile,部署 CGI 與 HTML 檔案至對應目錄,調整權限為 `vpopmail:vchkpw` 後測試通過,並完成介面漢化。

進階功能與疑難雜症排除

郵件大小限制

於 `/var/qmail/control/databytes` 寫入 `3072000`(3MB),Outlook 測試正確回傳超大郵件錯誤。

SMTP 認證攻關(關鍵里程碑)

初期嘗試 `checkpassword`、`cmd5checkpw` 均遇 `errno` 未定義,同樣手動修補原始碼解決。修改 `/var/qmail/bin/qmail` 啟動腳本引入 `vchkpw` 驗證,但發現「發信無需認證」的嚴重漏洞。最終下載 `qmail-smtpd.c` 修補版覆蓋原檔並重新編譯,測試結果:

  • 對外發信:錯誤帳號/密碼正確拒絕,正確憑證通過
  • 本機發信:仍存在繞過認證問題,需持續追蹤 tcpserver 規則與 `tcp.smtp.cdb` 設定

階段性總結與後續規劃

類別清單
作業環境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 並整合反垃圾/防毒模組,朝企業級郵件系統邁進。

Copyright © Windows教程網 All Rights Reserved