设为首页 收藏本站
查看: 2587|回复: 0

[经验分享] Postfix邮箱(八):安装反垃圾邮件系统Spam Locker

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-22 08:33:10 | 显示全部楼层 |阅读模式
说明:Spam Locker是一款开放源代码,并以GPL授权发布,起源于APF技术,以SMTP行为识别为核心的反垃圾邮件系统。使用Perl语言撰写;
Spam Locker使用了多种目前反垃圾邮件领域的领先技术,比如本地黑白名单、灰名单技术,多RBL查询技术等等;
这些众多厂商引以为豪的反垃圾邮件技术,现在都可以通过Spam Locker免费使用;
Spam Locker是smtp阶段(邮件没收下来时),spamassassin是内容过滤阶段(邮件已经收下来了),所以2者可以混用。
参考:
http://wiki.extmail.org/spam_locker

1、安装Slockd
Spam Locker是Extmail团队设计开发的,因此在其官方YUM中下载安装:
也可以从本文附件中下载:
1
[iyunv@mail ~]# rpm -ivh http://mirror.extmail.org/yum/em ... .99-1hzq.noarch.rpm



暂时关闭SPF插件功能
1
2
[iyunv@mail ~]# vi /usr/local/slockd/config/plugin.cf
spf_plugin = no



设置DNS,Spam Locker很大程度依赖dns库,必须安装Net::DNS库才能正常工作(安装amavisd时已装上)
1
[iyunv@mail ~]# echo "nameserver 202.101.224.68" >> /etc/resolv.conf




2、启动
1
2
3
4
5
6
7
8
9
[iyunv@mail ~]# /usr/local/slockd/slockd-init start
[iyunv@mail ~]# echo "/usr/local/slockd/slockd-init start" >> /etc/rc.d/rc.local
[iyunv@mail ~]# ps aux|grep slockd
root     33573  0.0  0.6 137316  6428 ?        SNs  16:00   0:00 slockd (master)
root     33574  0.5  1.2 165324 12432 ?        SN   16:00   0:00 slockd (idle)
root     33575  0.5  1.2 165328 12416 ?        SN   16:00   0:00 slockd (idle)
root     33591  0.0  0.0 103256   848 pts/1    S+   16:01   0:00 grep slockd
[iyunv@mail tools]# netstat -tnlp|grep 10030
tcp        0      0 127.0.0.1:10030             0.0.0.0:*                   LISTEN      33573/slockd (maste




3、查看日志
1
2
3
[iyunv@mail ~]# tail /var/log/slockd.log
starting child 33574
starting child 33575




4、测试slockd
1
2
3
[iyunv@mail ~]# cd /usr/local/slockd/tools
[iyunv@mail tools]# perl policy_sig -h localhost -p 10030 --helo FOOBAR --ip 192.168.0.1 --from test@foo.com --to test@bar.com
action=554 blocked using zen.spamhaus.org, see http://bl.extmail.org/cgi/rbl?192.168.0.1



返回554表示slockd正常工作了,查看日志;
1
2
3
4
5
6
[iyunv@mail tools]# tail /var/log/slockd.log
starting child 33697
12-05 16:24:45 [33693]: socket error: 没有那个文件或目录  #这个错误暂时没查到原因
12-05 16:24:45 [33693]: [554 blocked using zen.spamhaus.org, see http://bl.extmail.org/cgi/rbl?192.168.0.1 ,from=<test@foo.com> to=<test@bar.com> helo=<FOOBAR> ip=<192.168.0.1> client=<>]
12-05 16:24:45 [33693]: Policy mode: Nope
12-05 16:24:45 [33693]: [Session ended and closing socket]



打开报错中的url查看原因:
http://bl.extmail.org/cgi/rbl?192.168.0.1
1
2
3
4
5
192.168.0.1 已被APF server或slockd 的RBL拦截
您的主机发送了过量的垃圾邮件
您的主机是开放中继(open-relay)
您的主机已被病毒或蠕虫感染
您的主机配置不正确或不符合RFC规定



启用SPF插件并重启进程:
1
2
3
4
[iyunv@mail ~]# vi /usr/local/slockd/config/plugin.cf
spf_plugin = yes
[iyunv@mail ~]# /usr/local/slockd/slockd-init stop
[iyunv@mail ~]# /usr/local/slockd/slockd-init start



再次测试则会报551:
1
12-05 16:03:22 [33574]: [551 see http://bl.extmail.org/cgi/why?spf=test@foo.com ,from=<test@foo.com> to=<test@bar.com> helo=<FOOBAR> ip=<192.168.0.1> client=<>]



打开报错中的url查看原因:
http://bl.extmail.org/cgi/why?spf=test@foo.com
1
2
3
4
您没有获得以 foo.com 名义发送邮件的授权
可能的拦截原因如下:
您的IP地址没获得Sender域名SPF记录所规定的授权
您的IP地址没获得Sender域名MSPF记录所规定的授权




5、配置postfix集成Slockd
1
2
3
4
5
6
[iyunv@mail tools]# vi /etc/postfix/main.cf
#在收件人限制选项最后加上
smtpd_recipient_restrictions =
     ……,
     check_policy_service inet:127.0.0.1:10030
[iyunv@mail tools]# service postfix reload




6、插件介绍
(1)插件配置
插件执行顺序是按照插件在配置文件plugin.cf中的位置决定的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[iyunv@mail tools]# vi /usr/local/slockd/config/plugin.cf
# spamtrap插件:垃圾邮件发件人地址的收集陷阱
spamtrap_plugin = yes
spamtrap_list = config/spamtrap_list
spamtrap_action = FILTER spamtrap:
# 本地黑白名单插件
localctrl_plugin = yes
#黑名单、白名单(同时控制收件和发件)
localctrl_bl = config/blacklist
localctrl_wl = config/whitelist
#发件人黑白名单
localctrl_sender_bl = config/sender_blacklist
localctrl_sender_wl = config/sender_whitelist
#收件人黑白名单
localctrl_recip_bl = config/recip_blacklist
localctrl_recip_wl = config/recip_whitelist
# SPF记录检测插件
spf_plugin = no
# 拒绝代码是硬错误还是软错误,NO为硬错误5xx
spf_soft_reject = no
# 合法则pass,返回OK,不合法则错误,如不确定则返回DUNNO
spf_default_action = DUNNO
# 多路RBL查询插件
dnsbl_plugin = no
# 拒绝代码是硬错误还是软错误,NO为硬错误5xx
dnsbl_soft_reject = no
# rbl 服务器列表
# 少数RBL可能拦截过于敏感,建议只使用以下两个RBL或者不使用
dnsbl_server_list =
  zen.spamhaus.org,
  bl.spamcop.net,
# 灰名单技术插件
greylist_plugin = yes
# 存储记录的数据库路径
greylist_db = /var/lib/greylist.db
# 延迟时间
greylist_delay = 60




(2)本地黑白名单插件说明:

过滤规则:
    邮件进来---提取发件人地址信息---whitelist---blacklist--sender_whitelist--
    --sender_blacklist----进入用户邮箱或下一处理过程
注意事项:
    blacklist\whitelist只支持域名,不能设单个邮箱账号或IP
    recipient_whitelist除了跳开Slockd的检测外,还连带跳开Amavisd/Dspam及Clamav等;
    建议不要在recipient_whitelist 里放置本地域;
    建议不要随便将容易被假冒的域,例如163等,放到sender_whitelist里。

(3)多路RBL查询插件说明:
slockd的RBL功能经常把大型运营商邮箱判断为垃圾并退回给发件人,
把slockd的RBL服务禁用掉,使用dspam进行垃圾邮件的过滤;
默认自带了很多RBL服务器地址,如需要使用也只建议使用以下两个:
  zen.spamhaus.org,
  bl.spamcop.net,

(4)灰名单技术挂件说明:
灰名单技术设计大体上是基于一种重试的原则,即第一次看到某个IP要想给某个收件人发信,
那么它将简单的返回一个临时错误(4xx),并拒绝 此请求,正常的邮件服务器都会在一段
时间内(如半小时)重发一次邮件。greylist发现还是刚才同样的ip地址和收件人,认为此
ip是来自合法服务器 的,予以放行。如果是非正常的邮件,那么或者将永远也不再进行重试,
或者会疯狂重试,但由于间隔太近,而遭拒绝。因此,greylist只要设置一个合适 的放行间隔,
就可以在很大程度上对这类垃圾邮件有着良好的免疫能力。greylist的一大特点就是不会丢信,
正规的邮件服务器认为4xx错误只是临时 性、软性的错误,会隔一段时间重试,因此邮件还是可以投递成功。

7、测试Slockd黑白名单
(1)测试发件人黑名单
说明:postfix会放过本地域,测试拒绝外部邮箱发件人:
1
2
[iyunv@mail ~]# vi /usr/local/slockd/config/sender_blacklist
ywzhou@eplantstore.com



说明:如果你搭建的是测试邮箱服务器,没有公网域名,可以在内网再搭建一个邮箱服务器,当作外部邮箱进行测试,在我以后的文档中也是必要的。

使用ywzhou@eplantstore.com邮箱给test@yourmail.com发封邮件
会收到退信提示:
1
Recipient address rejected: blocked by localctrl, see http://bl.extmail.org/cgi/why?localctrl



查看slockd日志:
1
2
3
4
[iyunv@mail ~]# tail /var/log/slockd.log
12-08 10:52:41 [20849]: [504 blocked by localctrl,  see http://bl.extmail.org/cgi/why?localctrl ,
  from=<ywzhou@eplantstore.com> to=<test@yourmail.com> helo=<mail.eplantstore.com> ip=<10.188.1.86>
  client=<unknown>]



结论:可以看到邮件成功被本地黑名单插件localctrl拒绝了。

(2)测试收件人黑名单
1
2
[iyunv@mail ~]# vi /usr/local/slockd/config/receip_blacklist
test@yourmail.com



使用ywzhou@eplantstore.com邮箱给test@yourmail.compostmaster@yourmail.com分别发封邮件,
结果test收不到,postmaster可以收到,
说明收件人黑名单成功阻止了本地域某邮箱账号接收外部邮件;
使用postmaster@yourmail.comtest@yourmail.com发封邮件,
结果test可以收到,因为postfix信任本地域(mynetwork)邮箱,
要做到本地邮箱互发限制,可以使用postfix自带的访问表,以后在“限制”章节会讲。

结论:表明slockd已经和postfix整合了,可以使用黑名单阻止外部发件人以及阻止本地邮箱接收外部邮件。
百度云附件:slockd-0.99.zip   



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38314-1-1.html 上篇帖子: Postfix邮箱(七):测试Amavisd-new+SpamAssassin+Clamav 下篇帖子: Postfix邮箱(九):安装反垃圾邮件系统DSPAM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表