版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux邮件服务器软件比较几年以前,Linux环境下可以选择 的可以免费邮件服务器软件只有Sendmail,但是由于Sendmail 的缺陷,一些开发 者先后开发了若干种其他的邮件 服务器软件。当前,运行在Linux环境下免费的 邮 件服务器,或者称为 MTA(Mail Transfer Agent)有若干种选择,比较常见的有 Sendmail、Qmail、Postfix、 exim及Zmailer等等。本文希望通过对几种影响相对来说比较大的主流Linux环境下的MTA勺特点进行阐述,并对其优缺点分析比较,使用户在选择Linux环境下的免费MTA寸有一个选择的依据。一、PostfixPost
2、fix是一个由旧M资助下由Wietse Venema负责开发的自 由软件工程的一个产物,其目的是 为用户提供除sendmail之外的邮件服务器选择。Postfix力图做到快速、易于管理、提供尽可能的 安全性,同时尽量做到和sendmail邮件服务器保持兼容性以满足用户的使用习惯。起初 ,Postfix 是以VMailer这个名字发布的,后来由于商标上的原因改名为Postfix 。1 .主要设计目标Postfix工程的目标是实现一个邮件服务器,提供给用户除sendmail以外的选 择。其设计目标包括:性能:Postfix要比同类的服务器产品速度快三倍以上,一个安装 Postfix 的台式机一天可
3、以收发百万封信件。Postfix设计中采用了 web服务器的 的设计技巧以减少进程创建开销,并且采用了其 他的一些文件访问优化技术以提高效率,但同时保证了软件的可靠性。兼容性:Posfix 设计时考虑了保持Sendmail的兼容性问题,以使移植变的更加容易。Postfix 支持/var/spool/mail,/etc/aliases, NIS,及-/.forward 等文件。然而 Postfix 为保证管理的简单性,所以没有支持配置文件 sendmail.cf 。安全和健1性:Posfix 设计上实现了程序在过量负载情况下仍然保证程 序的可靠性。当出现本 地文件系统没有可用空间或没有可用内存的
4、情况时,Postfix 就会自动放弃,而不是重试使情况变的更糟。灵活性:Pos情x 结构上由十多个小的子模块组成,每个子模块完成特定的任务,如通过SMTP*这接收一个消息,发送一个消息,本地传递一个消息,重写一个地址等等。当出现特定的需求时,可以用新版本的模块来替代老的模块,而不需要更新整个程序。而且它也很容易实现关闭某个功能。安全性:Pos情x使用多层防护措施防范攻击者来保护本地系统,几乎每 一个Postfix守护进程 都能运行在固定低权限的chroot之下,在网络和安全敏感 之本地投递程序之间没有直接的路径一一 个攻击者必须首先突破若干个其他的程序,才有可能访问本地系统。Postfix甚至
5、不绝对信任自己的队列文件或IPC消息 中的内容以防止被欺骗。Postfix在输出发送者提供的消息之前会首先过滤消息。而且Postfix程序没有set-uid 。2 .Postfix 的一些特点支持多传输域:Sendmai支持在Internet, DECnet, X.400 及UUC叱问转发消息。Postfix 则灵活的设计为无须虚拟域(vistualdomai)或别名来实现这种转发。但是在早期的发布里仅仅支持STMP和有限度 地支持UUCP但对于我国用户来说,多传输域的支持没有什么意义。虚拟域:在大多数通用情况下,增加对一个虚拟域的支持仅仅需要改变一个Postfix 查找信息表。其他的邮件服务
6、器则通常需要多个级别的别名或重定向来获得这样的效果。UCE空制(UCE,unsolicited commercial email): Postfix能限制哪个主机允许通过自身转发邮件,并且 支持限定什么邮件允许接进。Postfix实现通常的控制功能:黑名单列表、RBL查 找、HELO/ 发送者DNSK实。基于内容过滤当前没有实现。表查看:Postfix没有实现地址重写语言,而是使用了一种扩展的表查看来实现地址重写功能。表可以是本地dbm或db文件等格式。3 .Postfix 体系结才及与Sendmail的比较Postfix 是基吁二半驻留,互操作的进程的体系结构,每个进程完成特定的任务,没有任
7、何特定的 进程衍生关系(父子关系)。而且,独立的进程来完成不同的功能相对于“单块”程序具有更好的隔离性。止匕外,这种实现方式具有这样的优点:每个服务如地址重写等都能被任何一个Pos情x部件所使用,无须进程创建等开销,而仅仅需要重写一个地址,当然并不是只有postfix采用这种方式。Postfix是按照这种方式实现的:一个驻留主服务器根据命令运行 Postfix守护进程,守护进程 完成发送或接收网 络邮件消息,在本地递交邮件等等功能。守护进程的数目由配置参数来决定的,并且根据配置决定守护进程运行的次数(re-used times),当空闲时间到达配置参数指定的限度时,自动 消亡。这种方法 明显地
8、降低了进程创建开销,但是单个进程之间仍然保持了良好的隔离性。Postfix的设计目标就是成为Sendmail的替代者。由于这个原因,Postfix系统的很多部分,如 本地投递程序等,可以很容易地通过编辑修改类似inetd的配置文件来替代。Postfix的核心是由十多个半驻留 程序实现的。为了保证机密性的原因,这些 Postfix进程之间 通过Unix的socket或受保护的目录之下的FIFO进行通信。即使使用这种方法来保证机密性, Postfix进程并不盲目信任其通过这种方式接收到的数据。Postfix进程之间传递的数据量是 有限制的。在很多情况下,Postfix进程之间交换的数据信息 只有队
9、列文件名和 接收者列表,或某些状态信息。一旦一个邮件消息被保存进入文件,具将在其中 保 存到被一个邮件投递程序读出。Postfix采用一些通常的措施来避免丢失信息:在收到确认以前通过调用 flush和fsync()保存 所有的数据到磁盘中。检查所有的系统调用的返回结果来避免错误状况。大多数构建邮件服务器者都会选择 sendmail ,公平的来讲sendmail是一个不错的MTA(Mail Transfer Agent),最初开发时Eric Allman 的设计考虑主要放在了邮件传递的成功性。不幸的是,Sendmai开发时没有太多的考虑Internet环境下可能遇到的安全性问题。Sendmail
10、在大多数系统上 只能以根用户身份运行,这就意味着任何漏 洞都可能导致非常严重的后果,除了这些问题之外,在高 负载的情况Sendmail运行情况不是很好。4 .安全Postfix则并一定要以root的身份运行,而只需要一个主(master)程序以root身份运行,其生 成进程来处理 接入、发出及本地邮件投递工作。通过使用一系列模块部件,每个任务由一个单独的程序来运行(这样使审计变的容易一些)。例如发出邮件被卸载到一个队列目 录,在这里“pcikup”程 序取到该邮件然后将邮件传递给“ cleanup”程序,其再将邮件传递给“trivial - rewrite ”,其负责 处理邮件头,最后若邮件目
11、的是别 的系统则将邮件传递给“ smtp”程序。而且相对于Sendmail来说Postfix也更容易设置chrooted环境。只要简单地通过编辑 master.cf( 一般位于/etc/posfix内)文件即可实现,并且Postfix将运行chrooted,以限定在其定义的队列目录之下(通常位于/var/spool/postfix) ,同样可以在master.cf中对Postfix的单一模块设置进程限制。用户可以限 制Posfix以哪个用户的身份运行,一般来说是以“posfix ”用户(概念上该用户和Apache的nobody类似)运行,该用户可以访问 特定的队列目录。Postfix其他的主要
12、优点是起配置文件的清晰 易懂性。5 .与Sendmail的比较如sendmail之类的邮件系统 是按照一个单块”的结构设计实现的,该“单块”程序实现所有的功能。当然这种结构有利于在系统的不同部分之间共享数据。但是这种结构容易出现一些致命的错误。而如qmail的邮件系统上使用一种分层次的结构,按照固定得顺序运行不同功能的子模块进程,执行完毕之后就将其释放。这种方法有良好 的“绝缘”性,但是增加了进程创建开销和进程间通信开 销。但是通过合理的规 划子模块进程的运行顺序可以将开销保持在可以接受的范围内。使用其他的MTAtAt Sendmail是一件非常麻烦的事情,用户往往又要花大量的时间去熟悉新的
13、MTA勺配置和使用。而使用Postfix ,你可以利用很多以有的配置文件。如(access, aliases,virtusertable等等),只需要简单的在master.cf中定义一下即可。止匕外,Postfix在行为上也很象Sendmail,用户可以使用sendmail命令 来启动Postfix 。当然,使用一个软件来替代另外一个软件需要解决特定的问题。部分原因是因为Postfix 的安全特性,在配置Postfix时可能会遇到一些问题。最典型的问题是向root用户发送邮件。Postfix 一般 不提高自身的权限(向root用户发送邮件所必须 的)来投递邮件。用户需要在别名文件中为root定
14、义 别名,如:root: someuser。这同样会对若干个邮件列表模块发生影响,特别是 SmartList 。一般 来说实现邮件列表最好使用 Majordomo,它易于配置。Sendmail 一个很突出的问题就是可扩展性和性能问题。例如用户若希望每天重新启动Sendmail来实现自动更新配置 文件(如为虚拟主机重定向邮件)就会出现问题。Sendmail生成新的进程来处理 发送和接收邮件,这些进程会一直存在直到传输结束,之后Sendmail才能退出,这样你的脚本程序将不能正确的重起Sendmail。而对于Posfix,用户则只需要发 出命令posfix reload即可,Posfix 将会重新
15、加载其配置文件。另外,对于有数以万计的用户的邮件服务器来说,使用文件来存储如匹配用户发 出邮件地址(例如bob发出的信的发信人修改为)。对于大量用 户来讲,该文件就会变的很巨大, 从而影响系统的运行效率。而Pos情x则可以和一个数据库后台集成起来(当前只支持MySQL)e存放 其配置信息,数据库方式 要比文件方式在可扩展性方面强大很多。遵从IBM的开放源代码版权许可证,用户可以自由地分发该软件,进行二次开发。其唯一的限制 就是必须将对Postfix 做的修改返回给旧M公司。因为旧M资助了 Wietse的开发。6 .与Qmail的比较Qmail的缺点就是配置方式和
16、Sendmail不一致,不容易维护。而且Qmail的版权许可证含义非常 模糊,甚至没 有和软件一起发布。应用作者的话:若你希望分发自己修改版本的 Qmail,你必须得到 我的许可。、QmailQmail是有Dan Bernstein开发的可以自由 上11的MTA其第一个beta版本0.70.7发布于1996 年1月24日,1997年2月发布了 1.0版,当前欣禾足1.03。I.Qmail的特点安全性:为了验证Qmail的安全性,Qmail的支持者甚至出资$1000悬赏寻找Qmail的安全漏洞, 一年以后,该奖金没有被领取,而被捐献给自由软件基金会 。目前,Qmail的作者也出资$500来寻求
17、Qmail的安全漏洞。速度:Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一台486 一天上能处理超过10万封邮件,起支持并行投递。Qmail支持邮件的并行投 递,同时可以投递大约20封邮件。目前 邮件投递的瓶颈在于SMTP逑L通过STMP向另外一台互联网主机投递一封电子邮件大约需要花费 10 多秒钟。Qmail的作者 提出了 QMTP(QuickMail Transfer Protocol)来加速邮件的投递,并且在Qmail 中得到支持。Qmail的设计目标是在一台16M的机器上最终达到每天可以投递大约百万级数目的 邮 件。可靠性:为了保证可靠性,Qmail只有在邮件被正确地写
18、入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。特别简单的虚拟域管理:甚至有一个第三方开发的称为 vchkpw的add-on来支持虚 拟POFM。使 用这个软件包,POP刈户不需要具有系统白正式帐户。使用ezmlm支持用户自控制的邮件列表功能。邮件用户和系统帐户隔离,为用户提供邮件帐户不需要为其设置系统帐户,从而增加了安全性。7 .Sendmail VS Qmail首先:sendmail是 发展历史悠久的MTA当前的版本是8.10.2。当然,Sendmail在可移植性、 稳定性及确保没有bug方面有一定的保证。但是Interne
19、t上有很多帖子都是关于如果 攻击Sendmail, 这对于管理员来说是一个噩梦。Sendmail在发展过程中产生了一批经验丰富的 Sendmail管理员,并 且 Sendmail 有大量完整的文档资料,除了 Sendmail 的宝典:OReillys sendmail book written by Bryan Costales with Eric Allman 以外,网络上有大量的tutorial 、FACO其他的资源。这些大量 的文档对于很好的利用Sendmail的各种特色功能是非常重要的。但是Sendmai当前来说是一个成熟 的MTA当然,Sendmail具有一些缺点,其特色功 能过多而
20、导致配置文件的复杂性。当然,通过使用m4宏使配置文件的生成变的容 易很多。但是,要掌握所有的配置选项是一个很不容易的事情。Sendmail在过去的版本中出现过很多安全漏洞,所以使管理员不得不赶快升级版本。而且 Sendmail的流行性 也使其成为攻击的目标,这有好处也有坏处:这意味着安全漏洞可以很快地被发现,但是同样使Sendmail更加稳定和安全。另外一个问题是 Sendmail 一般缺省配置都是具有最小的安全特性,从而 使Sendmail往往容易被攻 击。如果使用Sendmail,应该确保明白每个打开的选项的含义和影响。一 旦你理 解了 Sendmail的工作原理,就Sendmail的安装
21、和维护就变的非常容易了。通过 Sendmail的 配置文件,用户实现完成一切可以想象得到的需求。Qmail是一个选择, 其在设计实现中特别考虑了安全问题。如果你需要一个快速的解决方案如, 一个 安全的邮件网关,则Qmail是一个很好的选择。Qmail和Sendmail的配置文件完全 不同。而对 于Qmail,具有自己的配置文件,配置目录中包含了 5-30个不同的文 件,各个文件实现对不同部分 的配置(如虚拟域或虚拟主机等)。这些配置说明都 在man中有很好的文档,但是Qmail的代码结构不 是很好。Qmail要比Sendmail小很多,其缺 乏一些现今邮件服务器所具有的特色功能。如不象Send
22、mail,qmail不对邮件信 封的发送者的域名进行验证,以确保域名的正确性。自身不提供对RBL的支持,而 需要add-on来实现。,而Sendmail支持RBL同样Qmail不能拒绝接收目的接收 人不存在信件,而 是先将邮件接收下来,然后返回查无此用户的的邮件。Qmail最大的问题就出在发送邮件给多个接收者的处理上。若发送一个很大的邮件给同一个域中的多个用户,Sendmail将只向目的邮件服务器发送一个邮件拷贝。而Qmail将并行地连接多次,每次都发送一个拷贝给一个用户。若用户日常要发送 大邮件给多个用户,使用Qmail将浪费很多带宽。可以这么认为:Sendmail优化 节省带宽资源,Qma
23、il 优化节省时间。若用户系统有很好的带宽,Qmail将具有更好的性能,而如果用户系统的带宽资源有限,并且要发送很多邮件列表信息,则 Sendmail效率更高一些。Qmail不支持.forward(.forward 在 很多情况下对用户很 有用处);不使用/var/spool/mail ,而是将邮件存放在用户home目录。下面是 一些使用Qmail不容易完成的工作,要使用 Qmail完成这些工作,可能需要用户自己 动手实现或者 使用第三方提供的不够可靠的模块。Qmail的源代码相对于Sendmail来说要更加容易理解,这对于希望深入到内部了解MTAM制的人员来说是一个优点。Qmail在安全性方
24、面也要稳定一些。Qmail有很好的技术支持,但是没有象Sendmail那样被广泛地应用和大量 的管理员用户群。Qmail的安装不象Sendmail那样自动化,需要 手工步骤。而且Qmail的文档不如Sendmail那样完整和丰富。Qmail的add-ons比Sendmail要少一些。一般来说对于 经验稍微少一些的管理员,选择 Qmail 相对要好一些。Qmail要简单一些,而且其特色功能能满足一般用户的需求。Sendmail类似于ofice 套件,80%勺功能往往都不被使用。这就使 Qmail在一些场合可能被更受欢迎一些,具具有一些Sendmail所没有的更流行和实用的特色功能, 如:Qmai
25、l具有内置的pop3支持。Qmail同样支持如主 机或用户的伪装、虚拟域等等。Qmail的简单性也使配置相对容易一些。Qmail被认为相对于Sendmail更加安全和高效,运行Qmail的一台pentium机器一天可以处理大 约200,0000条消息。Qmail相对于其他的MTAg简单很多,主要体现在:(1)其他的MTA勺邮件转发、邮件别名和邮件列表都是采用相互独立的机制,而 qmail采用一 种简单的转发(forwarding)机制来允许用户处理自己的邮件列表(2)其他的MT/W提供快速而不安全的方式及慢的队列方式的邮件投递机制;而qmail发送是由新邮件的出现而触发的,所以其投递只有一种模
26、式:快速的队列方式(3)其他的MTAS际上包括一个特定版本的inetd来监控MTA勺平均负载,而qmail设计了内 部机制来限制系统负载,所以qmail-smtpd能安全地从系统的inet来运行sendmail有很多的商业 支持,而且由于大量的用户群,在互联网上有大量的潜在技术支持。而Qmail只有很有限的技术支持。 有家公司 提供对Qmail的支持,该公司同样提供了免费的 add-ons ,包括一个基于web 的管理工具-QmailAdmin及一个通过vpopmail的对虚拟域的支持,甚至具有一个基于 web的客户借接 口一 SqWebMaiLQmail还具有一些其他的缺憾。如它不是完全遵从
27、标准,它不支持 DSN作者认为DS&一个即 将消亡的技术,而Qmail的VER可以完成同样的工作,而又不象 DSNR赖于其他主机的支持。Qmail 另外一个问题是其不遵从支持7bit系统标准,而每次都发送8bit。若邮件接收一方不能处理这种情 况,就会出现邮件乱码的情况。从安全性来讲,Sendmail要比Qmail差一些,Sendmail在发展中出现过很多很著名的安全漏洞; 而Qmail相对要 短小精悍,但是仍然提供了基本的STM皿能。而Qmail的代码注释要少一些。Qmail的一个很好的特色是其支持一种可选的基于目录的邮件存储格式,而不是 使用一个很大的文件来存储用户所有的邮件。若用户的邮件服务器进行很多的POP3服务,则这种邮件存储格式可以提高效率。但是遗憾的是Pine自身并不支持 这种存储格式,如果需要可以使用一些补丁来达到这个目的。Qmail的优点是:每个用户都可以 创建邮件列表而无须具有根用户的权限,如用户 “foo”可以创 建名为foo-slashdot, foo- linux ,foo-chickens的邮件列表,为了提供更好的功能,有一个叫ezmlm(EZ Mailing List Maker)的工具可以支持自动注册和注销、索引等Majordomo所具有 的各种功能,但是都是CL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销合同印花税的税率计算器版本更新
- 资产转让合同范本
- 跨学科的小学数学作业设计
- 轻松提升小学生阅读能力
- 辣椒采购单据模板
- 连带责任保证书样本
- 透水混凝土施工要点购买条款
- 酒店厨房用油烟机销售协议
- 重庆市地理探秘之旅
- 重要电梯修理招标公告
- 《鱼我所欲也》部编版教材教学课件
- 压铸车间领班绩效考核评价表
- 部编人教版二年级下册语文全册课件(新教材)
- 森海克斯SHX8800-蓝牙读写频APP操作说明书
- 初二物理凸透镜成像规律通用PPT课件
- 中铁十六局集团有限公司简介
- 联轴器的基本知识与点检方法.
- 高二10小高考动员家长会
- 项目部安全管理组织机构网络图GDAQ20102
- 理想与前途主题班会
- 2022年高考语文对点专练新题系列-诗化小说的诗意表达
评论
0/150
提交评论