建立分布式的Qmail郵件系統

2021-08-21 23:10:40 字數 4580 閱讀 1579

一. 設計目的

適應多使用者、大容量的郵件系統,易擴充套件,提供mail服務冗餘特性。

二. 配置環境

我的測試環境採用了三颱pc server,均採用redhat 6.2,openldap2.0.7和qmail-1.03 以及qmail-ldap,分別執行smtp/pop3服務,具體配置如下。

192.168.0.19 omni1.i100.com.cn 主smtp/pop3 server,dns mx記錄,郵件儲存主機,qmqp server

192.168.0.5 cocoon.i100.com.cn ldap server,郵件儲存主機

192.168.0.2 gw2.i100.com.cn 郵件儲存主機,qmqp server,同時是次smtp/pop3 server

在192.168.0.19的/data/vuser/目錄下,儲存johnny的郵件。

在192.168.0.5的/data/vuser/目錄下,儲存jacky的郵件。

在192.168.0.2的/var/qmail/vuser/目錄下,儲存denny的郵件。

以上配置在實踐中,可以配置成郵件儲存和ldap以及smtp server分別位於不同機器。

三. 軟體

openldap-2.0.7.tgz

qmail-1.03.tar.gz

qmail-ldap-1.03-20010301.patch

ucspi-tcp-0.84.tar.gz

編譯qmail的時候,記得把對cluster的支援編譯進去。edit the makefile to reflect your setup. you can change the following values: qldap-cluster

compiles the clustering code in. note: this doesn't mean clustering is on, it just means you _can_ turn on clustering. 預設qmail是支援cluster結構的。

四. ldap和qmail的安裝

關於ldap和qmail的安裝,在這裡,我給出我的ldap的ldif檔案:

dn: dc=i100, dc=com, dc=cn

objectclass: top

objectclass: orgnization

dn: cn=manager, dc=i100, dc=com, dc=cn

uid: manager

objectclass: qmailuser

mail: [email protected]

dn: cn=johnny, dc=i100, dc=com, dc=cn

cn: johnny

sn: johnny

objectclass: top

objectclass: person

objectclass: inetorgperson

objectclass: qmailuser

mail: [email protected]

mailhost: omni1.i100.com.cn

mailalternateaddress: [email protected]

mailmessagestore: /data/vuser/johnny/

mailquota: 51200

uid: johnny

userpass

word

: hsamdazcsdaoi

dn: cn=jacky, dc=i100, dc=com, dc=cn

cn: jacky

sn: jacky

objectclass: top

objectclass: person

objectclass: inetorgperson

objectclass: qmailuser

mail: [email protected]

mailhost: cocoon.i100.com.cn

mailalternateaddress: [email protected]

mailmessagestore: /data/vuser/jacky/

mailquota: 51200

uid: jacky

userpassword: hsamdazcsdaoi

dn: cn=denny, dc=i100, dc=com, dc=cn

cn: denny

sn: denny

objectclass: top

objectclass: person

objectclass: inetorgperson

objectclass: qmailuser

mail: [email protected]

mailhost: gw2.i100.com.cn

mailalternateaddress: [email protected]

mailmessagestore: /var/qmail/vuser/denny/

mailquota: 51200

uid: denny

userpassword: hsamdazcsdaoi

以上大家可以看到,我把三個使用者的郵件分別存到了不同的機器上。如果使用者多,可以把a-n和o-z開頭的使用者分別儲存到不同的機器上。

五. 基本系統配置

在三颱機器上分別install qmail with qmail-ldap patch.

需要特別配置的是/var/qmail/control下的相關檔案。

ldapuid ldapgid 這是可以讀寫使用者郵件目錄的系統使用者的uid和gid,在不同的機器上,會有不同的配置;確保此使用者有讀寫使用者郵件目錄的許可權。

ldaps

erver 此檔案指定ldap伺服器的ip位址;如果您想ldap有冗餘作用,在主ldap server down了的時候,啟用次ldap server,可以在該檔案中指定。

如:ldap1.i100.com.cn:389 ldap2.i100.com.cn:389 :)

ldapserver 此檔案內容是0或者1,表示是否啟動qmail cluster模式。我們當然要啟動了。

echo 1 > /var/qmail/control/ldapserver

六. qmail cluster工作原理

在允許cluster的郵件環境中,每台主機都可以處理該cluster宣告的域的郵件;當乙個mail到達主smtp server的時候,qmail查詢ldap server中有關該使用者的mailhost屬性,如果mailhost屬性指定的不是此server的/var/qmail/control/me中定義的的主機,此郵件被通過qmqp協議**到mailhost定義的主機上。

注:所有主機名必須是合法的dns主機名。

七. 詳細配置

在每台執行qmail的系統上執行qmail-qmqpd程序,才可實現郵件**。需要設定tcp.qmqp

檔案,此檔案中定義可信任的mailhost.

如: 192.168.0.:allow

:deny

然後用tcprules生成tcp.qmqp.cdb檔案。

執行 /usr/local/bin/tc

pserver -v -x /var/qmail/control/tcp.qmqp.cdb

-u 502 -g 501 0 628 /var/qmail/bin/qmail-qmqpd 2>&1   /var/qmail/bin/splogger qmqpd &

啟動qmail-qmqpd程序,監聽在628 port。

在客戶端,使用oe將pop3 server設定為主smtp/pop3 server位址(這裡是192.168.0.19),就可以收到儲存在192.168.0.5和192.168.0.2上使用者的郵件。 :)

八. 有關qmail-qmqpd server

以上實現了郵件的分布式儲存,但是隨著使用者的增加,主smtp/pop3 server會成為整個系統的瓶頸;而且一旦主smtp/pop3 server down機,整個系統將不再有效。

解決辦法是增加qmqpd server。

現在主smtp/pop3 server是192.168.0.19,我測試環境是把192.168.0.2同時也作為qmqpd server;由此,一旦192.168.0.19 down機,192.168.0.2仍然可以繼續提供smtp/pop3服務。

我簡單的採用手工down掉192.168.0.19,而把pop3和smtp server設定成192.168.0.2的方式,以證實此方法的可行性;並且192.168.0.2並不是此域宣告的mx記錄。

以上需要在兩台qmqpd server的/var/qmail/control目錄中,增加qmqpservers檔案,在其中每行寫入一台qmqpd server的ip位址。 :)

九. 其他

如果需要webmail功能,可以和sqwebmail進行整合。此方案不提供對pop3儲存的冗餘措施,如果可能,可以採用raid、nfs或者san的解決方案。

建立分布式的Qmail郵件系統

一.設計目的 適應多使用者 大容量的郵件系統,易擴充套件,提供mail服務冗餘特性。二.配置環境 我的測試環境採用了三颱pc server,均採用redhat 6.2,openldap2.0.7和qmail 1.03 以及qmail ldap,分別執行 tp pop3服務,具體配置如下。192.16...

安裝djbdns優化qmail郵件系統傳送郵件速度

qmail郵件系統在給具有多條mx的大型站點傳送郵件的時候會報下面的錯誤 delivery 55371 deferral cname lookup failed temporarily.4.4.3 在qmail的官方 上面了解到通過安裝djbdns可以加速dns解析速度,提高qmail郵件的傳送速度...

Qmail 郵件系統維護管理技術文件

從安裝到管理維護qmail郵件系統,已經積累了一點點維護經驗,分享一下自己總結的經驗,該文件會一直更新。1 qmail control檔案詳解 在平時維護和管理qmail郵件系統的時候,為了提高qmail的安全 能和處理郵件的速度,經常要修改control目錄下面的控制檔案,一般位於 var qma...