hew 2008-3-14 17:23
postfix相关问题
[color=#000000][b]postfix的频率控制有几个:[/b][/color]
smtpd_client_connection_rate_limit=5
ip地址连接的频率控制.
smtpd_client_message_rate_limit=5
客户端发送邮件的频率控制.(某种情况下smtpd_client_message_rate_limit和smtpd_client_connection_rate_limit的效果是一样.smtpd_client_connection_rate_limit是指连接到服务器25端口就开始计算,smtpd_client_message_rate_limit是发送邮件时计算.)
smtpd_client_recipient_rate_limit=10
rcpt to的频率控制,也就是说TO了多少个人.
smtpd_client_event_limit_exceptions(default: $mynetworks)
指不做频率控制检测的网络,默认是mynetworks.
[b]查postfix的版本号[/b]
postconf mail_version
[size=16px][b][size=2]postfix例外某些被列入rbl的IP地址[/size][/b][/size]
[size=16px][size=2]([url=http://bbs.chinaunix.net/thread-1045540-1-1.html][color=#0000ff]http://bbs.chinaunix.net/thread-1045540-1-1.html[/color][/url])[/size][/size]
[size=16px][size=2][color=#000000]我在postfix里设置了rbl检查,我想问可不可以在postfix的main.cf里设置hash maps或者regrex maps例外某些被列入rbl的地址呢?
因为使用了rbl的确能把很多垃圾邮件地址挡掉,但我们公司有些客户的邮件系统地址也被列入rbl,申请撤离后没多久又被加入黑名单,故此想知道有没有办法可以既使用rbl功能,又对某些有用但被列入rbl的邮件地址进行例外通过。
之前用了一个办法: 将rbl整合到spamassassin里,不加到postfix直接当掉,但发现好像效果不佳,而且评分要抓的很小心。所以想问问有没有上面我所想的办法[/color][/size][/size]
[size=16px][size=2][/size][/size]
[size=16px][size=2]测试发现不行。 我说说我的具体测试过程吧:
我的rbl check是加在 smtpd_recipient_restrictions 和 smtpd_client_restrictions 中,而我在此两项参数中加入了check_recipient_access regexp:/etc/postfix/pass_ip 和 check_client_access regexp:/etc/postfix/pass_ip , 形成以下配置参数。[/size][/size]
[size=16px][size=2]smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access regexp:/etc/postfix/pass_ip, reject_unauth_destination, reject_non_fqdn_hostname, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_invalid_hostname, reject_rbl_client cbl.anti-spam.org.cn=127.0.8.2, reject_rbl_client cdl.anti-spam.org.cn=127.0.8.4, reject_rbl_client cblplus.anti-spam.org.cn=127.0.8.6, reject_rbl_client cblless.anti-spam.org.cn=127.0.8.5
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access regexp:/etc/postfix/pass_ip, reject_unknown_client, reject_rbl_client cbl.anti-spam.org.cn=127.0.8.2, reject_rbl_client cdl.anti-spam.org.cn=127.0.8.4, reject_rbl_client cblplus.anti-spam.org.cn=127.0.8.6, reject_rbl_client cblless.anti-spam.org.cn=127.0.8.5[/size][/size]
[size=16px][size=2]我在/etc/postfix/pass_ip加入被列入RBL的IP地址。例如:(正则表示法)[/size][/size]
[size=16px][size=2]/203.86.17.3$/ OK
/203.169.153.88$/ OK[/size][/size]
[size=16px][size=2]运行: /usr/sbin/postmap -q - regexp:/etc/postfix/pass_ip < /etc/postfix/pass_ip 和 /usr/sbin/postfix reload 后
被列入RBL的IP依然被挡了,是不是这个access表不应该加在那两个参数中啊? 应该加在sender check中?[/size][/size]
[size=16px][size=2]好像应该使用的是check_sender_access而不是check_recipient_access和check_client_access,我先试试[/size][/size]
[size=16px][size=2]实验证明,的确是用check_sender_access加在那两个参数里。而且maps里面的内容必须是邮件地址或域名[/size][/size]
[size=16px][size=2]我还尝试了一个解决办法:
smtpd_restriction_classes = from_freemail_host
from_freemail_host = check_client_access hash:/etc/postfix/freemail_hosts, reject
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/freemail_access
smtpd_client_restrictions = check_sender_access hash:/etc/postfix/freemail_access[/size][/size]
[size=16px][size=2]/etc/postfix/freemail_access的格式
yahoo.com from_freemail_host
/etc/postfix/freemail_hosts的格式:
yahoo.com OK
以上办法证实是可行的,但要注意一点,如果你的postfix同时配置了防止假冒地址(Preventing sender spoofing)的话,以上动作会使从yahoo.com发过来的信都会显示:'554 5.7.1 <[/size][email=XXXX@yahoo.com][size=2][color=#0000ff]XXXX@yahoo.com[/color][/size][/email][size=2]>: Sender address rejected: Access denied'。
解决办法就是把yahoo.com的mx记录的ip地址也加入到freemail_access和freemail_hosts中去。
以上所说的方法同时适用于例外某些没有反解的但又需要正常联系的邮件地址。[/size][/size]