如何构建垃圾邮件过滤邮件网关
作者Brian Goldberg - {brian AT carbonite D0T com}
www.carbonite.com
垃圾邮件已经从恶化演变为威胁。 SysAdms需要一个打击垃圾邮件的策略。 您可以使用加载在所有用户计算机上的过滤软件,但是需要大量时间才能安装,并且维护可以真正拖累您的时间和资源。 更好的方法是使用集中式的设备,在进入企业之前过滤垃圾邮件。 这种“反垃圾邮件网关”比单独安装的客户端软件要容易得多,易于管理和维护。 此外,它可以被调整为更有效。
概述
- 1.构建裸机Linux服务器
- 一个。 自定义配置
- b。 分区
- C。 防火墙选项
- d。 包装选择
- e。 LANG变量
- 2.安装Postfix消息传输代理(MTA)
- 一个。 禁用sendmail
- b。 安装Postfix
- C。 配置Postfix
- d。 测试Postfix
- e。 配置邮件转发
- F。 再次测试
- 3.安装Mailscanner
- 一个。 安装MailScanner软件包
- b。 初始MailScanner配置
- 4.安装Spamassassin
- 一个。 安装SpamAssassin
- b。 配置SpamAssassin
- 5.安装ClamAV
- 一个。 安装ClamAV
- b。 配置ClamAV
- C。 测试ClamAV
第一步 - 构建裸骨Linux服务器
我使用了一些最新版本的RedHat Linux。 版本8,9或Fedora应该可以正常工作。 我使用GUI安装程序选择自定义构建。
- 一个。 自定义用户配置
- 选择键盘,语言和时区的通用选项。
- b。 分区
- 您应该至少使用这种布局对服务器进行分区:
- 这将保护您的服务器免受日志丢失。
- C。 防火墙配置
- 我选择了“无防火墙”选项。 我认为这个设备是流量管理设备,而不是安全设备。 上游安全应由实际的防火墙来处理。 当然,许多人可能不同意这一点,并选择加载IPTables。 只需确保您配置了正确的链来允许流量正常流动。
- d。 包装选择
-
当您进入包装选择时,DE-SELECT EVERYTHING。 返回并选择以下项目:
编辑器 - >你需要这个vi文件
开发工具 - >您需要编译软件
一旦机器自行构建,它将重新启动。 - e。 修复LANG变量
- 一旦重新启动,我们需要编辑LANG变量。 RedHat的LANG变量设置LANG =“en_US.UTF-8”可能导致MailScanner和SpamAssassin使用的一些perl代码中的编译错误。
- 在Red Hat Linux中,您必须编辑文件/ etc / sysconfig / i18n以更改行:
/
/usr
/var
然后,您需要重新设置和导出LANG变量:
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en"
To:
LANG="en_US"
SUPPORTED="en_US.UTF-8:en_US:en"
[root@titan sysconfig]# LANG='en_US'
[root@titan sysconfig]# export LANG
步骤II - 安装Postfix
我选择使用postifx而不是sendmail作为我的MTA。 我喜欢postfix,因为它的配置是非常容易理解的。 此外,我相信它比sendmail更轻巧。
- 一个。 禁用现有的Sendmail服务
- 在安装postfix之前,您需要禁用在Linux框上运行的现有sendmail项目。
- b。 安装Postfix
- 从www.postfix.org下载postfix 2.1.5,并按照 这个postfix文件进行安装。 确保在passwd,组和别名文件中添加所需的记录。 Postfix和Mailscanner将无法使用它们!
- 当您“安装”时,接受所有的默认设置
- C。 配置Postfix
- Postifx有两个文件可以控制其大部分功能。 这些是main.cf和master.cf。
- 具体main.cf编辑:
- 注意:其中一些项目需要更改,而有些仅需要取消注释。
- d。 测试Postfix构建
- 现在测试postfix是非常重要的,以确保一切正常。
- 发送电子邮件到这个邮件服务器。 您可以在端口25上telnet到此框并手动发送电子邮件。
- e。 配置Postfix转发电子邮件
- 由于我们不希望此设备成为我们邮件的最终目的地,因此我们需要配置Postfix将我们的域的所有邮件转发到SMTP邮件服务器。 我们需要确保仅转发我们的域的邮件,并删除其他域的邮件(不要成为公开邮件转发 - 非常糟糕!)
- 在main.cf中编辑这个项目
- 这告诉Postfix哪些域应该中继邮件。 所有发送给这个Doamin的邮件(并且只有这个域)将被转发到其远程SMTP服务器。 您可以将多个域放在这里,只需用逗号或空格分隔。
- 添加行到main.cf的末尾
- 这告诉Postfix用于解决中继邮件的目的地址的方法:
- 添加行到“/ etc / postfix / transport”的末尾
- 该命令将域“lab.net”特定映射到IP地址192.168.2.225,并告诉Postfix使用SMTP作为传输。 所有通过此垃圾邮件网关中转的用于lab.net的邮件将通过SMTP转发到192.168.2.225。
- 然后运行命令:
- 此命令构建Posfix将用于转发邮件的哈希表/文件。 如果你不这样做,它不会工作。
- 最后将此行添加到main.cf
- 这些行将确保您的垃圾邮件网关在邮件通过时不会添加任何自己的标题域信息。
- F。 再次测试
- 停止并启动postfix以确保所有更改都需要。
- 我知道这是冗余的,但是在安装MailScanner之前,您应该再次测试系统。 确保邮件通过系统wihtout问题通过。 如果您遇到问题,现在可以比安装MailScanner,SpamAssassin和ClamAV之后更容易修复。
Service sendmail stop
chkconfig sendmail off
myhostname = titan.corp.com
mydomain = corp.com
myorgin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
mynetwork_style = host
relay_domains = lab.net
transport_maps = hash:/etc/postfix/transport
lab.net smtp:[192.168.2.225]
postmap /etc/postfix/transport
append_at_myorigin = no
postfix stop
postfix start
步骤III - 安装MailScanner
tar zxvf MailScanner- .tar.gz
./install.sh
chkconfig --list | grep MailScanner
MailScanner 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig postfix off
header_checks = regexp:/etc/postfix/header_checks
/^Received:/ HOLD
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
chown postfix.postfix /var/spool/MailScanner/incoming
chown postfix.postfix /var/spool/MailScanner/quarantine
第四步 - SpamAssassin
- 一个。 安装SpamAssassin
- SpamAssassin也很容易安装,但是,您需要确保安装了正确的PERL模块。 他们是:
- 可选模块:
- 您可以安装SpamAssassin:
- 然后安装
- b。 配置SpamAssassin
- 您不需要编辑任何SpamAssassin conf文件,因为所有配置都通过MailScanner完成。
- 在/etc/MailScanner/MailScanner.conf中,我们将进行以下更改:
- 更改此行:
- 至:
- 更新SpamAssassin用户状态目录设置:
- 然后运行命令:
- 重新启动MailScanner以进行更改。
Digest::SHA1
HTML::Parser
MIME::Base64
DB_File
Net::DNS
Mail::SPF::Query
Time::HiRes
perl -MCPAN -e 'install Mail::SpamAssassin'
Net::DNS
Use SpamAssassin = no
Use SpamAssassin = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
mkdir /var/spool/MailScanner/spamassassin
chown postfix.postfix /var/spool/MailScanner/spamassassin
service MailScanner restart
步骤V - ClamAV
- 一个。 安装ClamAV
- 在安装ClamAV之前,您需要添加clamav用户和组。 你可以这样做:
- 一旦完成,您可以构建该软件。
- 打开包装:
- 通用构建过程:
- 我遇到了一个问题,我的RedHat Fedora Core 3构建是通过使用这个命令“ln -s /usr/lib/libidn.so.11.4.6 /usr/lib/libidn.so”修复的。 有关详细信息,请访问此网页:“http://kb.atmail.com/view_article.php?num=132&title=libidn.so:%20No%20such%20file%20or%20directory”
- 现在,您需要加载ClamAV的perl模块
- b。 配置ClamAV和MailScanner设置
- 在/usr/local/etc/clamd.conf中进行以下编辑:
- 在“示例”一词前添加'#'
- 在/usr/local/etc/freshclam.conf中也一样
- 现在您需要更新ClamAV的病毒库文件
- 更新MailScanner的配置文件以使用ClamAV
- 在MailScanner.conf中,检查“监控ClamAV更新”的设置,以确保它与您的ClamAV病毒数据库文件的位置相匹配。 这应该是“/usr/local/share/clamav/*.cvd”。
groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
tar xvzf clamav-0.80.tar.gz
./configure
make
make install
perl -MCPAN -e shell
install Parse::RecDescent
install Inline
install Mail::ClamAV
[root@titus]# freshclam
ClamAV update process started at Sat Jan 29 19:43:51 2005
main.cvd is up to date (version: 29, sigs: 29086, f-level: 3, builder: tomek)
daily.cvd is up to date (version: 691, sigs: 804, f-level: 4, builder: ccordes)
'Virus Scanners = clamav'
本文档的原始位置:
http :
//www.carbonite.com/guides/scannerbuild.html