CentOS5 Qmail郵件系統(tǒng)
在CentOS5中安裝Qmail 商業(yè)郵件系統(tǒng)系統(tǒng)性能簡(jiǎn)介本文是筆者在業(yè)余時(shí)間學(xué)習(xí)和研究Qmail 系統(tǒng)時(shí)所做的筆記, 全部資料均來(lái)自Google 網(wǎng)上所搜索到公開(kāi)資源(Open Source),本文
在CentOS5中安裝Qmail 商業(yè)郵件系統(tǒng)
系統(tǒng)性能簡(jiǎn)介
本文是筆者在業(yè)余時(shí)間學(xué)習(xí)和研究Qmail 系統(tǒng)時(shí)所做的筆記, 全部資料均來(lái)自Google 網(wǎng)上所
搜索到公開(kāi)資源(Open Source),本文所涉及的所有需下載安裝的資源, 均為以GPL 授權(quán), 而且 可提供商業(yè)用途的免費(fèi)軟件. 本手冊(cè)遵守GPL 協(xié)議, 歡迎任何人士加入意見(jiàn)和修改.
全文按功能分為十四節(jié), 因?yàn)樘L(zhǎng)所以分為多篇來(lái)發(fā)表.
================================================================================
目錄指南
================================================================================
第一節(jié): 安裝前的準(zhǔn)備;
第二節(jié): 安裝Qmail 的基本系統(tǒng);
第三節(jié): 安裝協(xié)助Qmail 運(yùn)作的工具套件;
第四節(jié): 安裝vpopmail 虛擬域名管理系統(tǒng);
第五節(jié): 安裝病毒郵件防護(hù)系統(tǒng)ClamA V;
第六節(jié): 安裝垃圾郵件過(guò)濾系統(tǒng)SpamAssassin;
第七節(jié): 設(shè)置Qmail 的運(yùn)行腳本;
第八節(jié): 安裝Qmailadmin 和修正Domain Quota;
第九節(jié): 安裝Courier(authlib imap sqwebmail maildrop)和配置SSL 支持;
第十節(jié): 安裝SquirrelMail;
第11節(jié): 安裝Horde-Webmail;
第12節(jié): 安裝掃描程序qmail-scanner;
第13節(jié): 配置POP3的SSL 支持;
第14節(jié): 安裝Vqadmin 管理工具;
================================================================================
================================================================================
性能簡(jiǎn)介:
================================================================================
按照本安裝手冊(cè)部屬配置的Qmail 郵件系統(tǒng), 將會(huì)是一個(gè)具備完整功能的商業(yè)郵件系統(tǒng), 能滿足
大中小型企業(yè)的電子?**棖?, 也適合于專門(mén)提供電郵服務(wù)的ISP 網(wǎng)路公司. 它具備專業(yè)和商業(yè) 電郵系統(tǒng)的所有標(biāo)準(zhǔn)功能, 能保證向商業(yè)用戶提供安全, 穩(wěn)定和高效的電子商務(wù).
,1) 支持多虛擬域名的設(shè)置, 每臺(tái)主機(jī)可支持?jǐn)?shù)千乃至更多個(gè)虛擬域名;
2) 支持?jǐn)?shù)據(jù)庫(kù)來(lái)儲(chǔ)存管理信息, 用戶信息儲(chǔ)存在MySQL 數(shù)據(jù)庫(kù)中(無(wú)需Linux 系統(tǒng)賬號(hào)), 增強(qiáng)了
安全性和靈活性;
3) 支持賬戶數(shù)目限額和郵箱空間限額:
- 每個(gè)域名可設(shè)置最大空間容量和郵箱數(shù)目, 用戶可自行調(diào)整郵箱賬戶的空間大小; - 用戶具有管理功能, 包括增加和刪除帳號(hào), 設(shè)置別名, 修改密碼以及分配和調(diào)整空間; - 用戶可設(shè)置無(wú)限制數(shù)量的別名(包括轉(zhuǎn)發(fā));
4) 支持POP3協(xié)議接收電郵, 支持SSL 安全連接, 支持SMTP 認(rèn)證;
5) 支持多種Webmail 界面管理和收發(fā)電郵;
6) 自動(dòng)掃描進(jìn)出網(wǎng)關(guān)的電郵信息(包括接收, 發(fā)送和轉(zhuǎn)發(fā)), 可以設(shè)置使用QHPSI 來(lái)進(jìn)行高性能
掃描, 能有效阻止病毒電郵和過(guò)濾垃圾郵件;
================================================================================
================================================================================
系統(tǒng)管理方式
================================================================================
啟動(dòng)Qmail 系統(tǒng): qmailctl start
停止Qmail 系統(tǒng): qmailctl stop
Qmail 系統(tǒng)預(yù)設(shè)的腳本命令集: /var/qmail/bin/
TCP Server 的服務(wù)目錄路徑: /service(鏈接/var/qmail/supervise/)
添加, 刪除和管理電郵命令集: /home/vpopmail/bin/
一個(gè)查詢電郵域名的操作范例:
--------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
./vdominfo test.com #返回信息如下:
- - - - - - - - - - - - - - - - - - - - - - - - -
domain: test.com
uid: 809
gid: 809
,dir: /home/vpopmail/domains/test.com
users: 2
- - - - - - - - - - - - - - - - - - - - - - - - -
--------------------------------------------------------------------------------
一個(gè)添加電郵域名的操作范例:
--------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
./vadddomain test.com;
Please enter password for postmaster:
enter password again:
--------------------------------------------------------------------------------
一個(gè)添加電郵帳號(hào)的操作范例:
--------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
/vadduser [email]email@test.com[/email]
Please enter password for [email]email@test.com[/email]:
enter password again:
--------------------------------------------------------------------------------
一個(gè)刪除電郵帳號(hào)的操作范例:
--------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
./vdeluser [email]email@test.com[/email]
--------------------------------------------------------------------------------
一個(gè)刪除電郵域名的操作范例:
--------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
./vdeldomain test.com
--------------------------------------------------------------------------------
一個(gè)用來(lái)添加域名(支持限額) 腳本(/home/vpopmail/bin/adddomain.pl)的使用范例: --------------------------------------------------------------------------------
cd /home/vpopmail/bin/;
./adddomain-hung.pl;
Please input the new domain:test.com
Please enter password for postmaster:
enter password again:
domain testhung1.com has been create success
Please set the pop user quota for the domain:5
set quota success!
--------------------------------------------------------------------------------
,電郵域名及此域下的電郵賬戶在這里: /home/vpopmail/domains/
新收郵件目錄: /home/vpopmail/domains/yourdomain/youremailaccount/.Mkdir/new/ 已讀郵件目錄: /home/vpopmail/domains/yourdomain/youremailaccount/.Mkdir/cur/
================================================================================
================================================================================
用戶使用方法
================================================================================
超級(jí)用戶管理頁(yè)面: [url]http://xxx.xxx.xxx.xxx/cgi-bin/qmailadmin[/url]
[User Account] 請(qǐng)輸入 postmaster
[Domain Name] 請(qǐng)輸入 yourdomain
[Password] 請(qǐng)輸入 postmasterpassword
普通用戶管理頁(yè)面: [url]http://xxx.xxx.xxx.xxx/cgi-bin/qmailadmin[/url]
[User Account] 請(qǐng)輸入 youremailaccount
[Domain Name] 請(qǐng)輸入 yourdomain
[Password] 請(qǐng)輸入 yourpassword
用戶網(wǎng)頁(yè)電郵: [url]http://xxx.xxx.xxx.xxx/cgi-bin/sqwebmail[/url]
[User ID] 請(qǐng)輸入 youremail@yourdomain
[Password] 請(qǐng)輸入 yourpassword
用戶網(wǎng)頁(yè)電郵: [url]http://xxx.xxx.xxx.xxx/squirrelmail/[/url]
帳號(hào): youremail@yourdomain
密碼: yourpassword
用戶網(wǎng)頁(yè)電郵: [url]http://xxx.xxx.xxx.xxx/horde/[/url]
使用者名稱: youremail@yourdomain
密碼 : yourpassword
POP3客戶端設(shè)置:
主機(jī)名稱: xxx.xxx.xxx.xxx
帳戶名稱: youremailaccountyourdomain
郵箱密碼: yourpassword
================================================================================
,================================================================================
附加資源文件
================================================================================
qmail-install-online-src.rar 是本安裝中需要修改補(bǔ)丁的部分資源和執(zhí)行腳本;
qmail-install-online-menu-text.rar 是本安裝手冊(cè)的TEXT 文本;
qmail-install-online-src-all.tar.gz 是本人最近一次成功安裝的全部資源;
若有讀者需要上述資源, 歡迎聯(lián)絡(luò)本人:
QQ: 507649008
MSN: [email]chengkinhung@hotmail.com[/email]
SKYPE: chengkinhung
EMAIL: [email]chengkinhung@gmail.com[/email]
第一節(jié): 安裝前的準(zhǔn)備
檢查L(zhǎng)inux 系統(tǒng), 調(diào)整適合Qmail 系統(tǒng)運(yùn)行的環(huán)境, 配置用戶, 組權(quán)限和相關(guān)目錄;
1) 檢查系統(tǒng)的C 編譯環(huán)境;
--------------------------------------------------------------------------------
因?yàn)镼mail 源代碼的安裝配置檔中使用了名稱為"cc" 的C 編譯器, 所以, 如果你的系統(tǒng)中沒(méi)有
相應(yīng)的名為"cc" 的編譯命令, 那么就必須修改安裝配置檔conf-cc 和conf-ld, 確保安裝程序 能找到適合的C 編譯器.
在Linux 的命令提示行下, 敲入 cc 然后回車:
cc;
cc: no input files (注: 這是C 編譯器返回的反應(yīng)信息)
如果您得到上面類似"no input files"的反應(yīng), 這表明在您系統(tǒng)的缺省搜索訪問(wèn)路徑上有一 個(gè)(適合于本安裝) 可用的C 編譯器.
如果沒(méi)有類似反應(yīng), 請(qǐng)繼續(xù)測(cè)試執(zhí)行如下的C 編譯命令:
/usr/bin/cc;
/usr/bin/gcc;
/usr/local/bin/cc;
/usr/local/bin/gcc;
/usr/ccs/bin/cc;
如果上面的測(cè)試命令沒(méi)有一個(gè)能起作用, 請(qǐng)參考您的系統(tǒng)**之相關(guān)說(shuō)明文檔, 確認(rèn)您的系統(tǒng)
,中有可用的C 編譯器及其正確的路徑; 例如對(duì)于Red Hat Linux,可用如下RPM 命令來(lái)查詢:
rpm -qa | grep gcc;
rpm -qa | grep egcs;
如果上面的測(cè)試命令有任何一個(gè)能起作用, 說(shuō)明你的系統(tǒng)中有可用的C 編譯器, 但因?yàn)槁窂交?名稱不符合本安裝的要求, 因此在安裝Qmail 之前, 需要修正Qmail 的安裝資源中關(guān)于C 編譯器
的設(shè)置檔. 在Qmail 的源程序中, 關(guān)于C 編譯環(huán)境的配置參數(shù)包含在名為 conf-cc 和conf-ld 的 兩個(gè)文件中. 若要修改配置檔 conf-cc 和conf-ld, 請(qǐng)用編輯器打開(kāi)conf-cc 和conf-ld 文件, 然后置換文件中所有的 "cc" 為適合您系統(tǒng)中的C 編譯器名稱即可(通常是在第一行).
例如, 如果你的系統(tǒng)中可用的C 編譯器名為"gcc", 或者是必須帶路徑訪問(wèn)的"/usr/bin/gcc", 那么就請(qǐng)編輯 conf-cc 和conf-ld 兩個(gè)文件(這兩個(gè)文件在qmail-1.03的資源當(dāng)中, 后面將要 介紹如何下載這些資源), 將文件中的"cc" 改為"gcc" 或者"/usr/bin/gcc".
請(qǐng)注意: RedHat系統(tǒng)雖然使用gcc, 但通常會(huì)有一個(gè)連接(/usr/bin/cc)指向 /usr/bin/gcc, 這種情況下就不用修改配置檔了. (由此亦可見(jiàn), 有另一個(gè)比修改配置檔更簡(jiǎn)單的方法, 就是 建立一個(gè)名為 cc 的連接, 指向您系統(tǒng)中可用的C 編譯器即可).
--------------------------------------------------------------------------------
2) 檢查系統(tǒng)所需的必要組件(apache php mysql和named);
--------------------------------------------------------------------------------
#檢查系統(tǒng)組件:
rpm -qa | grep httpd;
rpm -qa | grep php;
rpm -qa | grep mysqld;
rpm -qa | grep bind; (這是檢查named, RedHat的Name Server預(yù)設(shè)是Bind)
請(qǐng)注意: 系統(tǒng)組件對(duì)保障Qmail 郵件系統(tǒng)的高效運(yùn)行至關(guān)重要,Qmail 的各種特性, 包括穩(wěn)定性
和安全性都依賴于這些組件與Linxu 操作系統(tǒng)的整合程度, 如果尚未安裝系統(tǒng)組件, 建議重新 安裝Linux 操作系統(tǒng), 讓操作系統(tǒng)的安裝程序自動(dòng)安裝和調(diào)整這些系統(tǒng)組件, 以達(dá)至最佳性能. --------------------------------------------------------------------------------
3) 保證系統(tǒng)能自動(dòng)啟動(dòng)如下三個(gè)組件(在項(xiàng)目前加入
號(hào));
--------------------------------------------------------------------------------
setup; ->System Service;
mysqld
,named
#手工啟動(dòng)相關(guān)服務(wù)的命令
service httpd start; 或者 service httpd restart;
service mysqld start; 或者 service mysqld restart;
service named start; 或者 service named restart;
--------------------------------------------------------------------------------
4) 關(guān)閉SELINUX;
--------------------------------------------------------------------------------
vi /etc/sysconfig/selinux;
#如果看到有此行: SELINUX=enforcing
#請(qǐng)改成如下: SELINUX=disabled
#SELINUX如有改動(dòng), 必須保存并重新啟動(dòng)Linux: reboot
請(qǐng)注意: 本系統(tǒng)要求關(guān)閉SELinux, 并非是因?yàn)镾ELinux 不支持Qmail 系列郵件系統(tǒng), 而是因?yàn)樵?/p>
SELinux 下配置完整功能的商業(yè)郵件服務(wù)相當(dāng)麻煩. 您如果有需要在郵件服務(wù)器中啟用SELinux,
請(qǐng)參考下列網(wǎng)站:
官方網(wǎng)站: http://www.nsa.gov/selinux/
維基**: http://zh.wikipedia.org/wiki/SELinux
維基英文: http://en.wikipedia.org/wiki/SELinux
IBM DW : http://www.ibm.com/developerworks/cn/linux/s-selinux/index.html
--------------------------------------------------------------------------------
5) 如果RedHat 系統(tǒng)安裝了預(yù)設(shè)的套件sendmail 或postfix, 請(qǐng)先刪除它們;
--------------------------------------------------------------------------------
rpm -e --nodeps sendmail;
rpm -e --nodeps postfix;
rpm -e --nodeps sendmail-cf;
刪除sendmail 的時(shí)候,也許會(huì)看到如下的警告信息(RPM刪除套件前會(huì)備份相關(guān)的設(shè)置檔) : warning: /var/log/mail/statistics saved as /var/log/mail/statistics.rpmsave
warning: /etc/mail/submit.cf saved as /etc/mail/submit.cf.rpmsave
說(shuō)明: 上述套件其實(shí)無(wú)需刪除, 但為保證Qmail 系統(tǒng)的穩(wěn)定運(yùn)行, 必須確認(rèn)已經(jīng)停止其服務(wù), 或 更改相應(yīng)的服務(wù)端口, 以及調(diào)整默認(rèn)的鏈接.
--------------------------------------------------------------------------------
6) 為了避免已經(jīng)存在的文件導(dǎo)致相關(guān)命令不能正確運(yùn)行, 請(qǐng)先刪除以下目錄;
--------------------------------------------------------------------------------
rm -rf /var/qmail;
rm -rf /var/log/qmail;
,rm -rf /service;
請(qǐng)注意: 這里假設(shè)以上目錄在您的系統(tǒng)中并未使用, 如果在您的系統(tǒng)已經(jīng)有其他程序應(yīng)用了 上述目錄, 請(qǐng)謹(jǐn)慎考慮刪除這些目錄可那能引起的后果;
--------------------------------------------------------------------------------
7) 需要預(yù)先檢查的用戶和組;
--------------------------------------------------------------------------------
運(yùn)行Qmail 系統(tǒng)需要在Linux 系統(tǒng)中添加兩個(gè)新組和7個(gè)新用戶, 在Qmail 的源程序中有一個(gè)名為
INSTALL.ids 的文件, 此文件包含了介紹如何在各種系統(tǒng)中添加用戶和組的命令. 如下是此文件
中開(kāi)頭部分所介紹的, 在Solaris,Linux 和FreeBSD 中添加用戶和組的命令:
vi INSTALL.ids;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
On some systems there are commands that make this easy. Solaris and
Linux:
# 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 qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails
FreeBSD 2.2:
# pw groupadd nofiles
# pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
# pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
# pw groupadd qmail
# pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
在本安裝手冊(cè)中所配置的Qmail 系統(tǒng)的運(yùn)行用戶和組, 與上述方式產(chǎn)生的用戶和組稍有不同, 因?yàn)槲覀冎付诉@些組和用戶的GID 和UID. 采用固定的用戶ID 來(lái)運(yùn)行Qmail 系統(tǒng)的目的, 是
,為了方便系統(tǒng)后續(xù)的升級(jí)和遷移等維護(hù)工作, 這對(duì)于需要眾多郵件主機(jī), 以及經(jīng)常需要在各 主機(jī)之間遷移郵箱用戶的系統(tǒng), 或者需要配置集群(例如雙機(jī)備份) 的系統(tǒng), 是非常值得采用 的方式.
如下是本安裝手冊(cè)中將會(huì)使用的GID 和UID:
GID: 801, 802
UID: 800,801,802,803,804,805,806
關(guān)于UID 和GID 的說(shuō)明:
Linux 系統(tǒng)使用GID 和UID 來(lái)識(shí)別用戶身份, 如果/etc/passwd檔中出現(xiàn)兩個(gè)以上重復(fù)ID, 那么 只有最后一個(gè)ID 才會(huì)是有效用戶. 所以, 如果您的系統(tǒng)中已經(jīng)存在這些GID 或UID 的話, 那么
安裝過(guò)程就可能無(wú)法正確產(chǎn)生相關(guān)的目錄和文件,Qmail 系統(tǒng)可能會(huì)因此而失敗. 因此, 建議 您在執(zhí)行安裝之前, 首先檢查一下您當(dāng)前的系統(tǒng)中的用戶和組, 是否已經(jīng)有別的用戶和組 正在使用上述GID 和UID. 如果發(fā)現(xiàn)系統(tǒng)已經(jīng)存在上述GID 和UID, 那么就要首先修改這些ID
數(shù)值, 以免產(chǎn)生重復(fù)ID.
為了保持系統(tǒng)一致性, 連續(xù)性和易遷移性, 建議您針對(duì)你的系統(tǒng)的特性, 選擇一個(gè)并不常用 的UID 和GID 來(lái)安裝Qmail. 盡量采用統(tǒng)一UID 和GID 來(lái)安裝您的所有Qmail 系統(tǒng), 可以避免系統(tǒng)
在后續(xù)的維護(hù)工作中修改系統(tǒng)的GID 和UID 的麻煩.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
參考資料: 如要修改操作系統(tǒng)現(xiàn)有用戶的GID 和UID, 請(qǐng)參照如下方法:
--------------------------------------------------------------------------------
vi /etc/passwd;
請(qǐng)記住您要修改的相關(guān)ID 和其對(duì)應(yīng)的用戶名, 改完GID 和UID 后, 記得要修改系統(tǒng)中所有此用戶
的文件和目綠, 可參照如下的FIND 命令來(lái)達(dá)到目的:
find / -uid [UID] –exec chown [USER] {} ;
find / -gid [GID] –exec chown [GROUP] {} ;
上述[UID]和[GID]為舊用戶的ID 數(shù)值, 而[USER]和[GROUP]則是此ID 相對(duì)應(yīng)的用戶名, 例如, 若
用戶htt 原先的UID 和GID 為801, 那么:
find / -uid 801 -exec chown htt {} ; (查找UID 為101的文件和目錄, 改為用戶htt 的新UID;)
,find / -gid 801 -exec chown .htt {} ; (查找GID 為101的文件和目錄, 改為組htt 的新GID;) --------------------------------------------------------------------------------
8) 建立Qmail 系統(tǒng)的運(yùn)行目錄, 設(shè)置系統(tǒng)的用戶和組以及相關(guān)權(quán)限;
--------------------------------------------------------------------------------
#逐步執(zhí)行如下系列命令, 產(chǎn)生運(yùn)行Qmail 系統(tǒng)所需的用戶, 組和相關(guān)目錄:
groupadd -g 801 qmail;
groupadd -g 802 nofiles;
mkdir -p /var/qmail; (這是qmail 運(yùn)行程序的目錄)
chown root.qmail /var/qmail;
useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -p'*' -u 800 alias;
useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 801 qmaild;
useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 802 qmaill;
useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 803 qmailp;
useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 804 qmailq;
useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 805 qmailr;
useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 806 qmails;
mkdir /var/log/qmail;
mkdir /var/log/qmail/qmail-send;
mkdir /var/log/qmail/qmail-smtpd;
mkdir /var/log/qmail/qmail-pop3d;
chown -R qmaill:root /var/log/qmail;
chmod -R 750 /var/log/qmail;
mkdir /var/qmail/supervise;
mkdir -p /var/qmail/supervise/qmail-smtpd/log;
mkdir -p /var/qmail/supervise/qmail-send/log;
mkdir -p /var/qmail/supervise/qmail-pop3d/log;
chmod t /var/qmail/supervise/qmail-smtpd;
chmod t /var/qmail/supervise/qmail-send;
chmod t /var/qmail/supervise/qmail-pop3d;
第二節(jié): 安裝Qmail 的基本系統(tǒng) (上)
================================================================================
1) 下載Qmail 主程序(請(qǐng)選擇a 或者b 方式):
================================================================================