1.2.4. 使用 LDAP 作为 Dovecot 身份验证后端


LDAP 目录中的用户通常可以向目录服务进行身份验证。Dovecot 可在用户登录到 IMAP 和 POP3 服务时使用此来验证它们。这个验证方法有几个优点,例如:

  • 管理员可以在目录中集中管理用户。
  • LDAP 帐户不需要任何特殊属性。它们只需要能够向 LDAP 服务器进行身份验证。因此,此方法独立于 LDAP 服务器上使用的密码存储方案。
  • 用户不需要通过名称服务交换机(NSS)界面和可插拔验证模块(PAM)框架在服务器上本地提供。

先决条件

  • Dovecot 已安装。
  • 虚拟用户功能已配置。
  • 到 LDAP 服务器的连接支持 TLS 加密。
  • Dovecot 服务器上的 RHEL 信任 LDAP 服务器的证书颁发机构(CA)证书。
  • 如果用户存储在 LDAP 目录中的不同树中,则存在用于 Dovecot 的专用 LDAP 帐户,以搜索目录。此帐户需要搜索其他用户的可辨识名称(DN)的权限。
  • 如果启用了 FIPS 模式,这个 Dovecot 服务器支持 Extended Master Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅红帽知识库解决方案 强制实施 TLS 扩展"Extended Master Secret"

流程

  1. /etc/dovecot/conf.d/10-auth.conf 文件中配置身份验证后端:

    1. 注释掉您不需要的 auth-*.conf.ext 身份验证后端配置文件的 include 语句,例如:

      #!include auth-system.conf.ext
    2. 通过取消下列行的注释来启用 LDAP 身份验证:

      !include auth-ldap.conf.ext
  2. 编辑 /etc/dovecot/conf.d/auth-ldap.conf.ext 文件,并按如下所示将 override_fields 参数添加到 userdb 部分:

    userdb {
      driver = ldap
      args = /etc/dovecot/dovecot-ldap.conf.ext
      override_fields = uid=vmail gid=vmail home=/var/mail/%n/
    }

    由于值固定,Dovecot 不会从 LDAP 服务器查询这些设置。因此,这些属性也不是必须出现。

  3. 使用以下设置创建 /etc/dovecot/dovecot-ldap.conf.ext 文件:

    1. 根据 LDAP 结构,配置以下之一:

      • 如果用户存储在 LDAP 目录中的不同树中,请配置动态 DN 查找:

        dn = cn=dovecot_LDAP,dc=example,dc=com
        dnpass = <password>
        pass_filter = (&(objectClass=posixAccount)(uid=%n))

        Dovecot 使用指定的 DN、密码和过滤器在目录中搜索身份验证用户的 DN。在此搜索中,Dovecot 将过滤器中的 %n 替换为用户名。请注意,LDAP 搜索必须只返回一个结果。

      • 如果所有用户都存储在特定条目下,请配置 DN 模板:

        auth_bind_userdn = cn=%n,ou=People,dc=example,dc=com
    2. 启用绑定到 LDAP 服务器的身份验证以验证 Dovecot 用户:

      auth_bind = yes
    3. 将 URL 设置为 LDAP 服务器:

      uris = ldaps://LDAP-srv.example.com

      为安全起见,只能通过在 LDAP 协议上使用 LDAPS 或 STARTTLS 命令来使用加密连接。对于后者,在设置中额外添加 tls = yes

      对于正常工作的证书验证,LDAP 服务器的主机名必须与其 TLS 证书中使用的主机名匹配。

    4. 启用 LDAP 服务器的 TLS 证书的验证:

      tls_require_cert = hard
    5. 将基本 DN 设置为要开始搜索用户的 DN:

      base = ou=People,dc=example,dc=com
    6. 设置搜索范围:

      scope = onelevel

      Dovecot 仅在指定的基本 DN 中使用 onelevel 范围搜索,并且也使用子树中的 subtree 范围搜索。

  4. /etc/dovecot/dovecot-ldap.conf.ext 文件设置安全权限:

    # chown root:root /etc/dovecot/dovecot-ldap.conf.ext
    # chmod 600 /etc/dovecot/dovecot-ldap.conf.ext

后续步骤

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部