热门标签 | 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已经将反垃圾邮件方法一体化问题融入到他的软件当中,并且特别是在这个产品的最近版本中,许多选项在缺省时是激活的。通过使用各种内置特性,黑洞列表和服务器方反垃圾邮件程序,你可以过滤掉大部分的垃圾邮件。


推荐阅读
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 2020初级电工模拟题库与实操视频指南
    本文提供2020年初级电工模拟考试题库及实操视频资源,涵盖最新大纲和真题解析,帮助考生高效备考。内容包括理论知识、实操技能以及详细答案解析,适用于全国各地区电工(初级)考试。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
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社区 版权所有