热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Postfix邮件服务器中如何反垃圾邮件

Postfix是目前比较流行的,拥有相当好的安全性和高效率的邮件系统。Postfix自身带了很多反垃圾邮件的功能,现在我们就来简单的了解一下它的这些功能。一、访问控制列表访问控制列表可以限制客户端对邮件服务器的访问,main.cf中常用的访问控制如下:smtpd

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: 1Array[0-Array][0-Array]/ 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

需要提醒的是,与邮件头过滤规则不同的,邮件内容过滤规则中的正则表示式不区分大小写。
现在我们可以使用Postfix来简单的对一些邮件进行过滤了,在以后的文章中我们再继续探索Postfix的反垃圾邮件功能。
推荐阅读
author-avatar
mobiledu2502910137
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有