邮件服务器系统的选型考虑(三)
Qmail邮件服务器系统及选型考虑为了解决Sendmail的安全问题,设计了Qmail系统。Qmail设计的基本原则是将系统划分为不同的模块,有负责接收外部邮件的,有管理缓冲目录中待发送的邮件队列的,有将邮件发送到远程服务器或本地用户的。Qmail由多个不同功能的小程序组成,只有必要的程序才是setuid程序(以root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单一些,因此就可以达到较高的安全性。目前Qmail的最新版本为1.05,可以到 http://www.qmail.org/top.html下载。
这种按照UNIX思路的模块化设计方法也使得Qmail具备较高的性能,因为如果需要, Qmail可以启动某个模块的多个实例来完成同一个任务,例如启动多个发送程序同时向外发送邮件,这对于提供邮件列表服务的邮件系统是非常有益的。这种方式也使得Qmail要占用较大的网络带宽,如果带宽有限,效果反而不好,但在当前网络性能大幅度提高的情况下,这种方式是非常合适的。
Qmail还提供一些非常有用的特色来增强系统的可靠性,例如,它提出了Maildir格式的邮件存储方式,这使得通过网络文件系统NFS存取邮件成为可能。此外,Qmail还具备一些非常别致的特色,它不仅仅提供了与Sendmail兼容的方式来处理转发、别名等能力,还可以用以Sendmail完全不同的方式来提供这些功能。
1.Qmail的主要特点
Qmail是一个安全、可靠、简易的信息传送代理,主要应用于UNIX和Linux系统,目前最新版本为1.05。它的主要特点如下。
(1)安全性高
Qmail的开发者认为,安全性并不是一个目标,而是根本的标准,所以它相对Sendmail 来说专门在安全性方面作了重大改进。对使用者而言,邮件的传送关系重大。因为邮递服务不能够关掉,故必须完全安全。在其中还有一个小插曲,为了验~/E Qmail的安全性,Qmail 的支持者甚至出资1 000美圆悬赏寻找Qmail的安全漏洞,一年以后,该奖金没有被领取,而被捐献给自由软件基金会。目前,Qmail的作者也出资500美圆来寻求Qmail的安全漏洞。
(2)可靠性好
Qmail米用的straight-paper-path技术保证每一个系统接收了的邮件都不会遗失。此外, Qmail亦可选择性地支持maildir-一个新式、极为可靠的用户邮箱格式。maildir不同于 mbox档案格式和mh数据夹,即使在寄递中出现系统性事故,档案亦不会损坏。再者,不单使用者能够安全地通过NF S阅读邮件,而且不限数量的NF S端亦能够同时寄递邮件至该邮箱。
为了保证可靠性,Qmail只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。
(3)速度快
Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一台48 6上一天能处理超过1 O万封邮件,支持并行投递。Qmail支持邮件的并行投递,同时可以投递大约20封邮件。目前邮件投递的瓶颈在于SMTP协议,通过STMP向另外一台因特网主机投递一封电子邮件大约需要花费1 O多秒钟。Qmail的作者提出了QMTP(Quick Mail Transfer Protoc01)来加速邮件的投递,并且在Qmail中得到支持。Qmail的设计目标是在一台1 6MB的机器上最终达到每天可以投递大约百万级数目的邮件。在一部运行BSD/OS的Pentium上面,Omail 每天可以轻易处~200000区域邮件。虽然远距离寄递受到固有的限制,如DNS及SMTP所影响,但Qmail的起始设定为同时处理20个邮递动作,所以能够快速地处理邮寄列表。
(4)效率高
Qmail比其他因特网络的MTA都精简得多。原因是: (1)其他MTA都有独立的程序负责邮件转寄、别名跟邮寄列表的工作;而Qmail则采用一个简单的程序让使用者自行管理他们的邮寄列表。(2)其他MTA提供一系列的送递模式:由fast+unsafe以至slow+queued;而Qmail 系统只有一个送递模式-fast+queued,每当Queue(队列)中有新邮件抵达,便会启动qmail-send。 (3)其他MTA包含了一个特殊版本的inetd,负责监视平均的系统负荷;而Qmail设计上已经限制了机器的负荷,故此Qmail-smtpd能够在系统下的inetd进程下安全地运作。
2.Qmail与Sendmail的比较
尽管说Qmail是用来替代Sendmail的,但Qmail并没有绝对的优势。
(1)Qmail安全性更高
Qmail的主要优势就是体现在安全性和效率方面。Qmail在设计实现中特别考虑了安全问题。特别是如果你需要一个快速的解决方案,如一个安全的邮件网关。Qmail和Sendmail的配置文件完全不同。而对于Qmail,其有自己的配置文件,配置目录中包含了3 O个左右不同的文件,各个文件实现对不同部分的配置(如虚拟域或虚拟主机等)。
(2)Sendmail功能更强
Qmail要比Sendmail小很多,缺乏一些现今邮件服务器所具有的特色功能。如不像 Sendmail那样对邮件发送者的域名进行验证;自身不提供对RBL(Realtime Blackhole List,实时黑名单)的支持,而需要add-on(插件)来实现(Sendmail支持RBL)。
还有,Qmail不能拒绝接收目的接收人不存在的信件,而是先将邮件接收下来,然后返回查无此用户的的邮件。
(3)多用户发送机制不同
Qmail最大的问题就出在发送邮件给多个接收者的处理上。若发送一个很大的邮件给同一个域中的多个用户,Sendmail将只向目的邮件服务器发送一个邮件拷贝;而Qmail将并行地连接多次,每次都发送一个拷贝给一个用户。若用户日常要发送大邮件给多个用户,使用Qmail将浪费很多带宽。Sendmail优化、节省了带宽资源,而Qmail优化节省时间。若用户系统有很好的带宽,Qmail将具有更好的性能,而如果用户系统的带宽资源有限,并且要发送很多邮件列表信息,则Sendmail效率更高一些。Qmail不支持.forward文件(.forward 在很多情况下对用户很有用处);不使用/var/sp001/mail路径,而是将邮件存放在用户home 目录。
(4)Qmail商业支持少
Qmail的add-ons比Sendmail要少一些。一般来说对于经验稍微少一些的管理员,选择 Qmail相对要好一些。Qmail要简单一些,而且其特色功能能满足一般用户的需求。Sendmail 类似于office套件,80%的功能往往都不被使用,这就使Qmail在一些场合可能被更受欢迎。 Qmail具有一些Sendmail所没有的更流行和实用的特色功能,如内置的POP3协议支持;支持如主机或用户的伪装、虚拟域等。Qmail的简单性也使配置相对容易一些。
Sendmail有很多的商业支持,而且由于大量的用户群,在因特网上有大量的潜在技术支持。而Qmail只有很有限的技术支持。
(5)Qmail不支持主流标准
Qmail还具有一些其他的缺憾。如它不是完全遵从标准,不支持DSN,因为作者总是认为DSN是一个即将消亡的技术,Qmail采用VERP(Variable Envelope Return Path,可变信封返回路径)技术来替代,而又不像DSN依赖于其他主机的支持。Qmail另外一个问题是其不遵从支持7bit系统标准,而每次都发送8bit。若邮件接收一方不能处理这种情况,就会出现邮件乱码的情况。
(6)Qmail用户管理更加灵活
Qmail的一个重要优点是每个用户都可以创建邮件列表,而无须具有根用户的权限,如用户COCO可以创建名为coco-slashdot、coco-linux、coco-chickens的邮件列表。为了提供更好的功能,有一个叫Ezmlm(Easy Mailing List Maker,容易的邮件列表)的工具可以支持自动注册和注销、索引等Maj ordomo所具有的各种功能,但是都是CLI驱动的,只需要编辑很少的文件。
(7)Qmail效率高,酉己置快
Qmail非常适合在小型系统下工作,一般只支持较少的用户或用来管理邮件列表。Qmail 速度快,并且简单,是当你希望安全且容易配置的最佳的选择。通常Qmail可以在2个巧、时内搞定酉己置,而Sendmail可能在两天内都搞不定。
(8)Qmail安装不易理解,维护困难
还有人认为Qmail的安装设置并不易于理解,很容易让人糊涂,而另一些人的看法则相反。基本上这是因为Qmail提供解决问题的方式,和Sendmail不大相同的缘故,这样对那些不太熟悉Sendmail的邮件系统管理员,反而更容易接受Qmail。另外,Qmail的配置方式和 Sendmail不一致,因此不容易维护。而且Qmail的版权许可证含义非常模糊,甚至没有和软件一起发布。
综上所述,可以得出Qmail的主要优势就是安全性高,程序小,执行效率高,源代码相对于Sendmail来说要更加容易理解。相对上节介绍的Sendmail来说,不足也是相当多的,如 Qmail不支持.forward文件;不使用/var/spool/mail路径,而是将邮件存放在用户home目录。在多用户频繁邮件发送时,极大地消耗网络带宽;与主流标准不兼容,如DNS和7bit系统:嬖半支持少,发展前景不明朗;对于初次使用的人来说,邮件系统的安装与维护都比较困难,凶为它与Sendmail有很大不同;用户数和支持文档都不如Sendmail多。
基于以上横向比较可以得出,如果用户原来一直使用Sendmail系统,并且在管理上没有出现什么大的问题,建议不要升级到Qmail;真的如果出现了问题,想升级到Qmail系统,婴fJ一定要事先对Qmail的一些主要不足有足够的心理准备。它尽管在执行效率和安全性方面比 Sendmail要好许多,但问题仍不少。最好的方法还是直接升级到下节将要介绍的Postfix 邮件服务器系统。
友情提示:如果您对北大青鸟的学费、课程、就业有疑问,可以 和我们沟通!