您的位置:首页 > 其它

限制部分Postfix用户只能内部收发的例子(完整版)

2013-05-15 09:44 253 查看
1)在main.cf里定义如下的smtpd_restriction_classes:

# restrictions

smtpd_restriction_classes = local_out_only local_in_only

local_out_only = check_recipient_access hash:/etc/postfix/local_domains, reject

local_in_only = check_sender_access hash:/etc/postfix/local_domains, reject

2)将main.cf里的smtpd_recipient_restrctions定义为:

smtpd_recipient_restrictions =

        check_sender_access hash:/etc/postfix/local_out_senders

        check_recipient_access hash:/etc/postfix/local_in_senders

        permit_mynetworks,

        permit_sasl_authenticated,

        reject_non_fqdn_hostname,

        reject_non_fqdn_sender,

        reject_non_fqdn_recipient,

        reject_unauth_destination,

        reject_unauth_pipelining,

        reject_invalid_hostname,

3)编辑/etc/postfix/local_in_senders:

foo@extmail.org local_in_only
bar@extmail.org local_in_only

4)编辑/etc/postifx/local_out_senders:

foo@extmail.org local_out_only
bar@extmail.org local_out_only

5)编辑/etc/postfix/local_domains:

internal.foo.com         OK

internal.bar.com         OK

6)为3,4,5建立对应的hash文件:

# postmap hash:/etc/postfix/local_in_senders

# postmap hash:/etc/postfix/local_out_senders

# postmap hash:/etc/postfix/local_domains

这样就定义了extmail.org域名里两个用户foo和bar,只允许和internal.foo.com和internel.bar.com 两个内部域的用户来往邮件,对于外部的邮件则没有收或发的能力。如果外部邮件企图给这2个用户发送,则遇到如下错误:

554 5.7.1 <foo@extmail.org>: Recipient address rejected: Access denied

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

554 5.7.1 <bar@extmail.org>: Sender address rejected: Access denied

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

转自:http://www.extmail.org/forum/viewthread.php?tid=6447

service postfix restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: