战斗垃圾邮件 – 我可以做什么:电子邮件pipe理员,域名所有者或用户?

这是一个关于打击垃圾邮件的典型问题 。
还相关:

  • 如何阻止用户使用我的域名发送垃圾邮件?
  • 什么是SPFlogging,我如何configuration它们?

有太多的技术和太多了解打击垃圾邮件。 pipe理员,域名所有者和最终用户可以使用哪些广泛使用的技术和技术来帮助防止垃圾邮件进入我们的收件箱?

我们正在寻找涵盖不同技术的答案。 接受的答案应该包括各种技术(如SPF / SenderID,DomainKeys / DKIM,Graylisting,DNS RBLs,信誉服务,过滤软件[SpamAssassin等]); 最好的做法(例如25号邮箱绝不允许中继,587号应该使用等),术语(例如开放中继,反向散射,MSA / MTA / MUA,垃圾邮件/火腿)以及其他可能的技术。

    要打败你的敌人,你必须知道你的敌人。

    什么是垃圾邮件?

    就我们的目的而言,垃圾邮件是任何未经请求的大量电子邮件。 垃圾邮件这些天是为了引诱毫无戒心的用户访问一个(通常是阴暗的)网站,在那里他们将被要求购买产品,或者有恶意软件传送到他们的电脑,或两者兼而有之。 有些垃圾邮件会直接传送恶意软件。

    你可能会惊讶的发现,第一批垃圾邮件是在1864年发出的。 这是一个通过西联电报发出的牙科服务广告。 这个词本身就是对 “巨蟒飞行马戏团”中一个场景的引用 。

    在这种情况下,垃圾邮件并不是指用户订阅的邮件列表stream量,即使他们以后改变主意(或者忘记了)但是还没有实际取消订阅。

    为什么垃圾邮件是个问题?

    垃圾邮件是一个问题,因为它适用于垃圾邮件发送者 。 垃圾邮件通常会产生足够多的销售(或恶意软件交付,或两者兼而有之),以弥补垃圾邮件发送者的成本 。 垃圾邮件发送者不会考虑收件人,您和您的用户的成本。 即使只有极less数接收垃圾邮件的用户回应,也足够了。

    因此,您需要支付带宽,服务器和pipe理员时间的账单来处理传入的垃圾邮件。

    我们根据以下原因阻止垃圾邮件:我们不希望看到垃圾邮件,降低我们处理电子邮件的成本,并使垃圾邮件发送者的垃圾邮件成本更高。

    垃圾邮件如何工作?

    垃圾邮件通常以不同于正常的合法电子邮件的方式发送。

    垃圾邮件发送者几乎总是要掩盖电子邮件的来源,所以一个典型的垃圾邮件将包含假头信息。 From:地址通常是假的。 一些垃圾邮件包括伪造Received:线路,试图掩饰踪迹。 大量的垃圾邮件是通过开放的SMTP中继,开放的代理服务器和僵尸networking提供的。 所有这些方法都使得确定谁发起垃圾邮件更加困难。

    一旦进入用户的收件箱,垃圾邮件的目的就是诱使用户访问广告的网站。 在那里,用户将被诱惑进行购买,或者该网站将尝试在用户的计算机上安装恶意软件,或者两者兼而有之。 或者,垃圾邮件会要求用户打开包含恶意软件的附件。

    如何阻止垃圾邮件?

    作为邮件服务器的系统pipe理员,您将configuration您的邮件服务器和域名,使垃圾邮件发送者更难将垃圾邮件发送给您的用户。

    我将讨论专门针对垃圾邮件的问题,并可能跳过与垃圾邮件没有直接关系的内容(如encryption)。

    不要运行一个开放的继电器

    大邮件服务器的罪行是运行一个开放的中继 ,一个SMTP服务器,它将接收任何目的地的邮件并将其传送。 垃圾邮件发送者喜欢开放式继电器,因为它们几乎能保证交付 当垃圾邮件发送者做其他事情时,他们承担传递邮件的负担(并重试!)。 他们使垃圾邮件便宜

    开放式继电器也有助于散射问题。 这些邮件是被接力邮件接受的,但却无法传递。 然后,开放中继将发送退回消息到From:地址,其中包含垃圾邮件的副本。

    • 将您的邮件服务器configuration为仅接受您自己的域名的端口25上的传入邮件。 对于大多数邮件服务器来说,这是默认的行为,但至less需要告诉邮件服务器你的域名是什么。
    • 通过向您的SMTP服务器发送一封来自networking外部的邮件来testing您的系统,其中From:To:地址不在您的域内。 该消息应该被拒绝。 (或者,使用MX Toolbox等在线服务来执行testing,但请注意,如果您的邮件服务器未通过testing,则某些在线服务会将您的IP地址提交给黑名单。)

    拒绝任何看起来太可疑的东西

    各种错误configuration和错误可能是传入消息可能是垃圾邮件或其他非法的提示。

    • 标记为垃圾邮件或拒绝IP地址没有反向DNS(PTRlogging)的邮件。 对于IPv4连接,PTRlogging的缺乏要比IPv6连接严重,因为许多IPv6地址还没有反向DNS,并且可能不会持续几年,直到DNS服务器软件能够更好地处理这些潜在的非常大的区域为止。
    • 拒绝发件人或收件人地址中的域名不存在的邮件。
    • 拒绝不使用发件人域或收件人域的完全限定域名的邮件,除非它们始于您的域内,并且意图在您的域内传递(例如监视服务)。
    • 拒绝另一端不发送HELO / EHLO
    • 拒绝HELO / EHLO所在的连接:
      • 不是完全合格的域名而不是IP地址
      • 公然错误(例如,你自己的IP地址空间)
    • 拒绝未经授权使用stream水线的连接。

    validation您的用户

    邮件到达您的服务器应考虑入站邮件和出站邮件。 入站邮件是到达您的SMTP服务器的任何邮件,最终将发往您的域名; 出站邮件是到达您的SMTP服务器的任何邮件,在发送之前它们将被传送到其他地方(例如,它将到达另一个域)。 入站邮件可以由您的垃圾邮件filter处理,可能来自任何地方,但必须始终注定您的用户。 此邮件无法进行身份validation,因为无法向可能向您发送邮件的每个站点都提供凭据。

    出站邮件,即将被中继的邮件, 必须经过authentication。 无论是来自互联网还是来自您的networking,都是这种情况(尽pipe如果操作上可行的话,您应该限制允许使用邮件服务器的IP地址范围)。 这是因为垃圾邮件可能在您的networking中运行。 因此,configuration您的SMTP服务器,以便邮件绑定到其他networking将被删除(中继访问将被拒绝),除非该邮件进行身份validation。 更好的是,对入站和出站邮件使用单独的邮件服务器,根本不允许中继入站邮件,并且不允许对出站邮件进行未经validation的访问。

    如果您的软件允许这样做,您还应该根据经过身份validation的用户过滤消息; 如果邮件的发件人地址与authentication的用户不符,则应拒绝。 不要静静地更新发件人地址; 用户应该知道configuration错误。

    您还应该logging用于发送邮件的用户名,或者添加一个标识标题。 这样,如果发生滥用行为,您就有证据,并知道用哪个账户来做这件事。 这使您可以隔离受损的帐户和问题用户,并且对共享主机提供商尤其重要。

    过滤stream量

    您希望确定邮件离开您的networking实际上是由您的(经过身份validation的)用户发送的,而不是由机器人或外部人员发送的。 你如何做到这一点的具体情况取决于你正在pipe理什么样的系统。

    通常情况下,如果您是公司networking,则阻止端口25,465和587(SMTP,SMTP / SSL和提交)上的出站stream量,而不是出站邮件服务器。 这样,您的networking上运行恶意软件的僵尸程序就无法从networking发送垃圾邮件,以便在Internet上打开中继或直接向最终的MTA发送地址。

    热点是一种特殊情况,因为它们的合法邮件来自许多不同的域,但是(由于SPF等原因)“强制”的邮件服务器不合适,用户应该使用自己的域名的SMTP服务器来提交邮件。 这种情况要困难得多,但是对这些主机的Internetstream量使用特定的公有IP或IP范围(以保护站点的声誉),限制SMTPstream量以及深度数据包检查都是需要考虑的解决scheme。

    过去,垃圾邮件主要是在端口25上发布垃圾邮件,但是没有任何东西阻止他们为了同一目的而使用端口587,所以更改入站邮件所使用的端口具有可疑价值。 但是, RFC 2476build议使用端口587来提交邮件,并允许将邮件提交(对第一个MTA)和邮件传输(在MTA之间)从networking拓扑中明显分开; 如果你需要这样的分离,你应该这样做。

    如果您是ISP,VPS主机,主机代pipe服务提供商或类似服务提供热点供访问者使用,阻止出口SMTPstream量对使用自己的域名发送邮件的用户可能会产生问题。 在公共热点以外的所有情况下,您都应该要求需要出站SMTP访问的用户,因为他们正在运行邮件服务器来专门请求。 让他们知道,滥用投诉将最终导致访问被终止,以保护您的声誉。

    dynamicIP以及那些用于虚拟桌面基础架构的IP不应具有出站SMTP访问,除非这些节点预期使用特定的邮件服务器。 这些types的IP也应该出现在黑名单上,你不应该试图为他们build立声誉。 这是因为他们极不可能运行合法的MTA。

    考虑使用SpamAssassin

    SpamAssassin是一个邮件filter,可用于根据邮件标题和内容识别垃圾邮件。 它使用基于规则的评分系统来确定邮件是垃圾邮件的可能性。 分数越高,消息越可能是垃圾邮件。

    SpamAssassin还有一个贝叶斯引擎,可以分析反馈给它的垃圾邮件和火腿(合法邮件)样本。

    SpamAssassin的最佳做法不是拒绝邮件,而是将其放入“垃圾邮件”或“垃圾邮件”文件夹中。 可以将Outlook和Thunderbird等MUA(邮件用户代理)设置为识别SpamAssassin向电子邮件添加的标头,并将其正确归档。 虚假的肯定是可以发生的,虽然很less发生,但首席执行官遇到这种情况时,你会听到这个消息。 如果邮件只是简单地传送到“垃圾邮件”文件夹,而不是直接拒绝,那么这个对话就会变得更好。

    SpamAssassin几乎是独一无二的,尽pipe存在一些替代品 。

    • 安装SpamAssassin并使用sa-update为其规则configuration自动sa-update
    • 考虑在适当的地方使用自定义规则 。
    • 考虑设置贝叶斯过滤 。

    考虑使用基于DNS的黑洞列表和信誉服务

    DNSBL(以前称为RBL或实时黑洞列表)提供了与垃圾邮件或其他恶意活动相关的IP地址列表。 这些由独立的第三方根据他们自己的标准运​​行,因此仔细研究DNSBL使用的列表和除名标准是否与您的组织需要接收电子邮件兼容。 例如,一些DNSBL有严厉的退市政策,这使得意外上市的人很难被移除。 其他人在IP地址没有发送垃圾邮件一段时间后自动退出,这样更安全。 大多数DNSBL是免费使用的。

    声誉服务是相似的,但声称通过分析更多与任何给定的IP地址相关的数据来提供更好的结果。 大多数信誉服务需要订阅付款或硬件购买或两者兼而有之。

    有几十个DNSBL和信誉服务可用,虽然我使用和推荐的一些更好的已知和有用的服务是:

    保守名单:

    • Spamhaus ZEN
    • 梭子鱼声望数据库 (不需要购买)
    • SpamCop中

    积极的名单:

    • UCEPROTECT
    • 反向散射

    如前所述,许多其他人可用,可能适合您的需求。 我最喜欢的技巧之一是查找传递了一个垃圾邮件,通过反对多个DNSBL 的IP地址 ,看看他们哪些人会拒绝它。

    • 对于每个DNSBL和信誉服务,请检查其列出和除名IP地址的政策,并确定它们是否与您的组织的需求兼容。
    • 当您决定适合使用该服务时,将DNSBL添加到您的SMTP服务器。
    • 考虑为每个DNSBL分配一个分数,并将其configuration到SpamAssassin中而不是SMTP服务器中。 这减less了误报的影响; 这样的消息将被传递(可能为垃圾/垃圾邮件)而不是反弹。 权衡是你会提供大量的垃圾邮件。
    • 或者,当IP地址位于更保守的列表之一时,直接拒绝,并在SpamAssassin中configuration更积极的列表。

    使用SPF

    SPF(发件人策略框架; RFC 4408和RFC 6652 )是一种通过声明哪些Internet主机被授权为给定的域名提供邮件来防止电子邮件地址欺骗的手段。

    • configuration你的DNS,用你的授权外发邮件服务器声明一个SPFlogging,并且-all拒绝所有其他的。
    • configuration您的邮件服务器以检查传入邮件的SPFlogging(如果存在),并拒绝未通过SPFvalidation的邮件。 如果域名没有SPFlogging,则跳过此检查。

    调查DKIM

    DKIM(DomainKeys Identified Mail; RFC 6376 )是在邮件消息中embedded数字签名的一种方法,可以使用DNS中公开的密钥进行validation。 它在美国已经被专利侵占 ,而且已经放慢了采用速度。 如果邮件在传输过程中被修改(例如,SMTP服务器有时可能会重新包装MIME邮件),DKIM签名也会中断。

    • 考虑使用DKIM签名签署外发邮件,但请注意即使在合法邮件上签名也可能无法正确validation。

    考虑使用灰名单

    灰名单是SMTP服务器暂时拒绝传入消息而不是永久拒绝的技术。 在几分钟或几小时内重新投递时,SMTP服务器将接受该消息。

    灰名单可以阻止一些垃圾邮件软件,这种软件不足以区分临时性和永久性拒绝,但对于发送到开放式中继或具有更强大的垃圾邮件软件的垃圾邮件没有任何帮助。 它还引入了用户可能不总是容忍的交付延迟。

    • 考虑只在极端情况下使用灰名单,因为这对合法的电子邮件stream量是高度破坏性的。

    考虑使用nolisting

    Nolisting是一种configurationMXlogging的方法,使得最高优先级(最低优先级编号)logging没有正在运行的SMTP服务器。 这取决于很多垃圾邮件软件只会尝试第一个MXlogging,而合法的SMTP服务器则会按照首选项的升序尝试所有MXlogging。 一些垃圾邮件软件也会尝试直接发送违反RFC 5321的最低优先级(最高首选号码)MXlogging,因此也可以将其设置为不包含SMTP服务器的IP地址。 据报道这是安全的,尽pipe如此,你应该首先仔细testing。

    • 考虑将您的最高优先级的MXlogging设置为指向在端口25上不应答的主机。
    • 考虑将您的最低优先级的MXlogging设置为指向未在端口25上应答的主机。

    考虑一个垃圾邮件过滤设备

    将垃圾邮件过滤设备(例如Cisco IronPort或梭子鱼垃圾邮件和病毒防火墙 (或其他类似设备))放在现有的SMTP服务器前面,以减less收到的垃圾邮件。 这些设备预先configuration了DNSBL,信誉服务,贝叶斯filter以及其他function,并且由其制造商定期更新。

    • 研究垃圾邮件过滤设备硬件和订阅成本。

    考虑托pipe的电子邮件服务

    如果这对您(或您的IT工作人员过度劳累)太过分了,您可以随时让第三方服务提供商为您处理您的电子邮件。 诸如Google Postini , Symantec MessageLabs Email Security (或其他)的服务将为您过滤消息。 其中一些服务还可以处理法规和法律要求。

    • 研究托pipe电子邮件服务订阅费用

    系统pipe理员应该对最终用户打击垃圾邮件有什么样的指导?

    最终用户应该对付垃圾邮件的绝对#1是:

    • 不要回应垃圾邮件。

      如果看起来有趣,请不要点击网站链接,也不要打开附件。 无论这个提议看起来多么有吸引力。 那伟哥并不是那么便宜,你不可能得到任何人的裸体照片, 尼日利亚或其他地方没有一千五百万美元的钱,除了那些对垃圾邮件做出回应的人的钱。

    • 如果您看到垃圾邮件,请根据您的邮件客户端将其标记为垃圾邮件或垃圾邮件。

    • 如果您实际注册接收邮件并只想停止接收邮件, 请勿将邮件标记为垃圾邮件/垃圾邮件。 而是使用提供的取消订阅方法退订邮件列表。

    • 定期检查您的垃圾邮件文件夹,看是否有合法的邮件通过。 将它们标记为“不垃圾/不垃圾”,并将发件人添加到联系人,以防止他们的邮件将来被标记为垃圾邮件。

    多年来,我pipe理了超过100个独立的邮件环境,并使用大量stream程来减less或帮助消除垃圾邮件。

    随着时间的推移,技术也在不断发展,所以这个答案将贯穿我过去试过的一些事情,并详细说明当前的事态。

    关于保护的一些想法…

    • 您希望保护传入邮件服务器的端口25不受开放中继的限制 ,任何人都可以通过基础架构发送邮件。 这与您可能使用的特定邮件服务器技术无关。 远程用户应使用备用提交端口某种forms的所需身份validation来中继邮件。 端口587或端口465是25的通用替代品。
    • encryption也是一个加号。 大量邮件stream量以明文forms发送。 现在,大多数邮件系统都可以支持某种forms的encryption。 有些事情期待它。
    • 这些更主动的方法来防止您的邮件网站被列为垃圾邮件来源…

    关于传入的垃圾邮件…

    • 灰名单在短时间内是一个有趣的方法。 强制暂时拒绝/延迟,希望垃圾邮件发送者能够断开连接并避免重新发送消息所需的时间和资源。 这在邮件传递中产生了不可预知的延迟,并不能很好地处理来自大型服务器场的邮件,垃圾邮件发送者最终还是制定了解决方法。 最坏的影响是打破了用户对快速邮件投递的期望。
    • 多个MX继电器仍然需要保护。 一些垃圾邮件发送者会尝试发送到备份或低优先级的MX ,希望它具有较less的强大的过滤。
    • 实时黑色(洞)列表 (RBL / DNSBL) – 这些参考集中维护的数据库来validation是否列出发送服务器。 严重依赖RBL的有一些注意事项。 有些人并不像其他人那样有名。 Spamhaus的产品对我来说一直很好。 其他人,如SORBS ,在列举知识产权方面做法不佳,而且经常阻止合法的电子邮件。 在某些情况下,这被比喻为敲诈阴谋,因为退市往往涉及$$$。
    • 发件人策略框架 (SPF) – 基本上是一种确保给定主机被授权为DNS TXTlogging所定义的特定域发送邮件的方法。 为您的外发邮件创buildSPFlogging是一种很好的做法,但不好的做法是要求从发送给您的服务器上获取这些logging。
    • 域密钥 – 尚未广泛使用。
    • 反弹抑制 – 防止无效邮件返回到源。 一些垃圾邮件发送者会通过分析反向散射来创build可用地址的地图,试图查看哪些地址是有效的/有效的。
    • 反向DNS / PTR检查 – 检查发送服务器是否有有效的反向PTRlogging。 这并不需要匹配原始域,因为可能有多个域到主机的映射。 但是,确定IP空间的所有权并确定始发服务器是否是dynamicIP块的一部分(例如,家庭宽带 – 阅读:受损害的垃圾邮件)是很好的。
    • 内容过滤 – (不可靠) – 试图对付(“伟哥,V \ |阿格拉,伟哥,维格拉”)排列是耗时的pipe理员,并不能在一个更大的环境中扩展。
    • 贝叶斯过滤 – 更多高级垃圾邮件解决scheme允许全球或每位用户对邮件进行培训。 阅读关于启发式的链接文章,但重点是邮件可以手动分类为良好(Ham)或不良(Spam),并且生成的消息填充可引用的贝叶斯数据库,以确定未来消息的分类。 通常,这与垃圾邮件分数或加权相关联,并且可以是用于确定是否应该传递消息的一些技术中的一个。
    • 速率控制/节stream – 简单的方法。 限制给定服务器在特定时间段内可以尝试传送的邮件数量。 延迟超过该阈值的所有消息。 这通常在邮件服务器端configuration。
    • 托pipe和云过滤。 Postini想到了,因为在 计算之前,这是一个云计算解决scheme。 现在由Google所有,托pipe解决scheme的优势在于,处理邮件所遇到的邮件量具有固有的规模效益。 数据分析和简单的地理范围可以帮助托pipe的垃圾邮件过滤解决scheme适应趋势。 但执行起来很简单。 1)。 将您的MXlogging指向托pipe解决scheme,2)。 提供过滤后的服务器传送地址。 3)。 利润

    我目前的做法:

    我是一个基于设备的垃圾邮件解决scheme的倡导者。 我想拒绝在networking的周边,并在邮件服务器级别保存CPU周期。 使用设备还提供了一些与实际邮件服务器(邮件传送代理)解决scheme无关的独立function。

    我推荐梭子鱼垃圾邮件过滤设备的原因有很多。 我已经部署了几十个单元,而networking驱动的界面,行业思维共享和“一尘不染”的设备性质使其成为赢家。 后端技术结合了上面列出的许多技术。

    • 我在邮件服务器的IP地址上阻止了端口25,而是将该域的MXlogging设置为梭子鱼设备的公共地址 – 例如spam.domain.com。 港口25将开放邮件传递。
    • 核心是SpamAssassin,它带有一个简单的消息日志(和贝叶斯数据库)接口,可以用来在初始培训期间对不错的邮件进行分类。
    • 梭子鱼默认使用了几个RBL,包括Spamhaus.org的 RBL和他们自己的BRBL声誉数据库 。 注 – BRBL可作为其他邮件系统的标准RBL免费使用
    • 梭子鱼声望数据库是根据实时数据,蜜jar,大规模分析和任何数量的专有技术编制而成的。 它有一个注册的白名单和阻止列表。 大容量和高可见性的邮件发件人经常在Barracuda注册自动白名单。 例子包括Blackberry, Constant Contact等
    • SPF检查可以启用(但我不启用它们)。
    • 有一个界面可以查看邮件,并根据需要从设备的邮件caching中重新发送邮件。 这对于用户期望可能没有通过所有垃圾邮件检查的消息的情况是有用的。
    • LDAP / Active Directory用户validation有助于加速检测无效邮件收件人。 这可以节省带宽并防止反向散射 。
    • IP /发件人地址/域名/原始国家都可以configuration。 如果我想拒绝所有来自意大利域名后缀的邮件,这是可能的。 如果我想阻止来自特定域的邮件,它很容易configuration。 如果我想阻止用户的追踪者发送电子邮件给用户,这是可行的(真实的故事)。
    • 梭子鱼提供了大量的jar头报告,并可以很好地显示设备状态和垃圾邮件指标。
    • 我喜欢现场安装一台设备,以保持内部处理,并且可能有后期过滤邮件日志连接(在需要邮件保留的环境中)。
    • Plus设备可以驻留在虚拟化基础架构中 。

    梭子鱼垃圾邮件和病毒防火墙300状态控制台 在这里输入图像描述


    较新的方法:

    在过去的一个月里,我一直在试用梭子鱼基于云的电子邮件安全服务 。 这与其他托pipe的解决scheme类似,但非常适合小型站点,而昂贵的设备成本高昂。 对于象征性的年费,这项服务提供了硬件设备85%左右的function。 该服务还可以与现场设备一起运行,以减lessinput带宽并提供另一层安全性。 这也是一个很好的缓冲区,可以在发生服务器中断的情况下后台处理邮件。 分析仍然是有用的,虽然不如物理单元详细。

    梭子鱼云电子邮件安全控制台 在这里输入图像描述

    总而言之,我已经尝试了很多解决scheme,但是考虑到某些环境的规模以及用户群不断增长的需求,我想要最优雅的解决scheme。 采取多pipe齐下的方法,“自己动手”是可能的,但是我已经做好了对Barracuda设备的一些基本的安全和良好的使用监控。 用户对结果非常满意。

    注意: 思科Ironport是伟大的…只是更加昂贵。

    部分,我赞同别人的话。 部分,我不知道。

    过虑

    这对我来说效果很好,但是你需要花费一些时间训练贝叶斯filter,包括火腿和垃圾邮件

    灰名单

    ewwhite可能会感觉到它的一天已经来临,但我不能同意。 我的一位客户问我的各种filter效果如何,所以这里是我的个人邮件服务器2012年7月的近似统计数据:

    • 尝试传送46000封邮件
    • 1750年通过灰名单
    • 250通过greylisting +训练有素的spamassassin

    所以大约44000从来没有通过灰名单, 如果我没有灰名单,并接受了所有这些,他们将有所有需要的垃圾邮件过滤,所有使用CPU和内存,并确实带宽。

    编辑 :因为这个答案似乎对一些人有用,我想我会把统计数据更新。 所以我从二零一五年一月,二年半以后重新进行邮件日志的分析。

    • 尝试传送115,500封邮件
    • 13,300通过灰名单(和一些基本的健全性检查,例如有效的发件人域)
    • 8,500通过灰名单+训练spamassassin

    这些数字并不能直接比较,因为我不再logging2012年的数字,所以我不能确定这些方法是否相同。 但是我有信心,当时我并不需要在很多内容上运行计算成本很高的垃圾邮件过滤,而且由于灰名单,我还是没有。

    SPF

    这不是一个真正的反垃圾邮件技术,但它可以减less你必须处理的后向散射量,如果你是乔工作的话。 您应该使用它进出,即:您应该检查发件人的SPFlogging收到电子邮件,并相应地接受/拒绝。 你也应该发布你自己的SPFlogging,完整列出所有批准发送邮件的机器,并-alllocking所有其他机器 。 不以-all结尾的SPFlogging完全没有用处。

    黑洞名单

    RBL是有问题的,因为一个人可以通过自己的错误来获得他们,他们可以很难下车。 尽pipe如此,他们在垃圾邮件斗争中也有合法的用途,但是我强烈build议不要将RBL用作邮件验收的明线testing 。 spamassassin处理RBL的方式 – 通过使用许多,每个都有助于总分,而这个分数使得接受/拒绝的决定更好。

    Dropbox的

    我不是指商业服务,我的意思是说我的邮件服务器有一个地址,它可以切断我所有的灰名单和垃圾邮件过滤,但是不是传递给任何人的INBOX,而是到/var的世界可写文件夹,每天超过14天的电子邮件会自动剪除。

    我鼓励所有用户充分利用它,例如填写需要可validation电子邮件地址的电子邮件表单,您将收到一封您需要保留的电子邮件,但您不希望再次收到的电子邮件或购买时来自网上供应商谁可能出售和/或垃圾邮件的地址(尤其是那些欧洲隐私法的范围之外)。 用户可以给出收件箱的地址,而不是给她真实的地址,只有当她期望通讯员(通常是一台机器)的东西时,才可以在收存箱中查看。 当它到达时,她可以把它拿出来,并保存在她正确的邮件收集。 没有用户需要在其他时间看保pipe箱。

    我正在使用一些将垃圾邮件降低到可接受水平的技术。

    延迟接受来自错误configuration的服务器的连接。 我收到的垃圾邮件大部分来自Spambots在恶意软件感染系统上运行。 几乎所有这些都不能通过rDNSvalidation。 延迟30秒左右之后,每次回复都会导致大部分Spambots在放弃信息之前放弃。 只应用于rDNS失败的服务器可以避免惩罚正确configuration的服务器。 某些configuration不正确的合法批量或自动发件人会受到处罚,但交付时间最短。

    Configuring SPF for all your domains protects your domains. Most sub-domains should not be used to send email. The main exception is MX domains which must be able to send mail on their own. A number of legitimate senders delegate bulk and automated mail to servers that are not permitted by their policy. Deferring rather than rejecting based on SPF allow them to fix their SPF configuration, or you to whitelist them.

    Requiring a FQDN (Fully Qualified Domain Name) in the HELO/EHLO command. Spam often uses an unqualified hostname, address literals, ip addresses, or invalid TLD (Top Level Domain). Unfortunately some legitimate senders use invalid TLDs so it may be more appropriate to defer in this case. This can require monitoring and whitelisting to enable the mail through.

    DKIM helps with non-repudiation, but is otherwise not highly useful. My experience is that Spam is not likely to be signed. Ham is more likely to be signed so it has some value in Spam scoring. A number of legitimate senders don't publish their public keys, or otherwise improperly configure their system.

    Greylisting is helpful for servers which show some signs of misconfiguration. Servers that are properly configured will get through eventually, so I tend to exclude them from greylisting. It is useful to greylist freemailers as they do tend to be used occasionally for Spam. The delay gives some of the Spam filter inputs time to catch the Spammer. It also tends to deflect Spambots as they usually don't retry.

    Blacklists and Whitelists can help as well.

    • I have found Spamhaus to be a reliable blacklist.
    • Auto WhiteListing in the Spam filter helps smooth out the rating of frequent senders that are occasionally Spamish, or Spammers who are occasionally Hamish.
    • I find dnsl.org's whitelist useful as well.

    Spam filtering software is reasonably good at finding Spam although some will get through. It can be tricky getting the false negative to a reasonable level without increasing the false positive too much. I find Spamassassin catches most of the Spam that reaches it. I've added a few custom rules, that fit my needs.

    Postmasters should configure the required abuse and postmaster addresses. Acknowledge the feedback you get to these addresses and act on it. This allows other to help you ensure your server is properly configured and not originating Spam.

    If you are a developer, use the existing email services rather than setting up your own server. It is my experience that servers setup for automated mail senders are likely to be incorrectly configured. Review the RFCs and send properly formatted email from a legitimate address in your domain.

    End users can do a number of things to help reduce Spam:

    • Don't open it. Flag it as Spam or Delete it.
    • Ensure your system is secure and malware free.
    • Monitor your network usage, especially when you aren't using your system. If it generates a lot of network traffic when you aren't using it, it may be sending spam.
    • Turn off your computer when you aren't using it. (It won't be able to generate Spam if its turned off.)

    Domain owners / ISPs can help by limiting Internet access on port 25 (SMTP) to official e-mail servers. This will limit the ability of Spambots to send to the Internet. It also helps when dynamic addresses return names which do not pass rDNS validation. Even better is to verify the PTR record for mail servers do pass rDNS valiation. (Verify for typographical errors when configuring PTR records for your clients.)

    I have started classifying email in three categories:

    • Ham (almost always from properly configured servers, properly formatted, and commonly personal e-mail.)
    • Spam (Mostly from Spambots, but a certain percentage is from freemailers or other senders with improperly configured servers.)
    • Bacn; could be Ham or Spam (Includes a lot of mail from mailing lists and automated systems. Ham usually end up here because of DNS and/or server misconfiguration.)

    The SINGLE most effective solution I have seen is to use one of the external mail filtering services.

    I have experience with the following services at current clients. I am sure there are others. Each of these has done an excellent job in my experience. The cost is reasonable for all three.

    • Postini from Google
    • MXLogic from McAfee
    • SecureTide from AppRiver

    The services have several huge advantages over local solutions.

    1. They stop most (>99%) of the spam BEFORE it hits your internet connection and your email server. Given the volume of spam, this is a lot of data not on your bandwidth and not on your server. I have implemented one of these services a dozen times and every one resulted in a noticeable performance improvement to the email server.

    2. They also do anti-virus filtering, typically both directions. This mitigates the need to have a "mail anti-virus" solution on your server, and also keeps the virii completely

    They also do a great job at blocking spam. In 2 years working at a company using MXLogic, I have never has a false positive, and can count the legit spam messages that got through on one hand.

    No two mail environments are the same. So building an effective solution will require a lot of trial and error around the many different techniques available because the content of email, traffic, software, networks, senders, recipients and a lot more will all vary hugely across different environments.

    However I find the following block lists (RBLs) to be well suited for general filtering:

    • dbl.spamhaus.org
    • xbl.spamhaus.org
    • b.barracudacentral.org

    As already stated SpamAssassin is a great solution when configured correctly, just make sure to install as many of the addon Perl modules in CPAN as possible as well as Razor, Pyzor and DCC. Postfix works very well with SpamAssassin and it's a lot easier to manage and configure than EXIM for example.

    Finally blocking clients at IP level using fail2ban and iptables or similar for short periods of time (say one day to a week) after some events such as triggering a hit on an RBL for abusive behavior can also be very effective. Why waste resources talking to a known virus infected host right?