要击败你的敌人,你必须认识你的敌人。
什么是垃圾邮件?
就我们的目的而言,垃圾邮件是任何未经请求的批量电子消息。这些天的垃圾邮件旨在诱使毫无戒心的用户访问(通常是阴暗的)网站,在该网站上,他们将被要求购买产品或将恶意软件发送到他们的计算机,或同时访问这两者。一些垃圾邮件将直接传播恶意软件。
得知第一封垃圾邮件是1864年发送的,这可能会让您感到惊讶。这是通过Western Union电报发送的有关牙科服务的广告。这个词本身是对Monty Python的Flying Circus中的场景的引用。
在这种情况下,垃圾邮件不会指代用户订阅的邮件列表流量,即使他们后来改变了主意(或忘记了主意)但实际上尚未取消订阅。
为什么垃圾邮件是一个问题?
垃圾邮件是一个问题,因为它适用于垃圾邮件发送者。垃圾邮件通常产生的销售额(或恶意软件交付量,或两者兼而有之)足以弥补发送垃圾邮件的费用(对垃圾邮件发送者而言)。垃圾邮件发送者不考虑收件人,您和您的用户的费用。即使收到垃圾邮件的极少数用户对此做出了回应,也足够了。
因此,您需要支付带宽,服务器和管理员时间来处理传入垃圾邮件。
出于以下原因,我们阻止垃圾邮件:我们不想看到它,以减少我们处理电子邮件的成本,并使垃圾邮件的发送者更加昂贵。
垃圾邮件如何运作?
垃圾邮件的发送方式通常不同于正常的合法电子邮件。
垃圾邮件发送者几乎总是想掩盖电子邮件的来源,因此典型的垃圾邮件将包含虚假的标题信息。该From:
地址通常是假的。一些垃圾邮件包含伪造的Received:
行,以掩盖踪迹。通过开放的SMTP中继,开放的代理服务器和僵尸网络传递大量垃圾邮件。所有这些方法使确定谁是垃圾邮件变得更加困难。
一旦进入用户的收件箱,垃圾邮件的目的就是诱使用户访问所宣传的网站。在那里,用户将被诱使进行购买,或者该站点将尝试在用户的计算机上安装恶意软件,或两者都安装。或者,垃圾邮件将要求用户打开包含恶意软件的附件。
如何停止垃圾邮件?
作为邮件服务器的系统管理员,您将配置邮件服务器和域,以使垃圾邮件发送者更加难以将垃圾邮件传递给用户。
我将介绍专门针对垃圾邮件的问题,并且可能会跳过与垃圾邮件没有直接关系的事情(例如加密)。
不要运行开放式继电器
邮件服务器最大的缺点是运行一个开放的中继,即SMTP服务器,它将接受任何目的地的邮件并将其继续发送。垃圾邮件发送者喜欢开放中继,因为它们实际上保证了传递。当垃圾邮件发送者执行其他操作时,它们将承担传递邮件(并重试!)的负担。他们使垃圾邮件便宜。
开路继电器也造成反向散射问题。这些是中继已接受但无法传递的消息。然后,开放中继将向From:
包含垃圾邮件副本的地址发送退回邮件。
- 配置您的邮件服务器以仅在您自己的域上接受端口25上的传入邮件。对于大多数邮件服务器,这是默认行为,但是您至少需要告诉邮件服务器您的域是什么。
- 通过从网络外部向SMTP服务器发送邮件(其中
From:
和和To:
地址都不在您的域内)来测试系统。该消息应被拒绝。(或者,使用MX Toolbox之类的在线服务来执行测试,但是请注意,如果您的邮件服务器未通过测试,某些在线服务会将您的IP地址提交到黑名单中。)
拒绝任何看起来可疑的东西
各种错误配置和错误可能会提示输入的邮件很可能是垃圾邮件或不合法。
- 标记为垃圾邮件或拒绝IP地址没有反向DNS(PTR记录)的邮件。对于IPv4连接,比对IPv6连接,要更严格地处理缺少PTR记录的问题,因为许多IPv6地址还没有反向DNS,并且可能要持续数年,直到DNS服务器软件能够更好地处理这些潜在的非常大的区域。
- 拒绝其发件人或收件人地址中的域名不存在的邮件。
- 拒绝不对发件人或收件人域使用完全限定域名的邮件,除非它们发自您的域之内并且打算在您的域内传递(例如,监视服务)。
- 拒绝另一端不发送
HELO
/的连接EHLO
。
- 拒绝其中
HELO
/ EHLO
是的连接:
- 不是完全限定的域名也不是IP地址
- 明显错误(例如您自己的IP地址空间)
- 拒绝未经授权使用流水线的连接。
验证您的用户
到达服务器的邮件应从入站邮件和出站邮件的角度来考虑。入站邮件是最终到达目的地域的到达SMTP服务器的所有邮件;出站邮件是到达您的SMTP服务器的任何邮件,这些邮件将在传送之前先转移到其他地方(例如,它要发送到另一个域)。入站邮件可以由垃圾邮件过滤器处理,并且可能来自任何地方,但必须始终发给用户。该邮件无法通过身份验证,因为无法向可能向您发送邮件的每个站点提供凭据。
必须验证出站邮件,即将要中继的邮件。无论是来自Internet还是来自网络内部,都是这种情况(尽管在可行的情况下,应限制允许使用邮件服务器的IP地址范围);这是因为垃圾邮件监听程序可能正在您的网络中运行。因此,请配置SMTP服务器,以使绑定到其他网络的邮件将被丢弃(中继访问将被拒绝),除非对该邮件进行了身份验证。更好的是,对入站和出站邮件使用单独的邮件服务器,对入站邮件根本不进行中继,也不允许对出站邮件进行未经身份验证的访问。
如果您的软件允许这样做,则还应根据经过身份验证的用户过滤邮件;如果邮件的发件人地址与通过身份验证的用户不匹配,则应将其拒绝。不要静默更新发件人地址;用户应注意配置错误。
您还应该记录用于发送邮件的用户名,或向其中添加一个标识头。这样,如果确实发生了滥用行为,则您有证据并知道使用哪个帐户进行欺诈。这使您能够隔离受感染的帐户和有问题的用户,这对于共享主机提供商特别有价值。
过滤流量
您希望确定离开网络的邮件实际上是由(经过身份验证的)用户发送的,而不是由漫游器或外部人员发送的。具体操作方式取决于所管理的系统类型。
通常,如果您是公司网络,则最好阻止端口25、465和587(SMTP,SMTP / SSL和提交)上除出口邮件服务器之外的所有端口的出口流量。这样一来,网络上运行恶意软件的漫游器就无法从网络发送垃圾邮件,以在Internet上打开中继或直接向最终MTA寻求地址。
热点是一种特殊情况,因为来自它们的合法邮件来自许多不同的域,但是(由于SPF等原因)“强制”邮件服务器是不合适的,用户应该使用自己域的SMTP服务器提交邮件。这种情况要困难得多,但是要考虑使用解决方案,其中使用特定的公共IP或IP范围来处理来自这些主机的Internet流量(以保护您的站点信誉),限制SMTP流量和深度数据包检查。
从历史上看,垃圾邮件发送者主要在端口25上发布垃圾邮件,但是没有任何阻止它们将587端口用于相同目的的情况,因此更改用于入站邮件的端口具有可疑的价值。但是,RFC 2476建议使用端口587进行邮件提交,并允许在邮件提交(到第一个MTA)和邮件传输(在MTA之间)之间分开,这在网络拓扑中是不明显的。如果需要这种分离,则应执行此操作。
如果您是ISP,VPS主机,托管服务提供商或类似的提供商,或者正在提供供访问者使用的热点,则对于使用自己的域发送邮件的用户而言,阻止出口SMTP流量可能会出现问题。在公共热点以外的所有情况下,您都应要求需要出站SMTP访问的用户,因为他们正在运行邮件服务器来专门请求它。让他们知道滥用投诉最终将导致该访问被终止以保护您的声誉。
动态IP以及用于虚拟桌面基础结构的IP绝对不应具有出站SMTP访问权限,除非希望这些节点使用特定的邮件服务器。这些类型的IP 也应出现在黑名单中,并且您不应尝试为其建立声誉。这是因为它们极不可能运行合法的MTA。
考虑使用SpamAssassin
SpamAssassin是一种邮件过滤器,可用于根据邮件头和内容识别垃圾邮件。它使用基于规则的评分系统来确定邮件为垃圾邮件的可能性。分数越高,则该邮件越有可能是垃圾邮件。
SpamAssassin还具有一个贝叶斯引擎,可以分析反馈到其中的垃圾邮件和火腿(合法电子邮件)样本。
SpamAssassin的最佳实践不是拒绝邮件,而是将其放入“垃圾邮件”或“垃圾邮件”文件夹。可以设置MUA(邮件用户代理),例如Outlook和Thunderbird,以识别SpamAssassin添加到电子邮件中的标头并适当地归档它们。误报肯定会发生,而且确实会发生,尽管这种情况很少见,但当CEO碰到时,您会听到的。如果仅将邮件传递到“垃圾邮件”文件夹而不是直接拒绝,则对话将变得更好。
SpamAssassin几乎是一种,尽管存在一些替代方法。
- 安装SpamAssassin并使用为其规则配置自动更新
sa-update
。
- 考虑在适当的地方使用自定义规则。
- 考虑设置贝叶斯过滤。
考虑使用基于DNS的黑洞列表和信誉服务
DNSBL(以前称为RBL,或实时黑洞列表)提供与垃圾邮件或其他恶意活动相关的IP地址列表。这些由独立的第三方根据自己的标准运行,因此请仔细研究DNSBL所使用的列出和删除列表条件是否符合组织接收电子邮件的需求。例如,一些DNSBL具有严厉的除名政策,这使被意外列出的人很难被删除。IP地址在一段时间内未发送垃圾邮件后,其他人会自动删除,这是比较安全的。大多数DNSBL是免费使用的。
信誉服务与此类似,但声称可以通过分析与任何给定IP地址有关的更多数据来提供更好的结果。大多数信誉服务都需要订阅付款或购买硬件,或同时购买两者。
有数十种DNSBL和信誉服务可用,尽管我使用和推荐的一些更知名和有用的服务包括:
保守清单:
激进名单:
如前所述,还有许多其他功能可能会满足您的需求。我最喜欢的技巧之一是查找发送了垃圾邮件的IP地址,该垃圾邮件通过多个DNSBL来查看,其中哪个将被拒绝。
- 对于每个DNSBL和信誉服务,请检查其用于列出和删除IP地址的策略,并确定它们是否符合组织的需求。
- 确定适合使用该服务后,将DNSBL添加到SMTP服务器。
- 考虑为每个DNSBL分配一个分数并将其配置为SpamAssassin,而不是SMTP服务器。这减少了误报的影响;这样的邮件将被发送(可能发送到垃圾邮件/垃圾邮件)而不是被退回。折衷方案是您将传递大量垃圾邮件。
- 或者,当IP地址位于较为保守的列表之一时,完全拒绝,并在SpamAssassin中配置更具攻击性的列表。
使用SPF
SPF(发件人策略框架;RFC 4408和RFC 6652)是一种通过声明授权给指定域名的Internet主机交付邮件来防止电子邮件地址欺骗的方法。
- 配置您的DNS,以与授权的外发邮件服务器一起声明SPF记录,并
-all
拒绝所有其他邮件。
- 配置您的邮件服务器以检查传入邮件的SPF记录(如果存在),并拒绝未通过SPF验证的邮件。如果域没有SPF记录,请跳过此检查。
调查DKIM
DKIM(域密钥已标识邮件;RFC 6376)是一种在邮件消息中嵌入数字签名的方法,可以使用在DNS中发布的公钥进行验证。它在美国受专利保护,这减缓了它的采用。如果邮件在传输过程中被修改,DKIM签名也可能会中断(例如,SMTP服务器有时可能会重新打包MIME邮件)。
- 考虑使用DKIM签名对您的外发邮件签名,但是请注意,即使在合法邮件上,签名也可能无法始终正确验证。
考虑使用灰名单
灰名单是一种技术,其中SMTP服务器对传入的邮件发出临时拒绝,而不是永久拒绝。在几分钟或几小时后重试传递后,SMTP服务器将接受该消息。
灰名单可以阻止某些垃圾邮件软件,该软件的功能不足以区分临时拒绝和永久拒绝,但对于发送到开放中继的垃圾邮件或功能更强大的垃圾邮件软件无济于事。它还引入了用户可能无法总是忍受的传递延迟。
- 考虑仅在极端情况下使用灰名单,因为它会严重干扰合法的电子邮件流量。
考虑使用不列出
不列出是一种配置MX记录的方法,以使最高优先级(最低优先级编号)记录没有正在运行的SMTP服务器。这依赖于以下事实:许多垃圾邮件软件只会尝试第一个MX记录,而合法的SMTP服务器会按优先级升序尝试所有MX记录。一些垃圾邮件软件还尝试违反RFC 5321的规定直接发送到最低优先级(最高优先级编号)MX记录,因此也可以将其设置为没有SMTP服务器的IP地址。据报道这是安全的,尽管与其他任何东西一样,您应该首先进行仔细测试。
- 考虑将优先级最高的MX记录设置为指向在端口25上不应答的主机。
- 考虑将优先级最低的MX记录设置为指向在端口25上不应答的主机。
考虑垃圾邮件过滤设备
将垃圾邮件过滤设备(例如Cisco IronPort或梭子鱼垃圾邮件和病毒防火墙(或其他类似设备))放置在现有SMTP服务器之前,以减少减少收到的垃圾邮件的工作量。这些设备已预先配置有DNSBL,信誉服务,贝叶斯过滤器和我介绍的其他功能,并由其制造商定期更新。
考虑托管电子邮件服务
如果对您(或您的IT员工过度工作)来说太麻烦了,您始终可以让第三方服务提供商为您处理电子邮件。诸如Google的Postini,Symantec MessageLabs电子邮件安全性(或其他)之类的服务将为您过滤邮件。其中一些服务还可以满足法规和法律要求。
系统管理员应向最终用户提供哪些有关打击垃圾邮件的指导?
最终用户应与垃圾邮件作斗争的绝对第一件事是:
不要回应垃圾邮件。
如果看起来很有趣,请不要单击网站链接,也不要打开附件。不论报价看起来多么诱人。伟哥是不是便宜,你是不是真的担心会不会有人拍裸照,并没有在尼日利亚亿$ 15美元或只是从人谁采取的钱投到别的地方没到垃圾邮件做出回应。
如果您看到垃圾邮件,请根据您的邮件客户端将其标记为“垃圾邮件”或“垃圾邮件”。
如果您实际注册接收邮件而只是想停止接收,请勿将邮件标记为垃圾邮件。而是使用提供的取消订阅方法取消订阅邮件列表。
定期检查您的垃圾邮件/垃圾邮件文件夹,以查看是否有合法邮件通过。将其标记为“不是垃圾邮件/不是垃圾邮件”,并将发件人添加到您的联系人中,以防止将来将其邮件标记为垃圾邮件。