基本配置篇
说明:
本文档中所有的配置是假设:
postfix is installed in /etc/postfix,
and all map or filter files are located in /etc/postfix/maps.
本文档中各种header和body使用的 regexp (regular expressions)方式. PCRE 方式暂不在考虑范围内
(1)header checks
启用header checks.
编辑main.cf,增加:
header_checks = regexp:/etc/postfix/maps/header_checks
mime_header_checks = regexp:/etc/postfix/maps/mime_header_checks
规则文件的格式:
/^HEADER: .*content_to_act_on/ ACTION
详细描述:
/^HEADER: .*content_to_act_on/ ACTION
| | |
a b c
a.邮件头,在邮件过滤中,Subject是人们最常用的邮件头之一.其他的邮件头:
b.指定过滤字段
c.具体的动作.如:REJECT,IGNORE,WARN,HOLD,DISCARD,FILTER
c1.
REJECT
这是最常用的options,Example:
/^Subject .*Free Money/ REJECT Spam Header Rule #42
这样的规则会丢弃主题中所有包含Free Money的字样的邮件,同时将会反馈给发送者"Spam Header Rule"消息,在日志中也会有这样消息记录
IGNORE
http://www.securitysage.com/guides/postfix_anonym.html
WARN
这对于测试新的过滤规则是非常有帮助的。
。。。。。。
(2)MIME HEADER CHECKS
/name=[^>]*\.(bat|com|exe)/ REJECT
这样得规则会拒绝所有带bat,com,exe为后缀名文件得邮件。
(3)BODY CHECKS
启用Body checks.
body_checks = regexp:/etc/postfix/maps/body_checks
/content_to_act_on/ ACTION
详细描述:
/content_to_act_on/ ACTION
| |
a b
a.过滤实体
b.动作 REJECT(最常用的),
/Free Money/ REJECT Spam Body Rule #42
这样,在信件正文中遇到Free Money的都会被过滤,同时会向邮件发送者反馈“Spam Body Rule #42”消息,以及在日志中记录有“Spam Body Rule #42”。
更多信息请参考:
http://www.securitysage.com/guides/postfix_uce_full.htm
系统实践篇
说明:
由于我使用的postfix 1.x的,所有和上面的部分有点出入,但不影响全局。
一,编辑main.cf,增加1行,以支持header_checks
CODE
#vi main.cf
header_checks = regexp:/etc/postfix/maps/header_checks
二,在/etc/postfix/maps/目录下分别建立header_checks
#vi header_checks
/^Subject:.*Free.*Money/ REJECT
/*如果是1.x的版本请按照我这样的格式,而且REJECT前面请尽量用TAB键,然后,有些版本的正则支持有点差别,请尽量用.*来匹配空格*/
然后:就是测试规则是否正常工作:
#tail -f /var/log/mailog
然后以Free Money为主题来发一封信看看:
在日志中立刻出现:
Sep 24 23:47:41 mail postfix/cleanup[8877]: 3AF44256D74: reject: header Subject: Free Money; from=

