共计 6039 个字符,预计需要花费 16 分钟才能阅读完成。
由于公司 Exchange 环境的邮件过滤的硬件设备存在单点故障又不想再花更多的费用去做这方面的投资,所以想通过 Postfix 工具实现一个冗余的方案。
postfix 是 Wietse Venema 在 IBM 的 GPL 协议之下开发的 MTA(邮件传输代理)软件,是 linux 世界的一个开源的邮件传输代理工具,通过一些组件可以实现反垃圾邮件和防病毒的功能。
相关组件:
postfix+clamd+spamassassin+amavisd-new
clamd 反病毒引擎
spamassassin 反垃圾邮件
amavisd-new 是邮件代理服务器 (MTA) 和防毒软件之间的中介软件
基本原理:
第一步:postfix 接收邮件
postfix,通过 25 端口,接受所有的邮件,这个步骤,是很好理解。
第二步:把邮件交给 amavisd-new
在 Linux 的邮件系统里,amavisd-new 的非常关键啊。可以这样理解,postfix,的所有额外的功能,都需要通过他才能实现。
从上面的这个图片,我们就可以看到,postfix,把邮件接收下来后,交给 amavisd-new,让他想办法,解决杀毒,垃圾邮件过滤的问题。
交给杀毒软件
通过 clamd,linux 的杀毒软件,检查邮件是否带病毒。
交给 SpamAssassin
通过他来实现垃圾邮件的过滤。
第三步:amavisd-new 通过 10025 端口还给 postfix
当所有的工作完成后,交给 postfx,postfix 在传递给 exchange
安装的整个过程
主要参考文档
#、配置 clamav
操作系统版本 CentOS 6.3
1 配置 dns vim /etc/resolv.conf
添加一个能够解析的局域网 DNSIP
2 配置 hosts vim /etc/hosts
使其能解析自己
比如 1.1.1.1 postfix.contoso.com
一 安装配置 Postfix 使其能完成基本的邮件收发
1 修改相关配置文件
vim /etc/postfix/main.cf:
2 vim /etc/postfix/transport, 在配置文件的末尾添加以下内容。
3 vim /etc/postfix/master.cf 基本保持默认文件的原来的内容
4 执行以下命令使 transport 生效
postmap transport
5 启动服务:
6 查看相关端口:
7 利用 powershell send-mailmessage 测试一下发送邮件,10.7.2.53 就是本台 postfix 服务器:
8 发现客户端已经可以收到了
Postfix 的详细介绍:请点这里
Postfix 的下载地址:请点这里
相关阅读:
CentOS 6.4 下 Postfix 邮件服务安装和基本配置 http://www.linuxidc.com/Linux/2013-08/88977.htm
CentOS 5.5 下邮件服务器 Postfix 安装 http://www.linuxidc.com/Linux/2012-05/60010.htm
搭建 Red Hat Enterprise Linux 5.4 的 Postfix 邮件服务器 http://www.linuxidc.com/Linux/2012-12/77167.htm
Linux 下架构安全邮件服务器之 Postfix(认证)http://www.linuxidc.com/Linux/2012-09/70527.htm
二 添加相关的病毒过滤组件和反垃圾邮件组件
创建相关的账户:
添加 ClamAV 运行所需的组和用户:
groupadd clamav
useradd -g clamav -s /sbin/nologin -M clamav
添加配合 amavisd-new 使用的用户 amavis(我们这次是 yum 安装默认会创建)
groupadd amavis
useradd -g amavis -s /sbin/nologin -M amavis
本次组件的安装为了方便主要使用 yum 安装也可以使用源码安装。
1 安装 Clamd(版本 0.98.1)
yum install clamd(yum 安装会自动创建 clam 组和账户这个需要后边更改一下)
发现默认的源没有相关的软件
我们需要将其他服务器的 /etc/yum.repos.d 目录下面的源文件拷贝到这台服务器上
到 postfix 服务器上查看已经有了相关的文件,并执行 yum makecache 使其生效
再次执行 yum install clamd 的时候虽然有了相关组件但又发现了错误
需要更改 /etc/yum.repos.d/epel.repo 中的以下内容
再运行 yum makecache 然后再运行 yum install clamd 发现已经可以安装了
启动服务 service clamd start,会有病毒库过期的提示:
使用 freshclam 更新一下病毒库,重启一下 clamd 服务已经正常了:
修改配置文件内容,/etc/clamd.conf 因为默认的用户是 clam 我们需要改为 amavis
默认的用户:
修改完的用户:
重启服务失败:
原来是目录权限的问题:
修改目录权限:
删除 /var/log/clamav 目录线面的这两个文件:
再起重启服务,还是有问题:
目录权限问题:
重启服务成功:
修改病毒库更新的配置文件
先检查配置文件 /etc/freshclam.conf
默认账户:
更新后的账户
配置文件更改完以后会出现病毒库更新错误
还是权限的问题需要修改权限至下面的截图:
更新成功:
2 安装spamassassin(版本 3.3.1)
yum install spamassassin 这个是正常的。
修改配置文件 /etc/mail/spamassassin/local.cf
required_score 5.0
rewrite_header Subject *****SPAM*****
report_safe 1
use_bayes 1
bayes_auto_learn 1
skip_rbl_checks 1
use_razor2 0
use_pyzor 0
ok_locales all
启动服务:
3 安装 amavisd-new(版本 2.8.0)
yum install amavisd-new 一切顺利
设置相关目录权限:
将 clamav 加到 amavis 运行组里,并调整目录权限,否则 clamav 将无法扫描 amavisd-new 产生的临时文件
# gpasswd -a clamav amavis
# usermod -G amavis clamav
# chown amavis.amavis /var/spool/amavisd
# chmod 750 /var/spool/amavisd
# chown amavis.amavis /var/spool/amavisd/tmp
# chmod 750 /var/spool/amavisd/tmp
修改相关的配置文件 /etc/amavisd/amavisd.conf 内容。
$daemon_user = ‘amavis’;#yum 安装的时候会自动创建账户 $daemon_group = ‘amavis’;#yum 安装的时候会自动创建组和账户
$mydomain = ‘contoso.com’; #此处是你的 Exchange 或者其它邮件系统的邮件域
$virus_admin = “postmaster\@$mydomain”;
$mailfrom_notify_admin = “postmaster\@$mydomain”;
$mailfrom_notify_recip = “postmaster\@$mydomain”;
$mailfrom_notify_spamadmin = “postmaster\@$mydomain”;
$mailfrom_to_quarantine = ”;
virus_admin_maps => [“postmaster\@$mydomain”] (指定报告病毒和垃圾邮件时发送系统邮件的用户身份)
spam_admin_maps => [“postmaster\@$mydomain”]
取消以下内容的注释并修改相关内容。
将配置文件中的以下内容修改成以下内容
[‘ClamAV-clamd’,
\&ask_daemon, [“CONTSCAN {}\n”, “/var/run/clamav/clamd.sock”],
qr/\bOK$/m, qr/\bFOUND$/m,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
这是默认的配置文件。
启动服务,正常。
service amavisd start
由于公司 Exchange 环境的邮件过滤的硬件设备存在单点故障又不想再花更多的费用去做这方面的投资,所以想通过 Postfix 工具实现一个冗余的方案。
postfix 是 Wietse Venema 在 IBM 的 GPL 协议之下开发的 MTA(邮件传输代理)软件,是 linux 世界的一个开源的邮件传输代理工具,通过一些组件可以实现反垃圾邮件和防病毒的功能。
相关组件:
postfix+clamd+spamassassin+amavisd-new
clamd 反病毒引擎
spamassassin 反垃圾邮件
amavisd-new 是邮件代理服务器 (MTA) 和防毒软件之间的中介软件
基本原理:
第一步:postfix 接收邮件
postfix,通过 25 端口,接受所有的邮件,这个步骤,是很好理解。
第二步:把邮件交给 amavisd-new
在 Linux 的邮件系统里,amavisd-new 的非常关键啊。可以这样理解,postfix,的所有额外的功能,都需要通过他才能实现。
从上面的这个图片,我们就可以看到,postfix,把邮件接收下来后,交给 amavisd-new,让他想办法,解决杀毒,垃圾邮件过滤的问题。
交给杀毒软件
通过 clamd,linux 的杀毒软件,检查邮件是否带病毒。
交给 SpamAssassin
通过他来实现垃圾邮件的过滤。
第三步:amavisd-new 通过 10025 端口还给 postfix
当所有的工作完成后,交给 postfx,postfix 在传递给 exchange
安装的整个过程
主要参考文档
#、配置 clamav
操作系统版本 CentOS 6.3
1 配置 dns vim /etc/resolv.conf
添加一个能够解析的局域网 DNSIP
2 配置 hosts vim /etc/hosts
使其能解析自己
比如 1.1.1.1 postfix.contoso.com
一 安装配置 Postfix 使其能完成基本的邮件收发
1 修改相关配置文件
vim /etc/postfix/main.cf:
2 vim /etc/postfix/transport, 在配置文件的末尾添加以下内容。
3 vim /etc/postfix/master.cf 基本保持默认文件的原来的内容
4 执行以下命令使 transport 生效
postmap transport
5 启动服务:
6 查看相关端口:
7 利用 powershell send-mailmessage 测试一下发送邮件,10.7.2.53 就是本台 postfix 服务器:
8 发现客户端已经可以收到了
Postfix 的详细介绍:请点这里
Postfix 的下载地址:请点这里
相关阅读:
CentOS 6.4 下 Postfix 邮件服务安装和基本配置 http://www.linuxidc.com/Linux/2013-08/88977.htm
CentOS 5.5 下邮件服务器 Postfix 安装 http://www.linuxidc.com/Linux/2012-05/60010.htm
搭建 Red Hat Enterprise Linux 5.4 的 Postfix 邮件服务器 http://www.linuxidc.com/Linux/2012-12/77167.htm
Linux 下架构安全邮件服务器之 Postfix(认证)http://www.linuxidc.com/Linux/2012-09/70527.htm
三 所有组件安装完毕需要将所有的组件与 postfix 关联
修改 /etc/postfix/master.cf 添加以下内容
smtp-amavis unix – – n – 2 smtp
-o smtp_data-done_timeout=1200
-o disable_dns_lookup=yes
# 符号前面有一个空格用于连续下面的内容
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
修改 /etc/postfix/main.cf 添加以下内容:
content_filter=amavisfeed:[127.0.0.1]:10024
重启一下服务,相关的端口已经启动:
我们将相关的服务设置为开机启动:
四 相关的一些测试:
1 我们先发送一份正常的邮件:
查看相关的日志,没有检测到病毒。邮件已经传送成功:
2 我们发送一份带病毒的邮件。
查看一下日志发现被隔离了。
然后会产生一封退信:
说明病毒过滤成功了。
3 测试反垃圾邮件功能.
# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
220 xt.contoso.com ESMTP Postfix
ehlo localhost // 打招呼
250-xt.contoso.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<xiaosong.li1@contoso.com > // 发件人
250 2.1.0 Ok
rcpt to:<xiaosong.li1@contoso.com// 收件人
250 2.1.5 Ok
data // 邮件内容
354 End data with . // 下面那行为测试内容
Subject: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
. // 以. 结束邮件内容
250 2.0.0 Ok: queued as BC24E85260
quit // 退出
221 2.0.0 Bye
Connection closed by foreign host.
发送方出现了退信
整个方案测试成功