灰名单技术其基本假设是:病毒和垃圾邮件,通常都是一次性的,如果遇到错误,不会重试。
一些发垃圾邮件的软件,这些软件基本上都不会对邮件服务器返回的错误做出任何重试,
而只是简单的在日志里记录发送失败而已。而病毒引发的邮件风暴则更加不会识别邮件服务器返回的错误,
因为这些病毒仅仅是简单的发送邮件,发送时根本不理会服务器的状态。
greylist的设计大体上是基于一种重试的原则,即第一次看到某个IP要想给某个收件人发信,
那么它将简单的返回一个临时错误(4xx),并拒绝此请求,正常的邮件服务器都会在一段时间内(如半小时)重发一次邮件。
greylist发现还是刚才同样的ip地址和收件人,认为此ip是来自合法服务器的,予以放行。
如果是非正常的邮件,那么或者将永远也不再进行重试,或者会疯狂重试,但由于间隔太近,而遭拒绝。
因此,greylist只要设置一个合适的放行间隔,就可以在很大程度上对这类垃圾邮件有着良好的免疫能力。
greylist的一大特点就是不会丢信,正规的邮件服务器认为4xx错误只是临时性、软性的错误,
会 隔一段时间重试,因此邮件还是可以投递成功。但greylist的一大缺点即使延迟(delay),
延迟从几分钟到几个小时不等,这要看发送方服务器重试的间隔(postfix默认是1000秒)。
对于一些对邮件及时性很强的客户,greylist可能不是一个很好的选择。
这样以来,就更加完善了黑名单和白名单之间的"漏洞"。
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/382237,如需转载请自行联系原作者