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 |
通过这种基础的邮件分析可以捉取一些有问题的邮件,不过对于目前垃圾邮件的抵挡方面还是很有限。此外,由于这些分析机制都直接读取信件来处理与分析,这些机制通常都很耗系统资源。您的信件越大、流量越大,那么您的系统花费在分析邮件上面的时间会越多,所以您的硬件要很好,否则当有大型邮件进来时,邮件主机会跑得很吃力。所以,目前要不要启动这些过滤机制,那便视情况而定了。
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||