限制部分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 : Recipient address rejected: Access denied

如果这2个内部用户要给外部用户发email,将遇到如下错误:


QUOTE:
554 5.7.1 : Sender address rejected: Access denied

目前这样的配置就可以比较完整的实现内部用户的功能需求了。其实这种配置的方法和之前的帖子道理一样,关键得分清楚什么阶段,调用什么restrictions即可。

参考:
1)http://blog.chinaunix.net/u1/54725/showart_437496.html
2)http://www.extmail.org/forum/viewthread.php?tid=524&extra=&page=1

Posted by Michael.Ding at 2:41 PM

0 comments:

Post a Comment