19.7.5 基础的邮件过滤机制
在整封信的传送流程中,客户端若通过主机的重重限制后,最终应该可以到达邮件队列中。而由队列中要送出去或者是直接送到Mailbox就要通过MDA的处理。MDA可以加载很多机制,尤其是它可以过滤某些特殊字眼的广告邮件或病毒信件。MDA可以通过分析整封信件的内容(包括标头以及内文)来捕获有问题的关键词,然后决定这封信的命运。
Postfix已有内建可以分析标头或者是内文的过滤机制,即/etc/Postfix/目录下的header_checks以及body_checks这两个文件。在默认的情况下这两个文件不会被Postfix使用,您必须利用下面的设置来启用它:
[root@linux ~]# vi /etc/Postfix/main.cf header_checks=regexp:/etc/Postfix/header_checks body_checks=regexp:/etc/Postfix/body_checks # regexp代表的是“使用正规表示法”的意思 [root@linux ~]# touch /etc/Postfix/header_checks [root@linux ~]# touch /etc/Postfix/body_checks [root@linux ~]# /etc/init.d/Postfix restart |
接下来您必须自行处理header_checks以及body_checks的规则设置,在设置前先确认对于正规表示法是否熟悉。因为很多信息都必须通过正规表示法来处理。开始设置的依据如下。
· “#”代表该行为注释,系统直接略过。
· 在默认的规则中,大小写是视为相同的。
· 规则的设置方法为:“/规则/操作 显示在日志文件里面的信息”。
请注意,要使用两个斜线“/”将规则包起来。举个例子来说明:例如想要抵挡掉标题为“A funny game”的信件,并且在日志文件里显示“drop header deny”,则可在header_chekcs文件中这样写:
/_Subject:.*A funny game/ DISCARD drop header deny |
有如下几个操作。
· REJECT:将该封信件退回给原发信者。
· WARN:将信件收下来,但是将该封信的基本数据记录在日志文件内。
· DISCARD:将该封信件丢弃,并不给原发信者回信。
鸟哥自己做过一些规则的比对,只不过性能不好。如果您有兴趣的话,可以自行下载来看看,使用的结果请自行评估,因为每个人的环境都不一样。
· header: http://linux.vbird.org/linux_Server/0380Mail/header_checks。
· body: http://linux.vbird.org/linux_Server/0380Mail/body_checks。
如果您自行修改过这两个文件后,务必要检查一下语法才行。
[root@linux ~]# postmap -q - regexp:/etc/Postfix/body_checks \ > < /etc/Postfix/body_checks |
如果没有出现任何错误,那就表示您的设置值应该没有问题了。
除了这两个设置之外,还有基础过滤方面的MDA机制呢,即procMail。procMail基本上与上面提到的body_checks相似,同样是用来分析邮件之用的,所以您也需要设置规则。首先需要安装procMail,CentOS已经有内建的软件了,请使用yum install procMail自行安装。
那么procMail的过滤规则在哪里呢?默认为/etc/procMailrc。这个文件的设置方式如下:
1. 一组规则设置至少含有三行,如下所示 :0b <==设置过滤机制所要检查的信件部分 * _Subject:.*A funny game <==检查的规则部分 /dev/null <==如果符合上述规定,则进行的操作 参数说明 a. 关于检查邮件的部分(第一行),flags 包含如下 H : Header的检查 B : Body的检查 h : 提供Header的数据,进入pipe、file及Mail等的检查 b : 提供Body的数据进入pipe、file 及Mail等的检查 b. 关于检查内容的部分 ! : 这是反向选择的意思 < : 检查Mail的总长度是否小于设置值 ( bytes ) > : 与<相反的选择 c. 关于操作的部分 | : 开始启用后续的shell程序 d. 其他的环境变量部分 PATH:搜索执行文件的路径 SENDMAIL:/usr/sbin/SendMail LOGFILE:日志文件。通常设置在/var/log/procMail.log e. 与 Regular express相关的部分 _ : 开始(同一行最左边)字符 $ : 本行的结束字符(最右边)的比对 . : 除了新增一行之外的任何字符 \ : 跳脱字符 更详细的内容请参考 man procMailrc man procMailex |
网络上已经有很多人提供了他们自行分析的规则,如卧龙大师:
FTP://FTP.tnc.edu.tw/pub/Sysop/MAIL/procMailrc
您可以将上述的网页数据捕捉到您的/etc/procMailrc中,然后在main.cf里增加以下代码:
[root@linux ~]# vi /etc/Postfix/main.cf Mailbox_command=/usr/bin/procMail [root@linux ~]# /etc/init.d/Postfix restart |
通过这种基础的邮件分析可以捉取一些有问题的邮件,不过对于目前垃圾邮件的抵挡方面还是很有限。此外,由于这些分析机制都直接读取信件来处理与分析,这些机制通常都很耗系统资源。您的信件越大、流量越大,那么您的系统花费在分析邮件上面的时间会越多,所以您的硬件要很好,否则当有大型邮件进来时,邮件主机会跑得很吃力。所以,目前要不要启动这些过滤机制,那便视情况而定了。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |