热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

使用Sendmail的反垃圾邮件功能

在最近几年,无处不在的垃圾邮件已使得所有邮件箱不堪重负,不断地需要工具以抗击这一无穷尽的垃圾邮件流。不论这一领域的立法是否能成立,至少目前没有迹象表明可以很好的控制。当政治家和产业大腕们大谈电子邮件未来的时候,本地管理员们却不得不面对怎样

    在最近几年,无处不在的垃圾邮件已使得所有邮件箱不堪重负,不断地需要工具以抗击这一无穷尽的垃圾邮件流。不论这一领域的立法是否能成立,至少目前没有迹象表明可以很好的控制。当政治家和产业大腕们大谈电子邮件未来的时候,本地管理员们却不得不面对怎样做才能有助于遏制这个洪水猛兽。

Click here to find out more!&nbsp

Sendmail是目前流行的基于Linux的邮件传输代理(MTA),在网络中它负责处理大量的电子邮件。最新的版本在应对垃圾邮件方面更加成熟,现在,让我们一起探讨一下Sendmail中可以用来反垃圾邮件的一些可选程序。这些选项是对你配置自己的邮件服务器,特定邮件检查,和第三方附加软件最好的方法。

反垃圾邮件
Sendmail中内置的限制垃圾邮件的选项包括中继拒绝,发送方验证,访问控制列表,和详细的报头检查。第三方黑洞列表和软件的应用也可以扩展Sendmail的标准特性。虽然每个人在从邮件中挑选垃圾邮件时似乎都有自己的一套办法,但这会起到事半功倍的效果。分类和丢弃有效电子邮件的危险是存在的,所以需要小心对待反垃圾邮件的配置。多方面的考虑是安全并强烈推荐的,例如防止你的服务器成为一个公用的中继站和配置DNS检测。继续深究应该谨慎,这包括仔细认真地检查邮件日志。这样做,你可以减轻垃圾邮件带给终端用户的烦恼,而不是将合法的邮件消息一并拒之门外,使情况变得更糟。

中继拒绝
所有有助于解决垃圾邮件问题的第一步是不要打开中继服务。简单的说,最大程度地限制用户通过你的服务器发送邮件。一个开放的中继允许Internet上的任何人连接并通过服务器发送电子邮件。

一般地,IT专家总是希望任何人在架设Sendmail服务器之前就认识到,需要采取必要的措施以避免成为一个公开的中继而被发送垃圾邮件的人利用。幸运的是,Sendmail已经在8.9版中关闭了混杂中继。如果使用的是更早的版本,单就这个原因,你可能会考虑升级。垃圾邮件发送者习惯于使用相当蛮横的方法来散布他们的消息。他们热衷的方法是在Internet中搜寻所有可以访问的开放中继邮件服务器。他们会尽可能多地通过服务器发送邮件直到他们的行为被发现或被列入黑名单,然后他们又会搜寻新的开放中继。

Sendmail允许你个别指定哪个域或者IP地址被允许通过你的服务器发送电子邮件。典型的做法是通过一个纯文本文件列出域,或者通过它的访问数据库。访问数据库允许你详细说明来自指定域或网络地址的邮件满足何种条件时才会被处理。所有的邮件都会被中继接受,然后被丢弃,或者再向寄件人发送一条可配置的消息,这个消息可以是很有趣的;但不知为什么,我怀疑发送垃圾邮件的人正在仔细分析他们日志中的错误代码。然而,服务器会给那些想把你的邮件服务器当作一个开放中继的寄件人返回一个550错误,也就是消息“垃圾邮件被清除”。

内置特性
除了避免邮件服务器被用来传播垃圾邮件之外,你还可以直接配置如何处理收到的垃圾邮件。Sendmail允许你仔细研究电子邮件报头,并根据诸如From:和To: 域的内容进行分类。根据这些域的内容,你可以允许来自特定电子邮件地址的邮件并拒绝所有其他的邮件,反之亦然。Sendmail可以检查一个邮件报头的任何部分。所以基于一个前提来丢弃邮件:找出已经判定可作为特定的垃圾邮件组织的唯一特征是可能的。

Sendmail还将检查一个对内连接的DNS地址并确认它是存在的。如果垃圾邮件发送者正在用域名进行欺骗,当他发送的邮件碰到Sendmail,首先在转发时进行一个检查并转换为DNS以确认是否是有效的。当然,这个检查还是无法阻止来自有效域的垃圾邮件,但一个典型的反垃圾邮件程序将包括不同等级的配置。不幸的是,这里没有什么特好的方法,但针对垃圾邮件的不同情况存在多种等级的选择。

Sendmail 8.10发布之后,开始支持SMTP AUTH。SMTP AUTH是另一种类型的选项,想通过验证来阻止垃圾邮件的管理员可以使用这个方法。通过邮件服务器验证的用户被允许进行中继,这个方法对那些旅行在外,可能通过不被信任的IP地址或域名来发送邮件的用户特别有用。尽管这个方法可能在专用服务器上很有用,但它在公用服务器上没什么用处。公用服务器需要能够接收来自任何人的电子邮件,而不仅仅是信任的用户。但对小型的专用服务器,这样做可以完全消除垃圾邮件。

黑洞列表
Sendmail还提供黑洞列表功能。这些列表组成外部的垃圾邮件数据库,用来存储已知的垃圾邮件发送者的DNS信息。可以配置Sendmail拒绝任何来自这些数据库种被列出来源的邮件。但有时候,由于一个用户导致整个邮件服务器被列入黑名单,这影响到这个服务器上所有其他无辜的用户,这时问题就出现了。换句话说,在这个过程中也会出现一些错误。在配置一个黑洞列表的时候,你应该小心处理这个问题。

最有名的一个黑洞列表是由Paul VixIE维护的mail-abuse.org。还有许多其他黑洞列表,针对如何使这类列表更有用进行一些研究或许是必要的。如果维护不利,实际上这些列表是很有害的。如果他们的业务是合法的,但被错误的当作垃圾邮件列入黑名单,应该有方法允许他们恢复自己的名称并将他们的域名从列表中删除。

第三方选项
第三方选项可以包括不止一个的远程垃圾邮件发送者维护列表。一个这样的选项将使用一个第三方邮件服务器来处理邮件并且在DNS中为你的域充当MX记录。这种商业服务将检查消息,并在垃圾邮件被排除在外之后,把这些消息传送到你的本地邮件服务器上。这可以减轻本地服务器的工作压力,但我知道一些管理员在是否让另一个公司来决定哪个邮件将被传输这个问题上会犹豫不决。

另一个方法是使用一个诸如Cloudmark的Authority之类的软件包。这可以在你的服务器上本地执行反垃圾邮件服务并且允许一个更高等级的可配置性。实际上,目前Sendmail的商业版本包含基于Cloudmark的反垃圾邮件软件的过滤工具。

在一个运行了Sendmail的服务器上,从简单的shell脚本到成熟的包转发技术都可以用来阻止垃圾邮件。另一个商业解决方案是MailShell,这个来自Sendmail.org的链接显示了反垃圾邮件选项的多样性。他们中的许多将依赖于特定邮件服务器接收的流量。

总结
在你自我保护以免垃圾邮件之害时,并不是只有一个选择,有许多可用的选择帮助解决这个问题。Sendmail已经将反垃圾邮件方法一体化问题融入到他的软件当中,并且特别是在这个产品的最近版本中,许多选项在缺省时是激活的。通过使用各种内置特性,黑洞列表和服务器方反垃圾邮件程序,你可以过滤掉大部分的垃圾邮件。


推荐阅读
author-avatar
xuanchen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有