本文档主要是根据slockd-0.08.tar.gz 中INSTALL所编写的。
安装需求
=====
引用:
支持Linux / BSD或Solaris,HP-UX等操作系统
Perl 5.6+,建议Perl 5.8.0以上
系统带有gcc/make等工具
开发工具(ssl及crypt等包)
相关的perl模块
引用:
Net:
NS
POSIX
Fcntl
Digest::MD5
Digest::SHA1
Digest::HMAC
Net::IP
具体安装步骤
1)下载
下载地址:
http://www.extmail.org/download/
填写好表单后,选择最新的slockd软件包(目前最新是0.08),点下载并将下载的软件源码包保存好,解包:
2)解包引用:
$ tar xfz slockd-{version}.tar.gz
$ mv slockd-{version} slockd
将{version}代替成最新的版本号(目前是0.08),然后将slockd-xxxx 改名并移动到:
/usr/local/slockd目录下,注意,必须使用root身份进行移动和改名。
3)安装perl模块
由于slockd是以smtp特征检测为主的软件,因此很大程度依赖dns库,必须安装Net:

NS库才能正常工作,请到
http://search.cpan.org下载最新版Net:

NS (目前最新0.57)。
此外还需要下载如下模块:
引用:
Digest-HMAC
Digest-MD5
Digest-SHA1
Net-IP
注:对于BSD用户,可以到/usr/ports里寻找相应的ports进行安装,就不必麻烦到cpan上下载。
以Digest-MD为例:
引用:
$ cd Digest-MD5-xxx
$ perl MakeFile.PL
$ make
$ make test
$ su
# make install
安装好MD5后,顺次安装SHA1和HMAC,还有Net-IP模块(方法都是一样)
4)安装Net::DNS模块
安装前必须确定Net-IP模块是否已经安装好了,方法很简单:
引用:
$ perl -e 'use Net::IP'
如果没有错误返回则表示安装已经好了。开始解包并开始安装Net-DNS:
引用:
$ tar xfz Net-DNS-0.5x.tar.gz
$ cd Net-DNS-0.5x
$ perl MakeFile.PL
$ make
$ make install
如无意外,Net-DNS模块就安装好了。检查方法同上。
5)配置slockd
进入/usr/local/slockd目录,编辑config/main.cf 配置文件,每个配置参数都有简短的注释,如果要修改的话,请仔细阅读注释后方可修改。
默认情况下,slockd将只监听127.0.0.1(localhost)的10030端口,公网是无法访问这一服务的,这样做是为了安全起见,防止被其他有心人利用来做坏事。默认的日志将在标准的输出和标准错误输出(STDERR)显示。
接下来,可以配置slockd的日志路径和pid文件路径,默认配置为:
引用:
pid_file /var/run/slockd.pid
log_file /var/log/slockd.log
一旦log_file被定义(去掉注释),则调试信息被写入文件,而不是标准错误输出(STDERR)了。
6)配置resolv.conf
请确认/etc/resolv.conf里的dns服务器是离你的邮件服务器最近,速度最快的dns server,slockd很依赖dns的好坏,因此给系统配置一个快速的dns能大幅度提高处理速度。
如果可能的话,请配置一个简单的bind9,成为本地的dns cache server,可以获得最高性能!
7)启动/测试
在/usr/local/slockd目录下,执行:
此时slockd将启动,并进入监听模式,接受来自10030端口的请求,要注意的是,如果刚才配置了log_file路径,则调试信息必须通过如下命令获得:
引用:
tail -f /var/log/slockd.log
打开另一个ssh/终端窗口,进入/usr/local/slockd/tools 目录,输入:
此时,程序应该返回如下错误信息:
这表示slockd初步的正常工作了。
8)配置MTA
目前slockd可以直接支持postfix,通过apf-qmail和apf-sendmail也可以支持qmail和sendmail,本文档目前只覆盖有关Postfix的配置和使用,其他的mta支持文档将在以后发布。
编辑/etc/postfix/main.cf (如果是bsd系统,main.cf应该在/usr/local/etc/postfix下)
将“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
9)重载postfix
配置完毕后,重新启动postfix,注意的是,9)的配置是将slockd的查询放到最后,这也是进一步提高资源利用律的办法,因为有部分功能postfix已实现了,所以就先由postfix检测,如果检测不到再由slockd完成。
10)以后台的方式执行slockd
刚才是以前台的形式运行,现在要将其设置为守护进程(daemonize)的形式运行,与终端完全分离,编辑config/main.cf ,将如下行去掉注释:
然后关闭刚才运行的slockd,可以用如下命令关闭或直接按ctrl+c:
然后执行:
引用:
/usr/local/slockd/slockd-init start
将上面这个命令放入系统的rc.local里,可以在开机时自动执行。
相关的slockd-init命令:
引用:
/usr/local/slockd/slockd-init start
/usr/local/slockd/slockd-init stop
/usr/local/slockd/slockd-init restart