軟件的正確安裝與調試是構築系統的第一步,同時,簡單的評測也是必不可少的。如果你的系統中以前曾安裝過Sendmail,那麼請不要錯過本篇中關於Sendmail向Qmail遷移的內容。
下載Qmail
可以通過訪問www.qmail.org或Mirror站點下載qmail-1.03.tar.gz。在http://em.ca/~brUCeg/qmail+
patches/上有一個很好的補丁包,裡面有若干針對Qmail的POP3d及其他問題的補丁,筆者建議您把它下載過來。
安裝Qmail
獲得Qmail-1.03.tar.gz後,用tar命令解包:
#tar xzvf qmail-1.03.tar.gz
進入Qmail目錄後,請仔細閱讀Readme和Install文件。
在進行編譯前,可根據需要選擇安裝補丁程序:
root:/usr/local/src/qmail-1.03# patch -p1 < /path/to/qmail-
103.patch
接下來,開始安裝Qmail。
1. 建立Qmail 根目錄
# mkdir /var/qmail
2. 按照Install.ids中的方法建立Qmail用戶和組
我們需要一一建立Qmail各後台進程運行所要用到的用戶名和用戶組:
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails
3. 編譯 Qmail 及相關軟件
這一步是軟件編譯及建立Qmail 的目錄結構:
root:/usr/local/src/qmail-1.03# make setup check
4. 配置Qmail
開始配置Qmail之前,請認真閱讀Install.ctl和FAQ,配置Qmail最簡單的方法是:
#./config
或者:
#./config-fast your.full.home.name
5. 建立系統別名
root:/usr/local/src/qmail-1.03# cd ~alias
root:/var/qmail/alias# echo adam > .qmail-root
root:/var/qmail/alias# echo bob > .qmail-postmaster
root:/var/qmail/alias# echo bob > .qmail-mailer-daemon
6. 建立/var/qmail/rc
/var/qmail/rc是專門用來啟動Qmail的文件(它可以說是最為重要的Qmail文件了)。/var/qmail/rc中存放著Qmail的確認投遞指令(Default Delivery Instructions),由它來決定Qmail收到郵件後該怎麼做。
我們可以先復制/var/qmail/
boot/proc到/var/qmail/rc,再對它進行編輯修改:
# cp /var/qmail/boot/proc /var/qmail/rc
如果我們想讓系統支持 .forward 文件,並將郵件投遞到/var/spool/mail,那麼/var/qmail/
rc 應該這樣寫:
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ′dot-forward .forward preline procmail′
如果想把郵件投遞到每個用戶的 Maildir 中而不是傳統的 /var/spool/mail中,就要把/var/qmail/rc修改成這樣:
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ′dot-forward .forward
./Maildir/′
7. 開始測試Qmail投遞程序
建好/var/qmail/rc後,就可以啟動Qmail了:
# csh -cf ′/var/qmail/rc &&′
啟動Qmail後,可以參照TEST.deliver介紹的方法進行測試。
啟動 Qmail-SMTPD的方法
可以通過兩種方法啟動Qmail-SMTPD,一種是在Inetd中,一種是Tcpserver程序。
1. 在Inetd中啟動Qmail-SMTPD:
在/etc/inetd.conf中設置Qmail-SMTPD:
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env \
tcp-env/var/qmail/bin/qmail-smtpd
然後重新啟動Inetd。
2.用Tcpserver程序啟動Qmail-SMTPD:
將/etc/inetd.conf中有關smtp一行注釋掉,然後將下面一行加入你的系統啟動文件中:
tcpserver -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd &&
把7770換成你的Qmail的UID,2108換成你的Nofiles的GID。
Tcpserver命令參數很多,可以對同時使用Qmail-SMTPD的人數、IP地址、域等進行控制,詳細的命令請參考Qmail的FAQ(當然,你必須要安裝Tcpserver程序,該程序可在http://pobox.com/~djb/ucspi-tcp.Html下載)。
啟動Qmail-POP3D
傳統的POP3只支持Mailbox方式的郵件投遞,為了支持Maildir方式的郵件投遞,需要使用Qmail提供的POP3:Qmail-POP3D。首先,確定你的/etc/services文件中已經有下面這一行:POP3 110/tcp。
然後,需要安裝一個口令驗證程序。如果想使用VmailMgr的虛擬用戶認證方式,可在安裝VmailMgr 後使用“checkvpw”命令換掉“checkpassWord”命令(不然要從http://pobox.com/~djb/checkpwd.html下載checkpassword)。在/etc/inetd.conf加入下面一行:
POP3 stream tcp nowait root
/var/qmail/bin/qmail-popup qmail-popup
YourHost /bin/checkpassword /var/qmail/bin/qmail-POP3d Maildir
注意,請將YourHost換為你的域名全稱。當然,也可以通過Tcpserver 啟動來把 YourHost換為你的域名的全稱。
tcpserver 0 POP3 /var/qmail/bin
/qmail-popup YOURHOST \
/bin/checkpassword /var/qmail/
bin/qmail-POP3d Maildir &&
從Sendmail向Qmail遷移
如果你的系統以前安裝使用著Sendmail,就需要進行下面的步驟:
1.首先找到Sendmail的啟動程序,一般是在/etc/rc.d目錄中,看上去像這樣的命令:“sendmail -bd -q15m”,將其注釋掉。
2. 殺掉Sendmail進程。
如果Sendmail有子進程,可以反復用-STOP和-CONT信號殺,直到沒有子進程後用-TERM後加-CONT殺就可以了。
3. 檢查E-mail隊列中是否還有信,如果認為有必要將它們發送出去,可以在以後一段時間不定期地運行“sendmail.bak -q”,直到隊列清空。
4. 去掉Sendmail等文件的setuid bit:
# chmod 0 /usr/lib/sendmail
# chmod 0 /usr/sbin/sendmail
# chmod 0 /usr/lib/sendmail.mx
# mv /usr/lib/sendmail /usr/lib
/sendmail.bak
# mv /usr/sbin/sendmail /usr
/sbin/sendmail.bak
5. 將csh -cf ′/var/qmail/rc &&′添加到啟動文件中去。
6. 安裝Qmail的Sendmail外殼:
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
7. 虛擬域與虛擬用戶。
將虛擬域名加入/var/qmail/
control/local和/var/qmail/control/rcpthosts 。然後在/var/
qmail/control/virtualdomains中加入your.virtual.domains:youracct。
這樣,所有發往
[email protected]的郵件都將以
[email protected]的形式發給youracct。
VmailMgr是一個Qmail的增強工具,它擴展了Qmail的口令驗證功能,使用戶可以通過POP3 及IMAP訪問自己的虛擬郵箱,我們將在以後的內容中重點介紹VmailMgr。
Qmail配置工作雖然較Sendmail來說已經大大簡化,但要想真正建立一個功能強大、運行穩定的郵件服務器,掌握其靈活的配置,認真閱讀其How-to和FAQ還是極有必要的。關於Dot-forward、郵件列表等其他非常有用的方法和使用技巧,限於篇幅就不再介紹了,建議大家參考軟件包中的有關文檔。
Qmail配置工作雖然較Sendmail來說已經大大簡化,但要想真正建立一個功能強大、運行穩定的郵件服務器,掌握其靈活的配置,認真閱讀其How-to和FAQ還是極有必要的。關於Dot-forward、郵件列表等其他非常有用的方法和使用技巧,限於篇幅就不再介紹了,建議大家參考軟件包中的有關文檔。