Postfix 电子邮件系统精要(1)(9)
抗病毒使用软件是clamav,安装时一定要用当前的最新版本。垃圾邮件过滤可使用一个名为SpamAssassin的perl模块。通过采用amavisd-new这个容器,可以把clamav和SpamAssassin整合起来。
(1)安装配置clamav.
[root@mailserv2 ~]# useradd clamav |
Clamav有2个配置文件,一个主配置文件/usr/local/clamav/etc/clamd.conf,一个病毒更新配置文件/usr/local/clamav/etc/ freshclam.conf。现把修改好的配置文件列于下面:
[root@mailserv2 ~]# more /usr/local/clamav/etc/freshclam.conf | sed -n '/^#/!p' DatabaseDirectory /usr/local/share/clamav UpdateLogFile /var/log/clamav/freshclam.log LogVerbose yes LogSyslog yes LogFacility LOG_MAIL DatabaseOwner amavis DatabaseMirror db.CN.clamav.net DatabaseMirror database.clamav.net [root@mailserv2 ~]# more /usr/local/clamav/etc/clamd.conf | sed -n '/^#/!p' LogFile /var/log/clamav/clamd.log LogSyslog yes LogVerbose yes PidFile /var/run/clamav/clamd.pid DatabaseDirectory /usr/local/share/clamav LocalSocket /var/run/clamav/clamd.socket StreamMaxLength User amavis ScanMail yes ScanArchive yes |
这2个文件有很多注释,我用sed把它过滤掉了。Clamd.conf中,有"User amavis"这样一行。为什么不用默认的用户clamav而使用amavis呢?这样做的目的是为了与amavis-new结合在一起。既然没有这个用户,就手动创建一个useradd amavis)。接下来需要手动创建一些目录并赋予相应的权限,用来记录日志等用途;我把它作成一个shell脚本,直接执行即可,脚本的内容如下所示:
[root@mailserv2 ~]# more /root/clamav.sh #!/bin/bash # create directory for clamav mkdir /var/log/clamav |
脚本执行成功后,再执行 [root@mailserv2 ~]# /usr/local/clamav/bin/freshclam 手动更新病毒库。
(2)安装和配置avamvis-new。解压包amavisd-new-2.5.2.tar.gz,然后把它移动到相关的位置。这里还是用一个脚本来做这个事情,脚本的内容如下:
[root@mailserv2 ~]# more /root/amavis.sh #!/bin/bash cd /root tar clamav-0.91.2.tar.gz cd clamav-0.91.2 mkdir -p /var/amavis /var/amavis/tmp /var/amavis/var /var/amavis/db mkdir /var/virusmails |
执行完脚本后别忘记检查一下是否都按我们的意愿工作,如/usr/local/sbin目录是否有文件amavisd。
Amavisd的配置文件/etc/amavisd.conf比较复杂,需要修改的内容如下:
$max_servers=8; |
上述修改确认无误后,执行 [root@mailserv2 ~]# /usr/local/sbin/amavisd debug 测试amavis。一般而言,测试皆不能正常进行,因为所需要的很多perl模块很可能没有被安装。还好,报错信息给出了所需的模块。这时你需要到www.cpan.org下载相关的模块,然后安装;也可能遇到包依赖,再下载依赖的包,安装这个依赖,再反回来安装先前那个包,如此反复,很是烦人,极考验人的耐性。等到/usr/local/sbin/amavisd debug 输出没有错误方才完成。有另外一种方法,即运行 [root@mailserv2 ~]# perl MCPAN -e shell ,然后执行 cpan> install Time::HiRes 这样的命令挨个安装缺少的perl模块。根据我的经验,这样干很耗时,并且有的模块用这种方法安装还不灵,所以还不如在网站下载模块安装有效。下面给出一个perl模块的安装实例:
[root@mailserv2 ~]# cd [root@mailserv2 ~]# tar zxvf BerkeleyDB-0.32.tar.gz [root@mailserv2 ~]# cd BerkeleyDB-0.32 [root@mailserv2 ~]# perl Makefile.PL [root@mailserv2 ~]# make [root@mailserv2 ~]# make install |
评论暂时关闭