Aug 29

[原]Postfix进阶管理-MTA部分 不指定

linuxing , 11:13 , 网络服务 » 邮件系统 , 评论(0) , 引用(0) , 阅读(30252) , Via 本站原创 | |
   通过前面的介绍,相信大家对邮件系统的运作原理以及如何使用Postfix搭建简单的邮件服务器有个比较清楚的了解。再看接下来要讲解的内容前,请再次重温一下前面的原理部分。
   在实际的互联网环境中,邮件交流作为互联网上最主要的应用,经常会受到各种各样的攻击问题。最常见的就是广告信、垃圾邮件、病毒邮件、木马邮件、DDOS等。而作为管理员来说,上述的问题是不可避免的。所以,我也就这些问题,提供一些解决方法供参考。
一、基本原理
   在postfix来说,要解决垃圾邮件等问题,关键是在选择过滤软件及方法上。而根据邮件传递的原理,我们可以从下面三个部分对邮件进行过滤:
引用
1、MTA部分,主要指smtp前端;
也就是说,在postfix收到邮件的时候,就进行如FQDN检查、DNS检查等分析,以判断邮件是否来自可信任的邮件提供商,其中也包括对已知邮件标题、内容等的过滤;
2、MDA部分,主要指smtp转发到maildir前;
在postfix收到邮件后,可以通过一些插件对邮件进行分析,例如垃圾邮件匹配、病毒扫描等,把有害的邮件根据规则而修改;
3、MUA部分,也就是客户端收到邮件时;
可以由客户端对邮件再次进行扫描,例如在使用Foxmail收信的时候,自动调用nod32等杀毒软件,这主要是为了防止有漏网之鱼。

   对于服务器来说,就是处理前面的两部分。以下是我们最终要实现的效果图:
点击在新窗口中浏览此图片

二、MTA部分
在MTA部分能够把有害邮件清除是最简单、而且不太耗费资源的。但由于现在发送垃圾邮件的广告商已经很聪明,所以效果有些折扣。
postfix自带有黑白名单抵挡机制,也可以支持第三方的插件,这里举常见的三种:
引用
1、postfix自带的黑白名单;
2、procmail过滤;
3、Spam Locker过滤;


三、postfix黑白名单过滤
postfix自带黑白名单过滤方式,而且也可以使用第三方的黑白名单。
1、使用第三方黑白名单
可以先从网络上寻找提供黑白名单的服务地址,然后根据情况修改/etc/postfix/main.cf,增加:
引用
smtpd_recipient_restrictions =
    permit_mynetworks
    reject_unauth_destination
    reject_rbl_client cbl.abuseat.org
    reject_rbl_client bl.spamcop.net
    reject_rbl_client cblless.anti-spam.org.cn
    reject_rbl_client sbl-xbl.spamhaus.org

红色标记的就是第三方黑白名单提供商的地址。
2、自定义黑白名单
postfix自带可以根据标题头、内容的过滤机制,但默认是关闭的,需要修改/etc/postfix/main.cf打开:
引用

#打开标题头检测
header_checks = regexp:/etc/postfix/header_checks
#打开内容检测
body_checks = regexp:/etc/postfix/body_checks
#限制对一定大小范围内的邮件才进行内容检测
body_checks_size_limit = 51200

其中,regexp表示使用正规表达式形式,后面跟的是自定义的文件。
以header_checks为例,在/etc/postfix/header_checks中,可用下面的方式定义规则:
引用
/规则/  动作  显示在日志中的信息

常见动作有:
引用
REJECT 退回邮件
WARN 警告,但邮件可以收下来
DISCARD 直接丢弃

例如:
引用
/^Subject:.*A Test Mail/ DISCARD deny wrong header mail

测试:
# mail root -s 'A Test Mail'

日志记录:
引用
Aug 30 17:07:38 dc5test postfix/cleanup[7491]: B4E308F38: discard: header Subject: A Test Mail from local; from= to=: deny wrong header mail

可以看到,过滤成功。
◎检查
使用postconf可以检查修改后的配置
引用
# postconf -n|grep checks
body_checks = regexp:/etc/postfix/body_checks
body_checks_size_limit = 51200
header_checks = regexp:/etc/postfix/header_checks

使用postmap检查规则
# postmap -q - regexp:/etc/postfix/header_checks < /etc/postfix/header_checks
Tags: , , ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]