分类: LINUX
2010-04-15 16:01:49
Dspam 单独处理垃圾邮件,需要前期付出比较多的劳动,对它进行训练,纠正(错误),而为了提高垃圾邮件的拦截率和准确度,我们对dspam漏判的垃圾信进行了分析,发现有80%都能通过slockd过滤掉,根据最近1个半月的Slockd + Dspam结合的效果来看,行为+内容过滤效果相当好
1)原理
其实原理很简单,很多垃圾信的发送源ip能被一些著名RBL拦截,而部分冒充的邮件可以通过SPF拦截,另外一些由zombie发来的垃圾信可以通过greylist来阻隔一下。这些信其实都不需要经过dspam来判断,直接在slockd就干掉了,这样可以大大降低系统的负担,而且能将漏判的垃圾信杀掉。因此slockd和dspam是互补的作用。
有一点要说明,本文档只适合Slockd 0.99+dspam,早期所有版本的slockd都不适合。因为新的0.99 slockd只保留了那些能很有把握干掉垃圾邮件的模块(>99%的可信程度,例如spf),其他误判率高的模块全部删除,并且现有的插件执行顺序也是有设计思路在里面,不能随意变更的。
2)Slockd 安装配置
参考Slockd 0.99的发布文档,其实非常简单,默认解包并装好需要的软件包,启动slockd就可以了。接着配置postfix(见下文)。需要知道slockd的运行状态可以执行:
引用:
/usr/local/slockd/slockd-init status
slockd的系统日志一般在/var/log/slockd.log (支持彩色分析)
3)Dspam 配置
请参考liushaobo 老大的有关帖子,请看:
这里就不多说了,dspam不需要进行任何针对slockd的特殊配置。
4)Postfix 配置
引用:
smtpd_recipient_restrictions =permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_unlisted_recipient,
check_client_access pcre:/etc/postfix/dspam_filter_access,
check_policy_service inet:127.0.0.1:10030
配置完后postfix reload 即可,注意dspam和slockd的顺序。
5)测试与效果
登陆dspam的webUI,并且监视slockd日志:
tail -f /var/log/slockd.log (建议在Bash下看,支持彩色)
这时有些垃圾信会被slockd拦截掉,在slockd日志里红色高亮显示,这些邮件不会投递给dspam,因此在webUI 里是看不到这些邮件的。如果slockd放过一些邮件,比如来自gmail.com的,那么在dspam webUI的history里就会出现这个记录,如果错判了可以立刻纠正。
经过1个半月的测试,服务器上承担了接近10个domain的过滤任务,每天起码过滤掉500封垃圾信,有效率至少95%,每天只有几十封Good邮件,而里面会有少数是垃圾信,需要重新在webUI学习。Slockd+Dspam的好处是slockd将很多显著的垃圾信拦截在队列之外,那么dspam界面里就不会有太多信,管理员要甄别、重新训练也轻松多了。
6)未来发展
之后将发布Slockd + Dspam + 蜜罐/陷阱地址 的方法,即在自己的网站公布一些专门吸引垃圾信的邮件地址,然后自动将来发给这些地址的信转给dspam学习,提高自动学习的效率,进一步减少管理员的工作量。目前已经在内部测试了一下,暂时还看不出明显效果(主要是发给蜜罐的邮件太少了)