postfix过滤(header_checks,body_checks...)

本文介绍了Postfix邮件系统的反垃圾邮件功能,包括通过访问控制列表限制客户端访问、使用邮件头过滤和邮件内容过滤等手段进行内容过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Postfix是目前比较流行的,拥有相当好的安全性和高效率的邮件系统。Postfix自身带了很多反垃圾邮件的功能,现在我们就来简单的了解一下它的这些功能。

一、访问控制列表
访问控制列表可以限制客户端对邮件服务器的访问,main.cf中常用的访问控制如下:

程序代码:

smtpd_client_restrictions SMTPD客户端限制
smtpd_helo_restrictions SMTPD标识限制
smtpd_sender_restrictions SMTPD发送者限制
smtpd_recipient_restrictions SMTPD接收都限制

以下是访问控制列表使用的示例:
程序代码:

smtpd_client_restrictions = check_client_access hash:/etc/postfix/checks/access_client
smtpd_helo_restrictions = check_client_access hash:/etc/postfix/checks/helo_client
smtpd_sender_restrictions = check_client_access hash:/etc/postfix/checks/sender_client
smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/checks/recipient_client

访问控制表是一个hash表,其中每一行就是一条控制项,如下:

程序代码:

spammer.com 550 You can't sends mail from my server.
hacker@ 550 You aren't allowed to send mail.

规则中,第一项是规则内容,第二项是对满足规则时所采取的行动,第三项是返回给客户端的信息。
其中第一条表示禁止任何spammer.com上的用户发送邮件,第二条表示禁止任何用户名为hacker的用户发送邮件。

二、内容过滤
反垃圾邮件中,内容过滤是非常重要的部分,在Postfix中有两种内容过滤:邮件头过滤和邮件内容过滤。

1)邮件头过滤
邮件头包括邮件头部信息和MIME头信息,要使邮件头过滤生效需要在main.cf中加入:

程序代码:

header_checks = regexp:/etc/postfix/checks/header_checks
mime_header_checks = regexp:/etc/postfix/checks/mime_header_checks

在这里我们使用的是标准正规表示式过滤规则,规则文件中的第一行都类似于如下行:

程序代码:

/^HEADER: .*content_to_act_on/ ACTION MESSAGE

/^HEADER: .*content_to_act_on/是正规表示式,ACTION是对满足正规表示式时所
采取的动作,MESSAGE是该规则的说明,一般用于向客户端反回信息或用户邮件日志。常用的ACTION有:

REJECT 通知Postfix弹回邮件,这样邮件在进入你的邮件服务器前便被禁止 IGNORE 通知Postfix删除满足过滤条件的那部分内容 HOLD 通知Postfix将邮件保存在邮件队列中,以便管理对之进一步处理 DISCARD 通知Postfix直接删除邮件,在这种情况下,服务器不对发送者返回任何信息,以便让发送端感觉邮件已经正常发送
下面是一些有用的例子:

程序代码:

/^Subject: .* / REJECT Spam Header Many Spaces
/^Subject: Free Money/ REJECT Spam Free Money Mails
/^Date: 19[0-9][0-9]/ REJECT Spam past date
/name=[^>]*/.(bat|com|exe)/ REJECT Spam Executable Attachements

2)邮件内容过滤
邮件内容过滤是指邮件的正文内容过滤,它是针对邮件正文中的文字进行过滤,其规则的用法和邮件头过滤一样,为了使用邮件内容过滤需要在main.cf中加入:

程序代码:

body_checks = regexp:/etc/postfix/checks/body_checks

下面是几个有用的规则:

程序代码:

/Free Money/ REJECT Spam Free Money in Body mails
/www.disallowdsites.com/ REJECT Disallowed Sites
/Real Bad Words/ REJECT Bad Words

需要提醒的是,与邮件头过滤规则不同的,邮件内容过滤规则中的正则表示式不区分大小写。

main.cf

header_checks = pcre:/etc/postfix/header_checks

不需要这步postmap /etc/postfix/header_checks //执行这一步的功能是产生header_checks.db

############# Part I 病毒攻防戰 #######################
/filename/=/"1.*zip/"/ REJECT Virus 不允許這個夾帶檔案的檔名(/filename/=/"1.*zip/"/)
/filename/=/"postcard/.zip/"/ REJECT Virus 不允許這個夾帶檔案的檔名(/filename/=/"postcard/.zip/"/ )

# 1. KLEZ.G 病毒攻防戰 #####################################
/^Subject:.*Let/'s be friends/ DISCARD Virus drop the unavailable header
#/^Subject:.*A/ funny/ game/ DISCARD Virus drop the unavailable header
#/^Subject:.*A WinXP patch$/ DISCARD Virus drop the unavailable header
#/^Subject:.*A special funny website/ DISCARD Virus drop the unavailable header
/^Subject:.*Hello/,.*/,how/ are/ you.*/ DISCARD Virus drop the unavailable header
/^Subject:.*W32.*removal/ tools$/ DISCARD Virus drop the unavailable header
/^Subject:.*Worm/ Klez.*immunity.*/ DISCARD Virus drop the unavailable header
# 4. Sobig #############################################
/^Subject.*my/ details/ DISCARD Virus drop the unavailable header
#/^Subject.*your/ details/ DISCARD Virus drop the unavailable header
#/^Subject.*your/ application/ DISCARD Virus drop the unavailable header
# 5. 微軟 假好心病毒 ####################################
#/^Subject.*Last/ Internet/ Pack/ DISCARD Virus drop the unavailable header
#/^Subject.*Last/ Network/ Pack/ DISCARD Virus drop the unavailable header
/^From.*MS/ Network/ Security/ DISCARD Virus drop the unavailable header
# 6. 其他最新 #########################################
/^Subject.*our/ private/ photos/ DISCARD Virus drop the unavailable header
/^Subject.*don/'t/ be/ late/!/ DISCARD Virus drop the unavailable header
# 其他病毒 #############################################
/^Subject:.*Here/ is/ that/ sample/ REJECT Virus drop the unavailable header
/^Subject:.*Your.*password/ REJECT Virus drop the unavailable header
/charset/=/"Windows/-1252/"/ REJECT Virus 本主機不可使用 charset 為 windows-1252 (Sorry, charset=windows-1252 is unavailable header)
#/^Subject/:/ warning$/ REJECT Virus 本主機不可使用這個標題做為信件標題 unavailable header
#/^Subject/:/ unknown$/ REJECT Virus 本主機不可使用這個標題做為信件標題 unavailable header
#/^Subject/:/ stolen$/ REJECT Virus 本主機不可使用這個標題做為信件標題 unavailable header
#/^Subject/:/ hi$/ REJECT Virus 本主機不可使用這個標題做為信件標題 unavailable header
#/^Subject/:/ fake$/ REJECT Virus 本主機不可使用這個標題做為信件標題 unavailable header
# 一些不要被允許的帳號,這些都可以抵擋! #############################################
/^From/:.linyan/@/ REJECT Virus 本主機不支援使用您的來源帳號寄信 linyan
/^From/:.*admin/@/ REJECT Virus 本主機不支援使用您的來源帳號寄信 unavailable header

Postfix UCE/anti-spam guide
http://www.securitysage.com/guides/postfix_uce.html

一、数据前过滤   数据前过滤是指在smtp会话中,data指令发送前进行的过滤。在这个阶段,有四种不同子阶段的过滤:smtp连接时过滤、helo/ehlo指令过滤、mail from指令过滤和rcpt to指令过滤。根据这四个子阶段接收到的信息的不同,他们也分别称作smtp客户端限制、helo/ehlo主机名限制、发送者地址限制和接收者地址限制。   过滤默认是在rcpt to指令后生效的,这是因为一些windows上的邮件客户端不处理在rcpt to指令前的过滤动作。能通过将smtpd_delay_reject设置为no来使过滤动作即时生效。这个参数还影响了在不同的指令上能使用的过滤规则参数。   1、过滤规则   这四个子阶段的过滤是分别通过四个设置语句来指定过滤规则的。他们都接收一系列的规则参数列表,参数间能用空格或逗号分隔开。在默认状态下smtpd_delay_reject的值是yes,他们能接受所有支持的规则,不过需在rcpt to指令后才能全部生效;如果把smtpd_delay_reject设置为no,他们只能接受五个公共的规则参数、之前子阶段的过滤规则参数和该子阶段的规则参数。   他们接受的公共的规则参数如下: o permit 允许该连接进行。该规则通常置于规则列表的最后面使规则更清晰。 o defer 通知客户端目前不能继续会话,稍后再进行smtp连接请求。这常用于服务器需要进行一些dns检查,不过(由于dns查询超时)没有及时获得结果时,通知客户端稍后再进行连接。该规则通常置于规则列表的最后面使规则更清晰。 o reject 拒绝该连接请求。在这个阶段就断开了连接,有效的节约了垃圾邮件造成的带宽和处理能力的浪费。该规则通常置于规则列表的最后面使规则更清晰。 拒绝动作默认不会在匹配了拒绝规则后就即时断开连接,而是在rcpt to指令处理完之后再断开的,这是由于一些windows上有缺陷的邮件程式不处理在rcpt to指令前的发回的拒绝状态码。能通过smtpd_delay_reject设置为no来即时发送拒绝状态码断开连接。 reject_code指定了拒绝的返回状态码(默认是554)。 o warn_if_reject 改动其后规则的拒绝动作为警告,即如果其后存在满足拒绝的条件,并不实际拒绝,而是发出一条警告信息(reject_warning)到日志文件中(通常是/var/log/maillog)。他常用于在实际运行的邮件服务器上测试邮件过滤规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值