服务器 频道

Linux下邮件系统完美解决方案架设攻略

配置Amavisd与Clamav结合

    为了使Amavisd-new能与clamav结合,需要修改/etc/amavisd.conf文件,打开clamav的支持代码,编辑 /etc/amavisd.conf文件,大概在300行左右,去掉clamav的支持代码注释,并将socket路径改为 /var/run/clamav/clamd.sock,如下:
['ClamAV-clamd', &ask_daemon, ["CONTSCAN {} ", "/var/run/clamav/clamd.sock"], qr/ OK$/, qr/ FOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], 在110行左右,修改投递/拦截的方法: $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS;
    注意上述4个设置中,对spam(垃圾邮件)默认会直接反弹(BOUNCE),现在修改为继续投递(PASS)但在信头中增加相关X-Spam- Status信息等。这样可以很方便的在extmail中设置将被标记为垃圾邮件的mail投递到“垃圾邮件箱”中,便于用户翻查。

    增加邮件别名

    编辑/etc/postfix/aliases,增加如下信息,注意:默认的aliases数据库里已有一条virusalert的别名,所以请删除,再输入下面的别名记录,并确保所有记录都是唯一的:
virusalert: root spam.police: root postfix: test@extmail.org
    保存并执行newaliases命令生成新的别名数据库,这样所有的重新启动amavisd:
/etc/rc.d/init.d/amavisd restart
    配置Postfix 集成amavisd-new
vi /etc/postfix/master.cf
    增加如下内容:
127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o receive_override_options=
    编辑/etc/postfix/main.cf
# Content-Filter content_filter = smtp:[127.0.0.1]:10024 receive_override_options = no_address_mappings
     注意:receive_override_options 这里必须增加,禁止地址展开/影射,否则如果遇到别名的时候会引起冗余邮件的产生。
保存后/etc/init.d/postfix restart

    测试Clamav

    然后输入如下命令: 每输入一行后等待1秒左右:
telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 mail.extmail.org ESMTP Postfix - by extmail.org mail from: 250 2.1.0 Ok rcpt to: 250 2.1.5 Ok data 354 End data with . X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* . 250 2.0.0 Ok: queued as BC24E85260 quit 221 2.0.0 Bye Connection closed by foreign host.
    在邮件日志里,应该有相应的信息出现:
    May 19 10:11:44 as3 amavis[2770]: (02770-01) Blocked INFECTED (Eicar-Test-Signature), -> , quarantine: virus-20050519-101144-02770-01, Message-ID: <20050519141143.F224828AA8@mail.extmail.org>, Hits: -
    如果看到类似这样的日志,表明Clamav+Amavisd-new工作正常。

    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
    配置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将不能工作!
0
相关文章