更新时间:2022-08-25 13:00
实时黑名单列表(Realtime Blackhole List),即实时黑名单技术,简称RBL。实时黑名单实际上是一个可供查询的IP地址列表,通过DNS的查询方式来查找一个IP地址的A记录是否存在来判断其是否被列入了该实时黑名单中。在该列表中的IP地址即表示对外发布过垃圾邮件。因此,它像病毒定义文件一样被垃圾邮件过滤器用于过滤由该列表中发出的垃圾邮件。
为了有效地拒绝来自恶意的垃圾邮件来源站点和/或被利用的垃圾邮件来源站点所发来的垃圾邮件,最直接和有效的办法就是拒绝该来源的连接。
虽然从理论上说,这样也有可能会拒绝掉来自该站点的正常邮件,从而造成邮件不能正常的投递,但是有以下理由支持这种做法:
1. 接收任何来源的邮件则有可能导致邮箱中充满了垃圾邮件,影响了邮件服务器的性能和容量以及带来高额的带宽费用,而且导致了收取邮件的人浪费了不必要时间处理这些垃圾邮件;
2. 通过程序过滤垃圾邮件不但从技术上不能保证完全可靠,而且会对服务器带来很多负载;
3. 通过人工一一分拣邮件基本上是不可行的,不但从工作量上不可承受,而且有可能会带来隐私问题;
4. 通过拒绝恶意的垃圾邮件站点的连接,可以使垃圾邮件的实际发送量下降,从而缩小了垃圾邮件市场和压制了垃圾邮件的发展;
5. 通过拒绝被利用的垃圾邮件来源站点的连接,可以使该站点的管理员能充分认识到被利用所带来的后果,从而消除被利用的条件。
综合以上利弊,可以认为,通过将确认后的垃圾邮件来源站点(无论是否是恶意与否)放入一个黑名单,然后通过发布该名单来保护邮件服务器不受到黑名单中站点的侵扰确实是一个对抗日益严重的垃圾邮件的行之有效的方法。
RBL的工作机制如图1所示,具体步骤如下:
(1)SMTP 服务器接收到连接请求 ;
(2)对连接 IP 进行逆转 ;
(3)对 RBL 服务器进行查询 ;
(4)如果查询得到结果,则拒绝该连接 ;
(5)如果查询没有得到结果,则继续进行连接。
实时黑名单实际上是一个可供查询的 IP 地址列表,通过 DNS 的查询方式来查找一个 IP 地址的 A 记录是否存在来判断其是否被列入了该实时黑名单中。举例来说,比如如果要判断一个地址 111.222.333.444 是否被列入了黑名单,那么使用黑名单服务的软件会发出一个 DNS 查询到黑名单服务器(如cbl.anti-spam.org.cn ) , 该 查 询 是 这 样 的 :444.333.222.111.cbl.anti-spam.org.cn 是否存在 A 记录?如果该地址被列入了黑名单,那么服务器会返回一个有效地址的答案。按照惯例,这个地址是 127.0.0.2(之所以使用这个地址是因为 127/8 这个地址段被保留用于打环测试,除了 127.0.0.1 用于打环地址,其它的地址都可以被用来做这个使用,比如有时候还用 127.0.0.3 等。)。如果没有列入黑名单,那么查询会得到一个否定回答。
有时候,由于邮件服务器非常繁忙,而且这个查询结果是不缓存的,那么对黑名单服务器的查询会非常多,导致查询响应迟缓。在这种情况下,可以使用 DNS 的区域传输,将黑名单服务器的数据传输到本地的 DNS 服务器,然后对本地的 DNS 服务器进行查询即可。区域传输可以设置为手工更新、定时更新或自动更新等方式,这依赖于你的应用。
黑名单服务的提供和黑名单的维护由黑名单服务提供者来提供和维护。所以该名单的权威性和可靠性就依赖于该提供者。通常多数的提供者都是比较有国际信誉的组织,所以对于该名单来说还是可以信任的。
以 Postfix为例说明 RBL 的使用。
Postfix 1.x
(1)要先用 maps_rbl_domains 来定义 RBL 表:
maps_rbl_domains = cbl.anti-spam.org.cn,
cdl.anti-spam.org.cn
(2)然后在过滤条件中(如 smtpd_recipient_restrictions )使用reject_maps_rbl 来拒绝黑名单连接:
smtpd_recipient_restrictions = ... reject_maps_rbl,...
Postfix 2.x
直 接 在 过 滤 条 件 中 ( 如 smtpd_recipient_restrictions ) 使 用reject_rbl_client 来拒绝黑名单连接:
smtpd_recipient_restrictions = reject_rbl_client cbl.anti-spam.org.cn,
reject_rbl_client cdl.anti-spam.org.cn