依据客户端判别垃圾邮件

这里所谓的“客户端”是指在smtp交互过程中的寄信方。如你所知,在smtp对话过程中,服务器端(收信方)可得到对方的ip地址、主机名称与邮件地 址。这些信息片断都可以用来与一组已知的黑名单比对,借此决定应该接收还是拒收邮件。被列在黑名单中的系统,有可能真的是垃圾邮件发送者拥有的主机,但也 有可能是无辜的open relay系统,目前,Internet上已经很难找到“刻意为了提供转发服务而架设的服务器主机”,大部分的open relay多半是倒霉的、无辜的或无知的管理员所架设的系统,open relay并非他们的本意。但不管是哪一种情况,如果你发现某特定对象经常给你寄垃圾邮件,你可以考虑将对方列入黑名单。不过,依据ip地址、主机名称或 邮件地址来判定垃圾邮件,最大的问题是这类信息都可被假造。虽然伪造ip地址需要非常高的技术,但是信封地址是很容易假造的。

dns-based黑名单

为了抑止Internet上垃圾邮件的日益泛滥,各种自发性的抵制技术与网络服务应运而生,其中一类颇有争议的技术称为“dns-based黑名单”或 “实时黑名单”。这类技术的原理,是将已知的open relay或垃圾邮件来源记录在一个动态数据库,并通过DNS系统开放给MTA server查询。他们的构想是抢先一步提供预判结果给合法的MTA server,减轻邮件管理员自己维护黑名单的负担。以往,垃圾邮件发送者还会使用自己的系统来滥发垃圾邮件,或是搜寻open relay来转发垃圾邮件;近年来,这群人的行为越来越猖狂,他们几乎已经不再使用自己的系统发垃圾邮件,而是寻找有机可乘的受害系统,植入可让他们滥发 垃圾邮件的代理软件,而被胁持的系统能够甚至可能被用来发动DOS攻击。有些机构的DNSBL专门提供这类非自愿的垃圾邮件转发的查询服务。

通常,RBL系统的查询服务是通过dns提供的。对于每一个被认定为垃圾邮件来源的ip地址,在rbl所有者的网域空间里都有一个对应的PTR记录, MAT在收信期间向RBL系统查询客户端的ip地址,借此决定应该接收还是拒收邮件。举例来说,假设有一家(虚构的)RBL服务机构,他们的网域名称为 nospam.example.com,位于192.168.254.31的主机已经被他们认定为垃圾邮件来源,于是,nospam公司在他们的网域空间 里创建一个dns ptr记录,31.254.168.192。nospam.example.com当192.168.254.31主机连接到你的postfix系统, postfix可查询该ip地址是否在nospam.example.com网域下有一个PRT记录,如果有,表示该ip地址已被认定为垃圾邮件来源, postfix可当场拒绝该主机的寄信要求。

在你决定使用DNSBL服务之前,必须非常谨慎小心。有许多被用来转发垃圾邮件的open relay系统,它们本身也提供服务给一般的正常用户。你虽然挡掉了来自这些系统的垃圾邮件,但也挡掉了源自同系统能够的合法邮件。此外,将是否收信的决 定权交给无责任的第三方,由别人决定谁能够谁不能够寄信给你的用户,是一种推卸责任的行为。但如果你真的深受垃圾邮件之害,在你研究出适当的抵制方法之 前,DNSBL服务确实能够帮上忙。如果你决定使用某家公司的服务,请务必仔细检视他们的服务条款与政策。再一次的,你在“尽可能挡掉可疑的垃圾邮件”与 “尽可能降低误判机率”之间取得平衡点。

依据内容判别垃圾邮件

除了以客户端判别条件之外,邮件内容通常也可作为供判别垃圾邮件的特征。垃圾邮件时常出现某些特定的广告语。依据邮件内容来辨识垃圾邮件,并非没有误判的 可能。想像一下,如果你经常收到大量关于低率房贷的垃圾邮件,你可能会想要挡掉含有类似“lomorratetgagewest”词组的邮件。当然,这样 确实可挡掉不少垃圾邮件,但是,你可能也挡掉了银行同意核发低利率贷款给你的朋友的通知信。

判别技术的困难处

不管以客户端还是邮件内容作为判别依据,垃圾邮件发送者总是有办法找到办法避过你的抵制措施。合法邮件与垃圾邮件之间,总是一有段难以理清的模糊地带。当你努力收集黑名单的同时,垃圾邮件发送者也正在寻找新的代罪羔羊(这种无辜系统的数量之多,远超过你的想像)。

你可能发现,在你收到的垃圾邮件中,有许多具有相同的回信地址。当然,你确实可使用回信地址来阻挡垃圾邮件,但是,他们多半采用“边打边跑”战术。他们先 向免费邮件网站申请一个邮箱,然后使用该地址送出千万封垃圾邮件,过了几天之后,他们便放弃原来的邮箱,另外再申请一个新邮箱。所以,被你列入黑名单的回 信地址,过不了几天就不会再出现了。

就算是专门的内容过滤系统,也必须随垃圾邮件发送者的干扰伎俩而调整。举例来说,很多滤信软件会挡掉正文含有 “viagra”字样的邮件,于是,垃圾邮件发送者便将HTML注释标记嵌在这类关键词句中--将“viagra"改成“vi[:alpha:]/ reject suspicious embedded html comments

postfix的挡信机制

本章的其余内容讨论阻挡垃圾邮件的技术层面的问题,解释postfix提供的UBE检查机制。按照UBE的判别依据,postfix提供的检查机制可分四大类:

客户端判别规则

postfix提供四种检查客户端身份的参数,每一种参数都可设定一系列决定如何响应客户端的限制条件。如果条件成立,可能的响应动作包括ok(收下邮 件)与reject(当场拒收)。例如,你可疑设定一条检查规则。挡掉来自特定ip地址的邮件。相对的,如果条件不成立,则由后续条件继续处理(这种结果 通常以DUNNO表示)。

语法检查参数

postfix内置一系列专用检查语法的参数,可用来核验客户端的smtp对话内容是否符合标准规定。由于垃圾邮件发送者通常不遵守标准规定,则对于不符合规定的客户端或邮件,你可以要求postfix予以拒收。有些语法检查参数也可作为客户端判别规则。

内容检查

你可以将一组描述垃圾邮件特征的正则表达式写在查询表中,要求postfix依据样式表来检查邮件的标题与正文内容。

自定义过滤规则

你可将一系列内置的限制条件组织成新的过滤规则。

设定postfix的垃圾邮件标识参数时,你还必须指定如何处理被辨认出来的垃圾邮件。一般而言,postfix可以当场拒收,或是收下邮件但是暂存在另一个队列,或是交给外部过滤程序去处理。

通过上文的详细介绍,我们都知道到底是如何辨别垃圾邮件和如何利用postfix的挡信机制来消除垃圾邮件的隐患。


相关内容