Postfix反垃圾邮件技术.ppt
《Postfix反垃圾邮件技术.ppt》由会员分享,可在线阅读,更多相关《Postfix反垃圾邮件技术.ppt(76页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、PostfixPostfix反垃圾邮件技术反垃圾邮件技术反垃圾邮件技术反垃圾邮件技术中国反垃圾邮件联盟http:/anti- FROM4.RCPT TO5.DATA信头过滤信体过滤6.QUIT过滤器过滤SMTPSMTP阶段的主要反垃圾手段阶段的主要反垃圾手段vIP访问限制RBL访问控制文件v格式检查FQDN名称检查RFC 821格式检查vDNS查询注册的域反向查询v信息访问控制HELO信息MAIL FROM信息RCPT TO信息v信件内容过滤规则匹配语法分析PostifxPostifx的信封过滤的信封过滤的信封过滤的信封过滤信封过滤信封过滤信封过滤信封过滤v信封过滤是指在SMTP会话中,DAT
2、A指令发送前进行的过滤。v信封过滤默认是在RCPT TO指令后生效的,这是因为一些Windows上的邮件客户端不处理在RCPT TO指令前的过滤动作。可以通过将smtpd_delay_reject设置为no来使过滤动作立刻生效。vsmtpd_delay_reject还影响了在不同的指令上可以使用的过滤规则参数。在默认状态下,信封过滤的每个阶段可以接受所有支持的规则,不过需在RCPT TO指令后才能全部生效;如果把smtpd_delay_reject设置为no,它们只可以接受五个公共的规则参数、之前子阶段的过滤规则参数和该子阶段的规则参数。信封中包含的信息信封中包含的信息信封中包含的信息信封中包
3、含的信息v连接IP(client)在SMTP连接时候得到可由smtpd_client_restrictions限制 v连接方(helo)在发送HELO/EHLO指令时候得到可由smtpd_helo_restrictions限制 v发信人(sender)在发送MAIL FROM指令时候得到可由smtpd_sender_restrictions限制 v收信人(recipient)在发送RCPT TO指令时候得到可由smtpd_recipient_restrictions限制 公共限制条件公共限制条件公共限制条件公共限制条件(1)(1)vpermit允许该连接进行。该规则通常置于规则列表的最后面使规
4、则更清晰。vdefer通知客户端现在不能继续会话,稍后再进行SMTP连接请求。这常用于服务器需要进行一些DNS检查,但是(由于DNS查询超时)没有及时获得结果时,通知客户端稍后再进行连接。该规则通常置于规则列表的最后面使规则更清晰。公共限制条件公共限制条件公共限制条件公共限制条件(2)(2)vreject拒绝该连接请求。在这个阶段就断开了连接,有效的节约了垃圾邮件造成的带宽和处理能力的浪费。该规则通常置于规则列表的最后面使规则更清晰。拒绝动作默认不会在匹配了拒绝规则后就立刻断开连接。可以通过smtpd_delay_reject设置为no来立刻发送拒绝状态码断开连接。reject_code指定了
5、拒绝的返回状态码(默认是554)。公共限制条件公共限制条件公共限制条件公共限制条件(3)(3)vwarn_if_reject改变其后一个规则的拒绝动作为警告,即如果其后存在满足拒绝的条件,并不实际拒绝,而是发出一条警告信息(reject_warning)到日志文件中(通常是/var/log/maillog)。它常用于在实际运行的邮件服务器上测试邮件过滤规则。vreject_unauth_pipelining拒绝在Postfix支持指令流水线前发送SMTP指令流水线的客户端连接。指令流水线是一些邮件客户端为了快速发送邮件所采用的技术。访问数据库访问数据库访问数据库访问数据库v访问数据库是Post
6、fix用来判断拒绝或接受邮件的数据库。通过访问数据库可以拒绝或接收特定的主机名、域名、网络地址和邮件地址。v通常访问数据库是一个由postmap命令从一个文本文件输入生成的db或dbm格式的HASH文件。v数据库的格式如下:模式表达式模式表达式 动作动作当匹配了模式表达式时,就触发了相应的动作。数据库中的空行和以“#”开头的行被忽略掉。以空格开始的行是上一行的续行。访问数据库中的邮件地址访问数据库中的邮件地址访问数据库中的邮件地址访问数据库中的邮件地址v非正则表达式,用来表示邮件地址时有如下格式:userdomain.tld匹配特定的邮件地址 domain.tld匹配特定邮件的域。user匹配
7、所有本地部分(邮件用户名)是user的邮件地址 匹配无邮件地址。这个值(”)是通过smtpd_null_access_lookup_key来指定的。访问数据库中的主机名和地址访问数据库中的主机名和地址访问数据库中的主机名和地址访问数据库中的主机名和地址 v非正则表达式,用来表示主机名和地址时有如下格式:domain.tld匹配特定邮件的域。如果在parent_domain_matches_subdomains指定了smtpd_access_maps(默认),那么也会匹配该域的子域;否则就需要使用.doamin.tld格式(注意前面的点)来单独匹配子域。net.work.addr.essnet.
8、work.addrnet.worknet匹配网络地址。注意CIDR(无类网络地址,network/netmask格式)不被支持。访问数据库中的动作访问数据库中的动作访问数据库中的动作访问数据库中的动作v访问数据库支持如下动作:45NN text拒绝该邮件并返回数字的拒绝状态码和消息。REJECT text拒绝该邮件并返回拒绝状态码和消息,如果没有指定消息就返回通用的消息。OK接受该邮件。数字同OK一样,接受该邮件。DUNNO跳过该规则,继续处理下面的规则。访问数据库中的动作访问数据库中的动作访问数据库中的动作访问数据库中的动作HOLD text将该邮件放入hold队列中,并记录可选的消息或通用
9、的消息到maillog中。放入hold队列的邮件可以通过postcat命令来查看,或通过postsuper来删除或递交。DISCARD text成功接收邮件后并不递交,而是悄悄地将该邮件丢弃,并记录可选的消息或通用的消息到maillog中。FILTER transport:nexthop将该邮件发到一个邮件过滤器中进行处理。UCE规则应用UCE规则,如permit、reject_unauth_destination等以及用smtpd_restriction_classes定义的规则类。连接连接连接连接IPIP过滤过滤过滤过滤 vPostfix可以在接受客户端的SMTP连接请求时进行过滤检查。默
10、认允许任何客户端连接。v通过Postfix的smtpd_client_restrictions指令可以指定这个阶段的过滤规则。这个阶段可用的过滤规则除公共规则外还有:reject_unknown_clientpermit_mynetworksreject_rbl_client domain.tldreject_rhsbl_client domain.tldcheck_client_access maptype:mapname 连接连接连接连接IPIP过滤规则过滤规则过滤规则过滤规则(1)(1)vreject_unknown_client拒绝客户的地址没有对应的DNS的PTR记录的连接。通常有些
11、机器,尤其是个人拨号用户的机器没有对应的PTR记录,所以要注意漫游用户的使用(漫游用户是指不在$mynetworks中,比如在别的ISP拨号上网的用户。通常用SMTP认证来解决这个问题)。unknown_client_reject_code指定了拒绝的返回状态码(默认是450)。连接连接连接连接IPIP过滤规则过滤规则过滤规则过滤规则(2)(2)vpermit_mynetworks允许来自其IP地址属于$mynetworks所定义网络的客户端的连接。通常可用于ISP为自己的拨号用户提供SMTP服务时,通过$mynetworks参数指定自己的网络并允许自己的网络内的机器发送邮件。vcheck_c
12、lient_access maptype:mapname搜索名为mapname的maptype类型的访问数据库。可以根据客户端的主机名、父域、IP地址或部分IP地址来匹配。连接连接连接连接IPIP过滤规则过滤规则过滤规则过滤规则(3)(3)vreject_rbl_client domain.tld和reject_rhsbl_client domain.tld拒绝来自属于RBL和RHSBL列表中的地址进行连接。通过检查一个IP地址(的逆转形式)或域名是否存在于domain.tld的RBL或RHSBL中,可以判断该客户端是否被列入了domain.tld的实时黑名单,从而决定是否接受连接。maps_
13、rbl_reject_code指定了拒绝的返回状态码(默认是554)。连接连接连接连接IPIP过滤范例过滤范例过滤范例过滤范例vsmtpd_client_restrictions=check_client_access hash:/etc/postfix/access_client,reject_rbl_client cblplus.anti-,reject_rbl_client relays.ordb.org,reject_rhsbl_client dsn.rfc-ignorant.org,permit_mynetworks,reject_unknown_client 连接方过滤连接方过滤连
14、接方过滤连接方过滤 v在接受了SMTP连接后,可以对HELO或EHLO指令所发送的信息进行过滤检查。v有些邮件客户端在通讯时并不发送HELO/EHLO指令,可以通过smtpd_helo_required设置为yes强制要求发送HELO/EHLO指令(默认Postfix并不要求发送)。v通过Postfix的smtpd_helo_restrictions指令可以指定这个阶段的过滤规则。这个阶段可用的过滤规则除公共规则和smtpd_client_restrictions的规则外还有:reject_invalid_hostnamereject_unknown_hostnamereject_non_fq
15、dn_hostnamepermit_naked_ip_addresscheck_client_access maptype:mapname 连接方过滤规则连接方过滤规则连接方过滤规则连接方过滤规则(1)(1)vreject_invalid_hostname拒绝无效格式的主机名的连接。invalid_hostname_reject_code指定了拒绝的返回状态码(默认是501)。vreject_non_fqdn_hostname拒绝主机名不是FQDN格式的连接。non_fqdn_reject_code指定了拒绝的返回状态码(默认时504)。连接方过滤规则连接方过滤规则连接方过滤规则连接方过滤规则
16、(2)(2)vreject_unknown_hostname拒绝未知的主机名的连接。所谓未知的主机名是指该主机没有DNS的A记录或MX记录。很多拨号用户的机器并没有对应的A记录或MX记录,所以要拨号用户连接会被弹回;不过,如果在之前设置了允许通过SASL认证的用户发信,那么通过了SASL认证的用户不会受到影响。所以一般可以设置使用,并且减少垃圾邮件的效果显著。unknown_hostname_reject_code指定了拒绝的返回状态码(默认是450)。连接方过滤规则连接方过滤规则连接方过滤规则连接方过滤规则(3)(3)vpermit_naked_ip_address允许直接使用IP地址的连接
17、。通常在HELO/EHLO中使用主机名而不是IP地址。vcheck_client_access maptype:mapname搜索名为mapname的maptype类型的访问数据库。可以根据HELO/EHLO发送的主机名、父域来匹配。连接方过滤范例连接方过滤范例连接方过滤范例连接方过滤范例vsmtpd_help_restrictions=check_client_access hash:/etc/postfix/access_helo,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_hostname发送者过滤发送者
18、过滤发送者过滤发送者过滤v在客户端发送了HELO/EHLO指令后,应通过MAIL FROM指令声明发送者的身份。v按照RFC规范,在MAIL FROM指令和下面的RCPT TO指令中应该使用RFC 821格式的邮件地址,但是有许多邮件客户端使用较新的RFC 822格式的邮件地址。如果希望打开对RFC 821格式的限制,可以将strict_rfc821_envelopes设置为yes。v通过Postfix的smtpd_sender_restrictions指令可以指定这个阶段的过滤规则。这个阶段可用的过滤规则除了公共规则和smtpd_client_restrictions的规则和smtpd_he
19、lo_restrictions的规则外还有:reject_unknown_sender_domainreject_rhsbl_sender domain.tldcheck_sender_access maptype:mapname reject_non_fqdn_senderreject_sender_login_mismatch发送者过滤规则发送者过滤规则发送者过滤规则发送者过滤规则(1)(1)vreject_unknown_sender_domain拒绝发送者邮件的域没有DNS的A记录或MX记录的连接。unknown_address_reject_code指定了拒绝的返回状态码(默认是45
20、0)。当进行DNS查询出现临时错误时(如查询超时)也总是返回450。vreject_non_fqdn_sender拒绝发送者邮件的域不是FQDN格式的连接。non_fqdn_reject_code指定了拒绝的返回状态码(默认是504)。发送者过滤规则发送者过滤规则发送者过滤规则发送者过滤规则(2)(2)vreject_rhsbl_sender domain.tld拒绝发送者邮件的域属于RHSBL黑名单的连接。通过检查一个域名是否存在于domain.tld的RHSBL中,可以判断该客户端是否被列入了domain.tld的实时黑名单,从而决定是否接受连接。maps_rbl_reject_code指
21、定了拒绝的返回状态码(默认是554)。vcheck_sender_access maptype:mapname搜索名为mapname的maptype类型的访问数据库。可以根据发送者邮件的邮件地址、名字、域和父域来匹配。发送者过滤规则发送者过滤规则发送者过滤规则发送者过滤规则(3)(3)vreject_sender_login_mismatch拒绝发送者在smtpd_sender_owner_maps中所匹配的用户名和SASL登录名不一致的连接。smtpd_sender_owner_maps指定了一个MAIL FROM地址与SASL登录名的对应数据库。发送者过滤范例发送者过滤范例发送者过滤范例发
22、送者过滤范例vsmtpd_sender_restrictions=check_sender_access hash:/etc/postfix/access_sender,reject_unknown_sender_domain,reject_rhsbl_sender dsn.rfc-ignorant.org,reject_non_fqdn_sender,reject_sender_login_mismatch接收者过滤接收者过滤接收者过滤接收者过滤(1)(1)v在MAIL FROM指令后要通过RCPT TO指令指定邮件接收者。v默认情况下,Postfix接收以下转发:可信客户端(mynetwo
23、rks)发往任何地址的邮件不可信客户端发往relay_domains指定的任何域及子域。除了带有邮件路由的地址。最后接收目的是如下的(它们不需要列在relay_domains中),参见check_recipient_maps:vinet_interfacesvmydestinationvvirtual_alias_domainsvvirtual_mailbox_domains接收者过滤接收者过滤接收者过滤接收者过滤(2)(2)v通过Postfix的smtpd_recipient_restrictions指令可以指定这个阶段的过滤规则。同以上的检查指令不同,为了避免开放转发,这个指令有默认值:p
24、ermit_mynetworks,reject_unauth_destination。vsmtpd_recipient_restrictions中必须指定以下条件之一,否则Postfix会拒绝接收邮件:rejectdeferdefer_if_permitreject_unauth_destination接收者过滤接收者过滤接收者过滤接收者过滤(3)(3)v这个阶段可用的过滤规则除了公共规则和smtpd_client_restrictions的规则和smtpd_helo_restrictions的规则和smtpd_sender_restrictions的规则外还有:permit_auth_des
25、tinationreject_unauth_destinationpermit_mx_backupcheck_recipient_access maptype:mapnamecheck_recipient_mapsreject_unknown_recipient_domainreject_rhsbl_recipient domain.tld reject_non_fqdn_recipientpermit_sasl_authenticated 接收者过滤规则接收者过滤规则接收者过滤规则接收者过滤规则(1)(1)vpermit_auth_destination允许发往默认转发和默认接收的连接。v可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Postfix 垃圾邮件 技术
限制150内