适应多用户、大容量的邮件系统,易扩展,提供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: johnnys@cn.solution100.com
dn: cn=johnny, dc=i100, dc=com, dc=cn
cn: johnny
sn: johnny
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: johnny@i100.com.cn
mailhost: omni1.i100.com.cn
mailalternateaddress: johnnys@i100.com.cn
mailmessagestore: /data/vuser/johnny/
mailquota: 51200
uid: johnny
userpassword: hSAMdaZcsdAOI
dn: cn=jacky, dc=i100, dc=com, dc=cn
cn: jacky
sn: jacky
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: jacky@i100.com.cn
mailhost: cocoon.i100.com.cn
mailalternateaddress: jacky@i100.com.cn
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: denny@i100.com.cn
mailhost: gw2.i100.com.cn
mailalternateaddress: denny@i100.com.cn
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,在不同的机器上,会有不同的配置;确保此用户有读写用户邮件目
录的权限。
ldapserver 此文件指定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/tcpserver -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的解决方案。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |