18.11 配置文件举例

18.11  配置文件举例

作为学习在现实世界里如何配置sendmail的一个例子,我们来看一个很小但是非常了解sendmail的公司—Sendmail,Inc.(Sendmail有限公司)—所用的配置文件。他们的邮件系统设计方案包括一台主邮件枢纽主机(master mail hub),它同时负责传入邮件和发出邮件的处理任务。传入的所有邮件都由它接受,并立即传送给一组内部的IMAP服务器,这些服务器在把每则消息投递到用户的邮箱之前,先要检查病毒。邮件枢纽主机也能检查每一条传出的消息是否有病毒,这样一来,Sendmail,Inc.就不会因为通过电子邮件散布病毒而负责任。我们先看客户的配置,然后再查看更复杂的邮件主机。

在这些例子中,我们都对原始文件进行了轻微修改,删去版权说明,添加临时注释,并删除行尾的m4 dnl指令。如果您把我们的任何例子用作自己的.mc文件的模板,请一定要删除行尾的注释。

18.11.1  sendmail.com的邮件客户机

用于客户机的smi-client.mc文件相当简单。它使用邮件主机smtp.sendmail.com,这其实只是机器foon.sendmail.com的一个别名。使用一条MX记录(或者一条CNAME 记录)来指向邮件服务器是个好主意,当您希望移动自己的邮件主机时,这样改起来很容易。
请注意这个文件中的日期是1998年10月。自那时以来sendmail已经升级了许多次,但这个配置文件却不需要修改。

  

MAIL_HUB和SMART_HOST行把传入和发出的邮件定向到主机smtp.sendmail.com。对DNS中的MX记录应该予以配合,列出比单个客户机拥有更高优先级的主机(在MX记录中的编号较低)。.forward文件的路径被设置为空,别名文件也被设置为空,所有别名扩展都在这台主邮件枢纽主机(master)上进行。在这里指定了nocanonify功能以节省时间,因为无论如何在主邮件枢纽主机(master)上都要进行DNS查找的。

18.11.2  sendmail.com的邮件主机

sendmail.com的主邮件枢纽主机(master)可能是被攻击得最多的sendmail软件安装之一。它必须在攻击者们搞出的所有狡猾的邮寄程序的攻击之下保证安全,并保护它身后的机器。下面是它的配置文件:


 
  
主邮件枢纽主机(master)的任务就是把传入的邮件路由到正确的内部服务器上,并且作为传出邮件的中继转发主机。因为有下面两行:
FEATURE(‘accept_unqualified_senders')
FEATURE(‘accept_unresolvable_domains')


故主邮件枢纽主机(master)要接受传入的所有邮件,哪怕邮件是从没有全名的发件人和不能解析的域发来的也要接受。这样一来,把sendmail或者DNS配错了的客户仍然有可能通过。这些规则撤销了能够捕捉大量伪造信头的垃圾邮件的默认设置。身份识别功能被关闭了(超时时间设为0),从而加快了投递传入邮件的速度。

这台主邮件服务器首先检查传入的消息是否有某些类型的MIME附件,这些附件经常被病毒利用(INPUT_MAIL_FILTER语句)。那里调用的mime-filter包含下面这样的几行:

 

MIME附件的.vba、.dot、.exe、.com、.reg等类型都被拒绝,但是这里并没有做全面的病毒扫描,因为这样做会减慢传入邮件的处理速度。主邮件枢纽主机(master)使用LDAP(带有一个针对站点的特定方案)来查找每个消息的收件人,并把它传送到正确的内部IMAP/POP服务器上。如果没有在LDAP数据库中找到收件人,那么邮件就被发送给一台内部的主机(MAIL_HUB语句)做进一步的处理。IMAP/POP服务器和内部主机都会在把消息投递到用户的邮箱之前对它做全面的病毒扫描处理。

根据客户机上的SMART_HOST语句,传出的邮件也通过这台主邮件枢纽主机(master)进行发送。要通过邮件服务器sendmail.com发送一则消息,在sendmail.com域之外的机器必须提供一个由sendmail.com证书服务签发的证书。本公司雇员在到客户方的现场工作时,就可以采用这种机制通过sendmail.com向第三方中转(relay)发送邮件,而其他人却没有办法这样做。这种约定验证每个用户的身份,防止假造的邮件经sendmail.com中转发出。

在接受了发往Internet的邮件之后,这台主机(master)就把它传给SMART_HOST进行病毒检查。主邮件机器不太忙,可以自己来完成病毒扫描工作,但是如果在那里完成扫描的话,在邮件确实发出之前,发出邮件的用户不得不等着扫描完成。把它排入队列进行病毒扫描的机器会让用户更惬意一些—他们觉得消息似乎是转眼就发出去了。

在配置文件结尾处的LOCAL_CONFIG的几条规则就是通常检查信头、查找各种病毒和已知的发送垃圾邮件者的地方。在sendmail软件发布中的样本文件knecht.mc里,就能找到很好的例子。我们在下面包含了一个样本。


在2001年夏天,颇具破坏性的SirCam蠕虫到处肆虐。下面的片段是从sendmail软件发布中的knecht.mc文件里节录出来的,它能捕获这个蠕虫病毒。SirCam是首次能够产生随机信头内容的恶意病毒之一。如果不是它的作者犯了一个错误,使SirCam消息和真正的Outlook Express消息有了区别,那么用通常的工具都抓不到它。消息的内容相当常见(它请您就附带的附件给出意见),因此成了8.12版sendmail中新加的libmilter过滤机制的使用对象。在软件世界里没有产品级的可靠保障,似乎解决所有这些Microsoft病毒和蠕虫的做法就是卸载Windows并安装Linux!参考18.10.7节了解有关libmilter的更多信息。

 
 
在sendmail.com公司客户机上,它们自己的配置文件里都没有垃圾邮件控制机制,因为所有传入这个站点的邮件都是通过外部的邮件枢纽主机和一台内部的枢纽主机来传送的,垃圾邮件都在那里给挑出来了。本例中的有些功能和其他结构没有在我们介绍配置的章节里讲过,但是可以在cf/README文件里找到它们的文档说明。

分享到