11. 对抗病毒和垃圾邮件所需的软件

本章节描述如何安装和处理对抗病毒和垃圾邮件的软件

11.1. 获取和安装 ClamAV

11.1.2. 构建和安装

# Adding a group for the clamav user
groupadd clamav

# Adding the clamav user to your system
useradd -g clamav -c "clamav user" clamav

cd /usr/local

tar -xvzf clamav-0.68.tar.gz
cd clamav-0.68

./configure

make && make install

11.1.3. 测试和配置

为了测试 clamav 的功能,您可以运行 clamscan 以从 clamav 发行版中包含的测试模式中获取一些结果,运行 clamscan -r -i /usr/local/clamav-0.68

输出应该如下所示

/usr/local/clamav-0.68/test/test1: ClamAV-Test-Signature FOUND
/usr/local/clamav-0.68/test/test1.bz2: ClamAV-Test-Signature FOUND
/usr/local/clamav-0.68/test/test2.zip: ClamAV-Test-Signature FOUND
/usr/local/clamav-0.68/test/test2.badext: ClamAV-Test-Signature FOUND
/usr/local/clamav-0.68/contrib/clamdwatch/clamdwatch.tar.gz: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 20482
Scanned directories: 47
Scanned files: 406
Infected files: 5
Data scanned: 5.48 MB
I/O buffer size: 131072 bytes
Time: 2.706 sec (0 m 2 s)

下一步是设置病毒数据库的自动更新。这是一个重要的步骤,因为病毒传播的速度很快,而且还会进一步加快。

创建所需的日志文件

touch /var/log/clam-update.log
chmod 600 /var/log/clam-update.log
chown clamav /var/log/clam-update.log

我建议每小时使用 cronjob 更新签名。要编辑 crontab,请执行 crontab -e 并添加以下行,并将 “x” 替换为 1 到 59 之间的随机值。 这是一种基于时间的负载平衡,以确保更多人可以获取更新。

#x * * * *       /usr/local/bin/freshclam --quiet -l /var/log/clam-update.log

要测试更新过程是否正常工作,请执行命令 /usr/local/bin/freshclam -l /var/log/clam-update.log 并查看输出。

输出应该类似于这样

ClamAV update process started at Tue Mar 23 19:58:11 2004
Reading CVD header (main.cvd): OK
Downloading main.cvd [*]
main.cvd updated (version: 21, sigs: 20094, f-level: 1, builder: tkojm)
Reading CVD header (daily.cvd): OK
Downloading daily.cvd [*]
daily.cvd updated (version: 210, sigs: 596, f-level: 1, builder: acab)
Database updated (20690 signatures) from database.clamav.net (64.74.124.90).

11.2. Razor

Razor 是 spamassassin 的先决条件之一。

11.2.1. 下载

源站点:http://prdownloads.sourceforge.net/razor/razor-agents-sdk-2.03.tar.gz?download

源站点:http://prdownloads.sourceforge.net/razor/razor-agents-2.40.tar.gz?download
cd /usr/local

tar -xvzf razor-agents-sdk-2.03.tar.gz
cd razor-agents-sdk-2.03

perl Makefile.PL
make && make install

cd /usr/local
tar -xvzf razor-agents-2.40.tar.gz
cd razor-agents-2.40/

perl Makefile.PL
make && make install

11.2.2. 注册和设置

为了使用 razor2,您需要将自己注册为用户

选择唯一的用户名和密码,然后执行 razor-admin -register -user=some_user -pass=somepass

11.3. 获取和安装 spamassassin

Spamassassin 是当今领先的开源项目,用于对抗垃圾邮件。 描述 spamassassin 的工作原理对于本文档来说过于繁琐。 有关更多信息,请查阅 http://eu.spamassassin.org/doc.html

11.3.2. 先决条件

Spamassassin 依赖于许多先决条件。 最简单的方法是使用 CPAN 存储库。 执行命令 perl -MCPAN -e shell 并根据需要回答所有问题。

11.3.3. 构建和安装

cd /usr/local

tar -xvzf Mail-SpamAssassin-2.63.tar.gz

cd Mail-SpamAssassin-2.63

perl Makefile.PL

# You get prompted to run Razor tests which you should answer with "y"
Run Razor v2 tests (these may fail due to network problems)? (y/n) [n] y 

make && make install

11.4. 获取和安装 amavisd-new

Amavisd-new 是将上述所有软件粘合在一起到 postfix 的软件

11.4.2. 先决条件

Amavisd-new 需要很多先决条件。

运行 perl -MCPAN -e shell 并执行

install ExtUtils::MakeMaker
install HTML::Parser
install DB_File
install Digest::SHA1
install Archive::Tar
install Archive::Zip
install Compress::Zlib
install Convert::TNEF
install Convert::UUlib
install MIME::Base64
install MIME::Parser
install Mail::Internet
install Mail::SPF::Query
install Net::Server
install Net::SMTP
install Net::DNS
install Digest::MD5
install IO::Stringy
install Time::HiRes
install Unix::Syslog

最后运行 ./amavisd 并查看被忽略的先决条件。

编辑/etc/amavisd.conf并更改变量$daemon_user为 “amavis” 和$daemon_group为 “amavis”。 另一个要更改的变量是$mydomain 以匹配您的域。

还请考虑更改病毒和垃圾邮件的默认设置,以避免收到有关每个拦截邮件的通知

$final_virus_destiny      = D_DISCARD;  # (defaults to D_BOUNCE)
$final_spam_destiny       = D_DISCARD;  # (defaults to D_REJECT)

在 SPAM 过滤的开始阶段,我建议将 kill-value 设置为更高的值,直到您调整了过滤器。 更改变量$sa_kill_level_deflt为 8 或更高。

11.4.3. 构建和安装

cd /usr/local

tar -xvzf amavisd-new-20030616-p8.tar.gz

cd amavisd-new-20030616
cp amavisd /usr/local/sbin
cp amavisd.conf /etc
chown root /etc/amavisd.conf
chmod 644  /etc/amavisd.conf

现在是时候为 amavisd-new 定义一个组和一个用户了

groupadd amavis
useradd -g amavis -c "Amavisd-new user" amavis

接下来,您必须为隔离的邮件定义一个目录

mkdir /var/virusmails
chown amavis:amavis /var/virusmails
chmod 750 /var/virusmails
mkdir /var/amavis
chown amavis:amavis /var/amavis
chmod 750 /var/amavis

amavisd-new 发行版中的原始 init 脚本仅适用于 Redhat。 其他发行版需要安装我的快速而简陋的 init 脚本

#!/bin/bash
#
# Amavisd-new startup script

case "$1" in
    start)
        # Starting amavisd
        /usr/local/sbin/amavisd
        ;;

    stop)

	# follows later

        ;;

    *)
        echo "Usage: $0 {start|stop}"
        exit 1
        ;;

esac

11.5. 设置 postfix

需要配置 Postfix 以将每封邮件发送到 amavis-new 以进行清理。

您需要将以下行添加到/etc/postfix/main.cf

content_filter = smtp-amavis:127.0.0.1:10024

/etc/postfix/master.cf也需要一些调整,以将 amavisd-new 的结果返回到邮件系统。

请将以下行添加到您的配置中

smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200

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