Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82696
  • 博文数量: 22
  • 博客积分: 241
  • 博客等级: 二等列兵
  • 技术积分: 273
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 18:30
文章分类

全部博文(22)

文章存档

2014年(22)

我的朋友

分类: 系统运维

2014-06-28 11:00:27

利用check_client_access 规则,只允许它和指定的内部域名(用户)联系,对于发向任何外部邮件域,或任意外部邮件域发来的邮件,都是禁止的。



1、自定义限制类

在main.cf添加如下行:

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_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、建立hash文件

# vi /etc/postfix/local_in_senders:

foo@ext.org local_in_only

bar@ext.org local_in_only


# vi /etc/postifx/local_out_senders:

foo@ext.org local_out_only

bar@ext.org local_out_only


# vi /etc/postfix/local_domains:

internal.foo.com         OK

internal.bar.com         OK


# postmap hash:/etc/postfix/local_in_senders

# postmap hash:/etc/postfix/local_out_senders

# postmap hash:/etc/postfix/local_domains


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

554 5.7.1 : Recipient address rejected: Access denied


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

554 5.7.1 : Sender address rejected: Access denied


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

阅读(1596) | 评论(0) | 转发(0) |
0

上一篇:单机MySQL多实例配置运行

下一篇:DSPAM优化

给主人留下些什么吧!~~