You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Postfix结合Active Directory按用户组限制发件人权限与发件域名的配置咨询

关于Postfix结合Active Directory按用户组限制发件人权限与发件域名的配置咨询

当然可以实现这个需求!我来一步步给你讲怎么配置,前提是你的Postfix已经和Dovecot+AD认证正常工作哈:

第一步:让Dovecot获取用户的AD组信息

Postfix需要知道用户属于哪个AD组,所以得先让Dovecot在认证时把用户的组信息传递给Postfix:

  1. 打开Dovecot的LDAP认证配置文件(一般是/etc/dovecot/conf.d/auth-ldap.conf.ext),添加用户属性映射,把AD的memberOf属性(用户所属组的DN)传递给Postfix:
user_attrs = =userGroups=%{ldap:memberOf}

如果你想更精准,也可以直接过滤出目标组的标记,但直接传递memberOf会更灵活。
2. 确保/etc/dovecot/conf.d/10-auth.conf里的auth_username_format = %n配置正确,这样用户名格式能和Postfix兼容。

第二步:配置Postfix按组限制发件域名

接下来在Postfix里定义不同组的发件规则:

  1. 编辑/etc/postfix/main.cf,添加限制类和检查规则:
# 定义两个组的专属限制规则
smtpd_restriction_classes = group_a_restrictions, group_b_restrictions

# Group A用户只能使用@a.local发件
group_a_restrictions =
    check_sender_access hash:/etc/postfix/group_a_senders,
    reject_sender_login_mismatch,
    permit

# Group B用户只能使用@b.local发件
group_b_restrictions =
    check_sender_access hash:/etc/postfix/group_b_senders,
    reject_sender_login_mismatch,
    permit

# 在发件人限制中加入组检查逻辑
smtpd_sender_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    # 替换成你AD中Group A的完整DN
    check_sasl_attr userGroups=cn=GroupA,ou=Groups,dc=yourdomain,dc=local group_a_restrictions,
    # 替换成你AD中Group B的完整DN
    check_sasl_attr userGroups=cn=GroupB,ou=Groups,dc=yourdomain,dc=local group_b_restrictions,
    reject_unauth_destination
  1. 创建发件域名限制文件:
    • 新建/etc/postfix/group_a_senders,内容如下:
      @a.local OK
      * REJECT 你仅被允许使用@a.local域名发件
      
    • 新建/etc/postfix/group_b_senders,内容如下:
      @b.local OK
      * REJECT 你仅被允许使用@b.local域名发件
      
  2. 生成Postfix需要的哈希表:
postmap /etc/postfix/group_a_senders
postmap /etc/postfix/group_b_senders

第三步:重启服务并验证

最后重启Postfix和Dovecot使配置生效:

systemctl restart postfix dovecot

现在你可以用Group A的用户尝试发@b.local的邮件,应该会收到拒绝提示;Group B的用户发@a.local同理也会被拦截,只有使用对应组的域名才能正常发件。

注意事项

  • 一定要替换配置里的组DN为你AD中实际的GroupA、GroupB的完整DN,不然匹配会失败。
  • 如果用户同时属于多个组,你可能需要调整规则优先级,避免冲突。
  • 可以用postconf -n检查Postfix配置是否正确加载,dovecot -n验证Dovecot的LDAP属性映射是否生效。

备注:内容来源于stack exchange,提问作者Laskus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:25:31