Postfix利用挡信机制来消除垃圾邮件的隐患(1)


“不请自来的大宗邮件”(Unsolicited Bulk E-mail,UBE),或“不请自来的广告邮件”(Unsolicited Commercial E-mail,UCE),就是一般俗称的“垃圾邮件”(spam),寄件人没有事先征得收件人的同意,就擅自寄送大量(烦人的)邮件给一大群陌生的收件 人,这样的行为称为“滥发垃圾邮件”,而专门干这种事的人,叫做“垃圾邮件发送者”(spammer)。垃圾邮件之所以存在,是因为寄送成本便宜。邮递量 从几百人增加到几千人并不会增加太多成本,所以,来邮件发送者的目标就是尽量收集多的邮件地址。本文就介绍下Postfix利用挡信机制来消除垃圾邮件隐患,先为大家介绍下垃圾邮件的本质和由来。

垃圾邮件的本质

大部分的垃圾邮件都是商业广告,但是这些广告绝大部分都是唬人的骗局。垃圾邮件发送者才不在乎邮件内容是否能引起收件人的兴趣,而且他们的信息通常就是谎 言,若有其事的宣称收件人曾经跟他们公司有过怎样的关系,或是从天而降的伙伴那时得知你需要什么信息,所以特地写信给你云云。。。。。简直是鬼话连篇。有 些信息被刻意便造成煞有介事的样子,让你误以为有两个正在进行某种交易,谈论到他们的产品或服务有多么好,而你是因为他们不小心寄错邮件所以才会收到邮 件。。。。。。总之,他们想尽办法意图勾起你贪小便宜的心,而诱使你上当。

垃圾邮件经常提供“我不要再收到这样的邮件”的提示,比方说,要求你回信到某个邮箱,或是到某个网页填写你的邮件地址,或是点击一个含有特殊查询字符串的网址等。

然而,这样的选退机制本身通常也是骗局,垃圾邮件发送者利用这种方法来确定你的邮件地址确实有效的,而且你是属于那种比较容易受骗上当的人。换言之,如果你真的傻傻的遵照指示执行,换来的只是被更多垃圾邮件发送者知道你的邮件地址,而你也将会收到更多的垃圾邮件。

垃圾邮件发送者通常是试图隐藏他们的行踪的线索,避免被人逆向追查出来。假的回信地址与捏造的邮件标题,是最常使用的伎俩。他们在Internet上到处 搜寻没有妥善特定的系统,好让他们能够匿名寄出大量垃圾邮件。更高明的技术是入侵防备不当的系统,植入他们刻意设计的秘密relay server。此外,垃圾邮件的内容通常经过特殊编码或是安插随机字母,试图通过过滤程序的分析。

垃圾邮件发送者使用的某些伎俩,其副作用甚至必滥发垃圾邮件的行为本身更糟糕。就“漫无目标法”而言,他们不管邮件地址实际存在与否,而盲目的将垃圾邮件 送到他们认为可能存在的邮件地址。另一种“字典攻击法”则是预先收集所谓的“人名”,并从DNS查出各网域的MX服务器,集中寄出垃圾邮件到成功可能性最 高的邮件地址。两种伎俩都会无端造成受害系统的额外负担。

垃圾邮件的问题

虽然小规模的垃圾邮件似乎不是什么大问题,但是在Internet上,这却是相当严重的问题,甚至被认为是电子商务的杀手。一个为几百人或几千人提供邮件 服务的系统,如果每人每天都收到几百份垃圾邮件,那这个系统就快要瘫痪了。垃圾邮件的发送成本很低,但是垃圾邮件受害人却要付出真实的代价,这显然是不公 平的,因为垃圾邮件无端的占据了收件人的邮箱配额,浪费收件人的磁盘空间与网络带宽。

垃圾邮件带来的另一项损害是浪费技术支持人员的时间。虽然技术人员或管理员刻意帮助用户清理被塞爆的邮箱,但是,垃圾邮件的量有时候大到系统甚至无法胜任 其原来的任务。垃圾邮件的这种副作用,无异于刻意的“拒绝服务攻击”。就算没严重到这种地步,夹杂在正常邮件中的垃圾邮件还是会干扰用户的阅读,如果垃圾 邮件太多,甚至容易使人忽略重要邮件或误删正常邮件。

关于垃圾邮件的一项重要课题,在于如何处理寄给不明用户的邮件。有些邮件系统在发现收件地址无效时,当场就予以拒收(reject),邮件没机会进入队 列;有些系统则必须先收下邮件,然后才当成“无法投递的邮件”而退信,而这些退信很容易就塞满队列,进而干扰合法邮件的递送。由于垃圾邮件的回复地址通常 是无效的,所以退信不能立刻寄出去,而会在队列里待上好一阵子,在服务器尝试了多次无谓的递送之后,才会因为过期而被移除队列。

垃圾邮件发送者还有一种令人发指的恶行,他们会冒充无辜第三者的名义来滥发垃圾邮件,使得该受害者收到大量的退信通知。大量滥发垃圾邮件时,发信系统势必 时常遭到退信。当垃圾邮件发送者使用别人的open relay滥发垃圾邮件时,如果放任让退信或拒收通知函寄送到管理员邮箱,势必会引起管理员的警觉,一旦管理员关闭掉open relay或修补系统漏洞之后,他们将不能再继续使用该系统滥发垃圾邮件。因此,他们冒用无辜第三者的邮件地址为发信地址,使退信通知送到该无辜地址,借 此延后管理员发觉系统被滥用的时间。而那位被冒用名义的无辜受害人将收到上千甚至上百万封退信通知。这种情况我们称之为“背黑锅”,因为受害人并未参与滥 发垃圾邮件的恶行。在大多数情况下,摆脱黑锅的唯一办法是放弃那个地址,改用另一个新地址。

开放转发(open relay)

如果你的系统不得不服务来自Internet的客户端,你有责任避免系统成为开放转发,以免垃圾邮件发送者使用你的系统来转发垃圾邮件。open relay是一种特殊的邮件系统,这类系统不限制客户端的位置,也不查证邮件是否寄给直辖网域,就原意收下并代为转寄到最终目的地。在垃圾邮件还不泛滥的 年代,邮件系统管理员多半愿意提供转发服务,好让他们的用户不管旅行到世界哪一个角落,都能通过他们的服务器寄信。因此,开放转发服务是当时的smtp服 务器软件(sendmail 8之前得安版本)的默认配置。然而,随Internet的普及,立意很好的open relay现在反而成为垃圾邮件跳板的代名词。因为对于邮件的终点站而言,这类邮件看起来就像是直接从open relay发出的一样,垃圾邮件发送者就是利用此一特性来隐藏真实的发信地点。现在,几乎所有新一代的smtp软件都默认配置都会限定转发功能的服务对 象,而postfix当然也不例外。

倘若你的系统被当成open relay使用,最可能出现的症状是寄信效率明显变低,因为它正忙着寄送大量的垃圾邮件,无暇递送合法用户的正常邮件。如果你愿意让自己的系统成为垃圾邮 件的帮凶,你还得小心有心人利用你的open relay来攻陷其他系统。而且在你的系统转发了大量的垃圾邮件之后,你的网络将有很高的机率被列入黑名单,到那时候,将有许多站点拒收来自于你的网络的 全部邮件--包括垃圾邮件与合法邮件。

辨别垃圾邮件

只要你的系统不被当成open relay使用,至少刻意放心它不会被用来攻击其他系统,而你下一步,应该是保护自己以及你的用户,想办法尽量减少收到垃圾邮件。理论上,邮件服务器应该 能够拒收任何看起来像垃圾邮件的邮件。然而,虽然人类有能力一眼就认出垃圾邮件,但是要求计算机精确认出垃圾邮件而不发生误判,根本是不可能的。实际上, 一旦你开始拒收垃圾邮件,必定有可能将合法邮件按误当在门外。

拒收被误当成垃圾邮件的合法邮件,这种事件我们称之为误判。你的垃圾邮件抵制措施要尽量达成两个相互违背的目标;尽可能挡掉可疑的垃圾邮件和尽可能降低误 判机率。你采取的管制措施越严格,发生误判的风险就越高。要采取严格到何种程度的管理措施,取决于发生误判所造成的严重性有多高。对于完全不容许误判的环 境(比方说,专用来接收客户订单的邮件系统),只能采取最宽松的管制,也就是接收所有的垃圾邮件。相对的,如果不在乎误判或是能够事先协调好用户,则可疑 采取最严格的管制;只有事先特许的个人才能使用邮件系统,也就是所谓的“白名单”。事先批准似乎过于严苛,但是,当垃圾邮件问题已经严重到不可收拾的地 步,白名单已经成为越来越普遍的选择。

计算机要如何判断来信是否为垃圾邮件?主要判定依据有二,首先是“邮件来源”,其次是“信息内容”。前者是在收信期间检查送信方是否为已知的垃圾邮件来 源,或是其寄信行为是否符合滥发垃圾邮件的条件。后者是在收下邮件后,检查信息内容是否包含可被判定为垃圾邮件的字眼或其他条件。先不管实行细节上的困 难,只要邮件管理员能够预先设想到各种判定技术的盲点,就能够兼顾“尽可能挡掉可疑的垃圾邮件”与“尽可能降低误判机率”这两项彼此违背的目标。


相关内容