限制部分Postfix用户只能内部收发的例子(完整版) (已验证)
Friday, December 12, 2008
最近本来已经很太平的公司邮箱系统又开始有垃圾邮件了,而且还有羊毛文的。
经过几天的观察,大都是通过公司群发邮件列表发到每个用户邮箱的。
原因找到了,想到2个方案进行解决
1、修改公司群发邮件列表mail地址。
2、限定公司群发列表的收发权限。
最后还是采用了方案2,网上搜索了一下,并结合自己的内容,进行了测试。
以下是具体的实施步骤。
1)在main.cf里定义如下的smtpd_restriction_classes:
# restrictions
smtpd_restriction_classes=local_in_only local_out_only
local_in_only=check_sender_access hash:/usr/local/etc/postfix/local_domains,reject
local_out_only=check_recipient_access hash:/usr/local/etc/postfix/local_domains,reject
解释:
local_in_only=check_sender_access hash:/usr/local/etc/postfix/local_domains,reject
接收限制,规则外部发送者的域名hash表
local_out_only=check_recipient_access hash:/usr/local/etc/postfix/local_domains,reject
发送限制,规则外部接受者的域名hash表
注意要顶格写,否则会报错
2)将main.cf里的smtpd_recipient_restrctions定义为:
smtpd_recipient_restrictions =
check_recipient_access hash:/usr/local/etc/postfix/local_in_senders,
check_sender_access hash:/usr/local/etc/postfix/local_out_senders,
解释:
check_recipient_access hash:/usr/local/etc/postfix/local_in_senders,
接受限制,检查内部接受者是否在local_in_senders,接受限制表中
check_sender_access hash:/usr/local/etc/postfix/local_out_senders,
发送限制,检查内部接受者是否在local_iout_senders,发送限制表中
3)编辑/usr/local/etc/postfix/local_domains:
internal.foo.com OK
internal.bar.com OK
4)编辑/usr/local/etc/postfix/local_in_senders:
foo@extmail.org local_in_only
bar@extmail.org local_in_only
5)编辑/usr/local/etc/postfix/local_out_senders:
foo@extmail.org local_out_only
bar@extmail.org local_out_only
6)为3,4,5的文件建立hash
postmap hash:/usr/local/etc/postfix/local_domains
postmap hash:/usr/local/etc/postfix/local_in_senders
postmap hash:/usr/local/etc/postfix/local_out_senders
注意:最好用root生成上述hash
7)重启postfix
/usr/local/etc/rc.d/postfix restart
这样就定义了extmail.org域名里两个用户foo和bar,只允许和internal.foo.com和internel.bar.com 两个内部域的用户来往邮件,对于外部的邮件则没有收或发的能力。如果外部邮件企图给这2个用户发送,则遇到如下错误:
QUOTE:
554 5.7.1
如果这2个内部用户要给外部用户发email,将遇到如下错误:
QUOTE:
554 5.7.1
目前这样的配置就可以比较完整的实现内部用户的功能需求了。其实这种配置的方法和之前的帖子道理一样,关键得分清楚什么阶段,调用什么restrictions即可。
参考:
1)http://blog.chinaunix.net/u1/54725/showart_437496.html
2)http://www.extmail.org/forum/viewthread.php?tid=524&extra=&page=1