ExtMail反垃圾邮件-Spam Locker的配置与安装

来源: LUPA开源社区
发布时间: 2008-06-25 11:18 版权申明

字体:


文章来源于http://www.lupaworld.com

反垃圾邮件-Spam Locker的配置与安装

安装需求与准备工作

安装需求

支持Linux / BSD或Solaris,HP-UX等操作系统
Perl 5.6+,建议Perl 5.8.0以上
Net::DNS
POSIX
Fcntl
Digest::MD5
Digest::SHA1
Digest::HMAC
Net::IP

解包软件

cp -r src/slockd-0.083 /usr/local/slockd 

安装相关Perl模块

由于slockd是以smtp特征检测为主的软件,因此很大程度依赖dns库,必须安装Net::DNS库才能正常工作。除此外还有诸如HMAC,MD5及SHA1, Net-IP等模块。

执行以下命令安装需要的模块,注意:这些模块在上文安装Amavisd-new时已经安装过,这里重复是为了强调slockd依赖这些软件包

rpm -ivh RPMS/perl-Digest-SHA1-2.07-5.i386.rpm
rpm -ivh RPMS/perl-Digest-HMAC-1.01-1hzq.i386.rpm
rpm -ivh RPMS/perl-Net-IP-1.24-1hzq.i386.rpm
rpm -ivh --nodeps RPMS/perl-Net-DNS-0.57-1hzq.i386.rpm
附x86_64系统:

rpm -ivh RPMS/perl-Digest-SHA1-2.07-5.x86_64.rpm
rpm -ivh RPMS/perl-Digest-HMAC-1.01-13.noarch.rpm
rpm -ivh RPMS/perl-Net-IP-1.25-1.el4.rf.noarch.rpm
rpm --nodeps -ivh RPMS/perl-Net-DNS-0.59-1.fc3.rf.x86_64.rpm


配置resolv.conf

请确认/etc/resolv.conf里的dns服务器是离你的邮件服务器最近,速度最快的dns server,slockd很依赖dns的好坏,因此给系统配置一个快速的dns能大幅度提高处理速度。以下给出一个配置仅供参考:

nameserver 202.96.128.68

上述dns服务器是广东电信的DNS服务器,对于非广东朋友,请改为离你最近的dns 服务器ip

如果可能的话,请配置一个简单的bind9,成为本地的dns cache server,可以获得最高性能。这里略过这一步骤,但您必须确保dns的配置是正确并且可靠的,否则slockd将不能工作!

启动/测试

执行:

/usr/local/slockd/slockd-init start

此时slockd将启动,并进入非daemon方式的监听模式,接受来自10030端口的请求,命令行下将显示如下调试信息:

Starting spam locker daemon: slockd
starting child 2908
starting child 2909
08-01 12:34:40 [2908]: Loading APF::Plugin::localctrl
08-01 12:34:40 [2909]: Loading APF::Plugin::localctrl
08-01 12:34:40 [2908]: Loading APF::Plugin::anvil
08-01 12:34:40 [2908]: Loading APF::Plugin::fqdn
08-01 12:34:40 [2909]: Loading APF::Plugin::anvil
08-01 12:34:40 [2908]: Loading APF::Plugin::dnsbl
08-01 12:34:40 [2909]: Loading APF::Plugin::fqdn
08-01 12:34:40 [2909]: Loading APF::Plugin::dnsbl
08-01 12:34:40 [2908]: Loading APF::Plugin::hostname
08-01 12:34:40 [2909]: Loading APF::Plugin::hostname

打开另一个ssh/终端窗口,进入/usr/local/slockd/tools 目录,输入:

perl policy_sig -h localhost -p 10030 --helo FOOBAR \
--ip 192.168.0.1 --from test@foo.com --to test@bar.com

此时,程序应该返回如下错误信息:

action=504 <FOOBAR>: rejected, see http://bl.extmail.org/cgi/why?fqdn 

这表示slockd初步的正常工作了。

后台方式运行slockd

调试正确后,必须将slockd配置成后台服务进程(Daemon Process)。vi /usr/local/slockd/config/main.cf 将如下两个配置的注释去掉:

# uncomment the following line if you need to daemonize
setsid 1

## logging
log_file /var/log/slockd.log

然后在运行slockd的命令行窗口按ctrl+c,关闭刚才运行的slockd。或者在另一个命令行窗口输入如下命令以杀死slockd进程:

killall slockd 

然后执行:

/usr/local/slockd/slockd-init start

自启动

输入如下的命令,将slockd启动加入到系统里,这样下一次服务器重新启动,就可以自动执行slockd了。

echo "/usr/local/slockd/slockd-init start" >> /etc/rc.d/rc.local

与Postfix结合

slockd调试正常后,必须配置postfix以使其打开对slockd的支持,编辑/etc/postfix/main.cf,将 check_policy_service inet:127.0.0.1:10030 这一行记录增加到smtpd_recipient_restrictions 里,例如:

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,
check_policy_service inet:127.0.0.1:10030

最后,重新启动postfix以使配置生效

/etc/init.d/postfix restart 

注意事项:

上述配置是将slockd的查询放到最后,这也是进一步提高资源利用律的办法,因为有部分功能postfix已实现了,所以就先由postfix检测,如果检测不到再由slockd完成。

更多内容,请查看http://wiki.lupaworld.com/index.php/邮件系统搭建(ExtMail Solution for Linux)

文章来源于http://www.lupaworld.com

声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。

查看全部评论(0)我来说两句 直接向LUPA提出您的宝贵建议

-5 -3 -1 - +1 +3 +5