Linux环境下邮件服务器软件的分析比较
2009-05-13 00:56:41来源:未知 阅读 ()
作者:炎黄角马
几年以前,Linux环境下可以选择的可以免费邮件服务器软件只有Sendmail,但是由于Sendmail的缺陷,一些开发者先后开发了若干种其他的邮件服务器软件。当前,运行在Linux环境下免费的邮件服务器,或者称为MTA(MailTransferAgent)有若干种选择,比较常见的有Sendmail、Qmail、Postfix、exim及Zmailer等等。本文希望通过对几种影响相对来说比较大的主流Linux环境下的MTA的特点进行阐述,并对其优缺点一一金星分析比较,使用户在选择Linux环境下的免费MTA时有一个选择的依据。
Postfix
Postfix是一个由IBM资助下由WietseVenema负责开发的自由软件工程的一个产物,其目的是为用户提供除sendmail之外的邮件服务器选择。Postfix力图做到快速、易于管理、提供尽可能的安全性,同时尽量做到和sendmail邮件服务器保持兼容性以满足用户的使用习惯。起初,Postfix是以VMailer这个名字发布的,后来由于商标上的原因改名为Postfix。
主要设计目标
Postfix工程的目标是实现一个邮件服务器,提供给用户除sendmail以外的选择。其设计目标包括:
性能,Postfix要比同类的服务器产品速度快三倍以上,一个安装Postfix的台式机一天可以收发百万封信件。Postfix设计中采用了web服务器的的设计技巧以减少进程创建开销,并且采用了其他的一些文件访问优化技术以提高效率,但同时保证了软件的可靠性。
兼容性。Postfix设计时考虑了保持Sendmail的兼容性问题,以使移植变的更加容易。Postfix支持/var[/spool]/mail,/etc/aliases,NIS,及~/.forward等文件。然而Postfix为保证管理的简单性,所以没有支持配置文件sendmail.cf。
安全和健壮性。Postfix设计上实现了程序在过量负载情况下仍然保证程序的可靠性。当出现本地文件系统没有可用空间或没有可用内存的情况时,Postfix就会自动放弃,而不是重试使情况变的更糟。
灵活性。Postfix结构上由十多个小的子模块组成,每个子模块完成特定的任务,如通过SMTP协议接收一个消息,发送一个消息,本地传递一个消息,重写一个地址等等。当出现特定的需求时,可以用新版本的模块来替代老的模块,而不需要更新整个程序。而且它也很容易实现关闭某个功能。
安全性。Postfix使用多层防护措施防范攻击者来保护本地系统,几乎每一个Postfix守护进程都能运行在固定低权限的chroot之下,在网络和安全敏感的本地投递程序之间没有直接的路径—一个攻击者必须首先突破若干个其他的程序,才有可能访问本地系统。Postfix甚至不绝对信任自己的队列文件或IPC消息中的内容以防止被欺骗。Postfix在输出发送者提供的消息之前会首先过滤消息。而且Postfix程序没有set-uid。
Postfix的一些特点
支持多传输域:sendmai支持在Internet,DECnet,X.400及UUCP之间转发消息。Postfix则灵活的设计为无须虚拟域(vistualdomai)或别名来实现这种转发。但是在早期的发布里仅仅支持STMP和有限度地支持UUCP,但对于我国用户来说,多传输域的支持没有什么意义。
虚拟域:在大多数通用情况下,增加对一个虚拟域的支持仅仅需要改变一个Postfix查找信息表。其他的邮件服务器则通常需要多个级别的别名或重定向来获得这样的效果。
UCE控制(UCE,unsolicitedcommercialemail):Postfix能限制哪个主机允许通过自身转发邮件,并且支持限定什么邮件允许接进。Postfix实现通常的控制功能:黑名单列表、RBL查找、HELO/发送者DNS核实。基于内容过滤当前没有实现。
表查看:Postfix没有实现地址重写语言,而是使用了一种扩展的表查看来实现地址重写功能。表可以是本地dbm或db文件等格式。
Postfix体系结构及与Sendmail的比较
Postfix是基于半驻留,互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系(父子关系)。而且,独立的进程来完成不同的功能相对于“单块”程序具有更好的隔离性。此外,这种实现方式具有这样的优点:每个服务如地址重写等都能被任何一个Postfix部件所使用,无须进程创建等开销,而仅仅需要重写一个地址,当然并不是只有postfix采用这种方式。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- RAID 1 软件实现(Linux 系统) 2020-06-10
- linux修改环境变量分析 2020-06-05
- 【原创】Linux中断子系统(一)-中断控制器及驱动分析 2020-05-31
- Linux下分析bin文件的10种方法 2020-05-21
- 【原创】Linux信号量机制分析 2020-05-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash