荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (人生不定式), 信区: Linux
标  题: Sendmail Program [转载](转寄)
发信站: BBS 荔园晨风站 (Sun Sep 24 08:43:39 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: hhuu (种太阳), 信区: FreeBSD
标  题: Sendmail Program [转载]
发信站: BBS 水木清华站 (Fri Sep 22 12:25:50 2000)

From freebsd.online.ha.cn

Email软件的选择

在Internet中最常使用的工具可能就是电子邮件了,因此,建立一个站点所必须的
一步工作就是构建一个安全、可靠的电子邮件系统。由于电子邮件是一种非常传统
的工具,因此有非常多的软件可以用来达到这个目的,这里面包括从古老的uucp邮
件到非常庞大的商业群件系统,如Lotus Domino Server,但使用最广泛的还是一
种自由软件──sendmail,它支撑了当前Internet邮件系统的主体。


Sendmail的不足

无论从使用的广泛程度,还是从代码的复杂程度来讲,sendmail都是一个非常优秀
的软件。如果使用它来构建网站的电子邮件系统,基本上不必费心,因为几乎所有
的Unix的缺省配置中都内置这个软件,只需要设置好操作系统,它就能立即运转起
来。然而,Internet用户的要求更为苛刻,纷纷指出sendmail中包含的各个不足之
处。

第一个重要的缺点是它的安全性较差,这是因为当其作者Eric Allman最初开始写
作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到大家的重视
。由于邮件系统需要处理的是外部发送来的各种各样的信息,甚至包含一些恶意数
据,然而sendmail在大多数系统中都是以root身份运行,一旦出现问题,就会对系
统安全造成严重影响。在这种情况下,要防止出现安全问题,仅仅依赖程序本身是
不可取的,应该从系统结构出发,使程序拥有的特殊权限限制到最小。

此外,也是由于其早期的Internet用户数量及邮件数量都相当小,Sendmail的系统
结构并不适合较大的负载,对于高负载的邮件系统,需要对Sendmail进行复杂的调
整。例如,通常情况下sendmail只启动一个进程顺序向外发送邮件,如果邮件较多
时就要花费相当长的时间。

使用Sendmail还会遇到的另一个问题是它的设置相当复杂,对于使用缺省设置来收
发电子邮件,问题并不存在。当管理员打算进行一些特殊设置,以便利用
Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达式。虽然
现在Sendmail使用了宏预处理程序m4使设置更易于理解一些,但是掌握Sendmail的
设置仍然是对系统管理员的一大挑战。


使用Qmail替代Sendmail

为了解决sendmail的安全问题,整个系统结构需要重新设计。基本的原则是将系统
划分为不同的模块,有负责接收外部邮件的,有管理缓冲目录中待发送的邮件队列
的,有将邮件发送到远程服务器或本地用户的。Qmail就是按照这个原则进行的设
计,它由多个不同功能的小程序组成,只有必要的程序才是setuid程序(即以
root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单一些
,因此就可以达到较高的安全性。

这种按照Unix思路的模块化设计方法也使得Qmail具备较高的性能,因为如果需要
,Qmail可以启动某个模块的多个实例来完成同一个任务,例如启动多个发送程序
同时向外发送邮件,这对于提供邮件列表服务的邮件系统是非常有益的。这种方式
也使得Qmail要占用较大的网络带宽,如果带宽有限,效果反而不好,但在当前网
络性能大幅度提高的情况下,这种方式是非常合适的。

Qmail还提供一些非常有用的特色来增强系统的可靠性,例如,它提出了Maildir格
式的邮件存储方式,这使得通过网络文件系统NFS存取邮件成为可能。此外,
Qmail还具备一些非常别致的特色,它不仅仅提供了与Sendmail兼容的方式来处理
转发、别名等能力,还可以用以Sendmail完全不同的方式来提供这些功能。从它的
编译安装方式、提供的扩展功能和源代码的风格,可以看出其作者Dan Bernstein
是一个极具个性化的程序员。正因为如此,对于Qmail的某些方面,有着一些争论
,例如有些人认为Qmail的安装设置并不易于理解,很容易让人糊涂,而另一些人
的看法则相反。基本上这是因为Qmail提供解决问题的方式,和Sendmail不大相同
的缘故,这样对那些不太熟悉Sendmail的邮件系统管理员,反而更容易接受Qmail
一些。


另一种替换软件:Postfix

Postfix同样也是采用了模块化的方式,但与Qmail不同的是,Postfix使用了一个
主控进程进行监控。Postfix在很多方面都考虑到了安全问题,它甚至不向root分
发电子邮件,以避免以root身份读写文件或启动外部程序。考虑到它的作者Wietse
 Venema曾编写了著名的安全软件TcpWrapper,并是SATAN程序的合作人员之一,
Postfix的安全性是非常值得信赖的。

同样,Postfix的性能也非常不错,甚至在Qmail作者自己进行的测试中也表明,
Postfix的性能和Qmail基本相当。但Postfix占用的内存要大一些,这主要是由于
Postfix和Qmail在系统结构上的差异造成的。

与Qmail不同,Postfix更着眼于作为Sendmail的直接替换,使用Postfix替换
Sendmail却相当简单,因为Postfix使用的很多文件和Sendmail一致,只需要在配
置文件中指明原有Sendmail配置文件的位置就可以了,Postfix甚至还提供了
sendmail和mailq程序,以保持兼容性。基本上,可以直接从Sendmail转换为使用
Postfix,而不需要额外的设置。Postfix提供的安装配置方式也相当简单,它使用
中心化的配置文件和非常易理解的配置指令。

Postfix提供的一些强大的功能主要在于多种数据库表查询方式,例如它支持DB、
DBM、passwd文件、正则表达式、MySQL数据库以及LDAP方式的查询,用于支持系统
级的别名、虚拟主机等。虽然在Qmail中也能支持这些功能,但没有象Postfix那样
统一、简洁。此外,更改Postfix的设置之后,也不需要重新启动整个系统,只需
要使用postfix reload就能完全刷新配置,这也避免了丢失邮件的可能性。


事实上,除了Qmail和Postfix之外,还有很多种邮件系统,例如Smail、Exim等,
然而毫无疑问Qmail和Postfix是其中最优秀的,也是Sendmail最有力的竞争者。此
外,还有一些商业邮件服务器产品,但一般情况下,购买商业邮件服务器软件大部
分是冲着其提供的服务或者是附加功能来的,例如群件产品通常带有很多额外功能
用于办公环境等。

至于在Sendmail、Postfix和Qmail之间进行选择,基本上依赖于用户自己的偏好。
有些人喜欢Qmail提供的复杂特色,而有的人希望对Sendmail的替换能简单一些,
也有人不打算更换,而坚持使用Sendmail的最新版本。对于一个熟悉Unix系统而又
愿意改善邮件系统性能和安全性的管理员,应该转换为使用Postfix或Qmail,除非
对Sendmail非常熟悉而保持了特殊的感情。在Postfix和Qmail之间,它们各自有一
批忠心拥护者,选择哪个都是可行的。基本上,Postfix作为一个较新的软件,其
影响力正在增加,有些原本使用Qmail的使用者,也开始转向Postfix,这可能是因
为Postfix的风格更通俗的原因。

--
  行列中        作不朽文章
  谈笑间        论古今英雄
  痴狂里        诉红尘情爱
  来去时        不枉一生风流
                        ---------  bbs.ntu.edu.tw


※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.160.6]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店