阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Postfix实现Exchange 邮件传输的的冗余解决方案

142次阅读
没有评论

共计 6039 个字符,预计需要花费 16 分钟才能阅读完成。

由于公司 Exchange 环境的邮件过滤的硬件设备存在单点故障又不想再花更多的费用去做这方面的投资,所以想通过 Postfix 工具实现一个冗余的方案。

postfix 是 Wietse Venema 在 IBM 的 GPL 协议之下开发的 MTA(邮件传输代理)软件,是 linux 世界的一个开源的邮件传输代理工具,通过一些组件可以实现反垃圾邮件和防病毒的功能。

相关组件:

postfix+clamd+spamassassin+amavisd-new

clamd 反病毒引擎

spamassassin 反垃圾邮件

amavisd-new 是邮件代理服务器 (MTA) 和防毒软件之间的中介软件

基本原理:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

第一步: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:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

2 vim /etc/postfix/transport, 在配置文件的末尾添加以下内容。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

3 vim /etc/postfix/master.cf 基本保持默认文件的原来的内容

Postfix 实现 Exchange 邮件传输的的冗余解决方案

4 执行以下命令使 transport 生效

postmap transport

5 启动服务:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

6 查看相关端口:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

7 利用 powershell send-mailmessage 测试一下发送邮件,10.7.2.53 就是本台 postfix 服务器:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

8 发现客户端已经可以收到了

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

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 组和账户这个需要后边更改一下

发现默认的源没有相关的软件

Postfix 实现 Exchange 邮件传输的的冗余解决方案

我们需要将其他服务器的 /etc/yum.repos.d 目录下面的源文件拷贝到这台服务器上

Postfix 实现 Exchange 邮件传输的的冗余解决方案

到 postfix 服务器上查看已经有了相关的文件,并执行 yum makecache 使其生效

Postfix 实现 Exchange 邮件传输的的冗余解决方案

再次执行 yum install clamd 的时候虽然有了相关组件但又发现了错误

Postfix 实现 Exchange 邮件传输的的冗余解决方案

需要更改 /etc/yum.repos.d/epel.repo 中的以下内容

Postfix 实现 Exchange 邮件传输的的冗余解决方案

再运行 yum makecache 然后再运行 yum install clamd 发现已经可以安装了

Postfix 实现 Exchange 邮件传输的的冗余解决方案

启动服务 service clamd start,会有病毒库过期的提示:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

使用 freshclam 更新一下病毒库,重启一下 clamd 服务已经正常了:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

 

修改配置文件内容,/etc/clamd.conf 因为默认的用户是 clam 我们需要改为 amavis

默认的用户:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

修改完的用户:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

重启服务失败:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

原来是目录权限的问题:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

修改目录权限:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

删除 /var/log/clamav 目录线面的这两个文件:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

再起重启服务,还是有问题:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

目录权限问题:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

Postfix 实现 Exchange 邮件传输的的冗余解决方案

重启服务成功:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

修改病毒库更新的配置文件

先检查配置文件 /etc/freshclam.conf

默认账户:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

更新后的账户

Postfix 实现 Exchange 邮件传输的的冗余解决方案

配置文件更改完以后会出现病毒库更新错误

Postfix 实现 Exchange 邮件传输的的冗余解决方案

还是权限的问题需要修改权限至下面的截图:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

更新成功:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

2 安装spamassassin(版本 3.3.1)

yum install spamassassin 这个是正常的。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

修改配置文件 /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

Postfix 实现 Exchange 邮件传输的的冗余解决方案

启动服务:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

3 安装 amavisd-new(版本 2.8.0)

yum install amavisd-new 一切顺利

Postfix 实现 Exchange 邮件传输的的冗余解决方案

设置相关目录权限:
将 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

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

修改相关的配置文件 /etc/amavisd/amavisd.conf 内容。

$daemon_user = ‘amavis’;#yum 安装的时候会自动创建账户 $daemon_group = ‘amavis’;#yum 安装的时候会自动创建组和账户
$mydomain = ‘contoso.com’; #此处是你的 Exchange 或者其它邮件系统的邮件域

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

$virus_admin = “postmaster\@$mydomain”;
$mailfrom_notify_admin = “postmaster\@$mydomain”;
$mailfrom_notify_recip = “postmaster\@$mydomain”;
$mailfrom_notify_spamadmin = “postmaster\@$mydomain”;
$mailfrom_to_quarantine = ”;

Postfix 实现 Exchange 邮件传输的的冗余解决方案

virus_admin_maps => [“postmaster\@$mydomain”] (指定报告病毒和垃圾邮件时发送系统邮件的用户身份)
spam_admin_maps => [“postmaster\@$mydomain”]

Postfix 实现 Exchange 邮件传输的的冗余解决方案

取消以下内容的注释并修改相关内容。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

将配置文件中的以下内容修改成以下内容
[‘ClamAV-clamd’,
\&ask_daemon, [“CONTSCAN {}\n”, “/var/run/clamav/clamd.sock”],
qr/\bOK$/m, qr/\bFOUND$/m,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],

这是默认的配置文件。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

Postfix 实现 Exchange 邮件传输的的冗余解决方案

启动服务,正常。

service amavisd start

Image(6)

由于公司 Exchange 环境的邮件过滤的硬件设备存在单点故障又不想再花更多的费用去做这方面的投资,所以想通过 Postfix 工具实现一个冗余的方案。

postfix 是 Wietse Venema 在 IBM 的 GPL 协议之下开发的 MTA(邮件传输代理)软件,是 linux 世界的一个开源的邮件传输代理工具,通过一些组件可以实现反垃圾邮件和防病毒的功能。

相关组件:

postfix+clamd+spamassassin+amavisd-new

clamd 反病毒引擎

spamassassin 反垃圾邮件

amavisd-new 是邮件代理服务器 (MTA) 和防毒软件之间的中介软件

基本原理:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

第一步: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:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

2 vim /etc/postfix/transport, 在配置文件的末尾添加以下内容。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

3 vim /etc/postfix/master.cf 基本保持默认文件的原来的内容

Postfix 实现 Exchange 邮件传输的的冗余解决方案

4 执行以下命令使 transport 生效

postmap transport

5 启动服务:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

6 查看相关端口:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

7 利用 powershell send-mailmessage 测试一下发送邮件,10.7.2.53 就是本台 postfix 服务器:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

8 发现客户端已经可以收到了

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

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

Postfix 实现 Exchange 邮件传输的的冗余解决方案

修改 /etc/postfix/main.cf 添加以下内容:

content_filter=amavisfeed:[127.0.0.1]:10024

Postfix 实现 Exchange 邮件传输的的冗余解决方案

重启一下服务,相关的端口已经启动:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

我们将相关的服务设置为开机启动:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

 

四 相关的一些测试:

1 我们先发送一份正常的邮件:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

查看相关的日志,没有检测到病毒。邮件已经传送成功:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

2 我们发送一份带病毒的邮件。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

查看一下日志发现被隔离了。

Postfix 实现 Exchange 邮件传输的的冗余解决方案

然后会产生一封退信:

Postfix 实现 Exchange 邮件传输的的冗余解决方案

说明病毒过滤成功了。

 

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.

发送方出现了退信

Postfix 实现 Exchange 邮件传输的的冗余解决方案

整个方案测试成功

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计6039字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中