将 exim4 连接到远程服务器上的 openldap

将 exim4 连接到远程服务器上的 openldap

我有一台运行 qmail 的服务器,该服务器在 ubuntu 版本 8 服务器上有大约 300 个用户帐户。我想将 qmail 迁移到新的 mta,例如 exim4.x。我有一个使用 redhat enterprise 版本 6 设置的 VM,用于测试邮件迁移过程。在我的 VM 上,我使用 YuM 安装了 exim,还从源代码安装了 courier-imap 版本 4.x。两个服务都在运行。使用 VM 服务器上的 maildirmake 命令,我在 qmail ubuntu(当前邮件服务器)上创建了所有 Maildir 目录的完全相同的列表。我假设我可以将 qmail 服务器邮箱中的所有电子邮件 rsync 到新的 exim 系统?在 qmail 服务器上还安装并配置了 openldap。如何使新 exim VM 服务器上的帐户通过 qmail 服务器上当前配置的 openldap 服务器进行身份验证?这是我需要通过 courier-imap 或 /etc/exim/exim.conf 文件配置的内容吗?

希望我说得有道理。谢谢你的帮助。

答案1

您可以设置perdition为前端代理,这样您就可以一次移动一个帐户;如果您这样做,您可以最大限度地减少停机时间,并确保您的测试帐户首先被移动。

您需要配置两个都IMAP 服务器和 Exim 处理 LDAP 中的查找。

对于 Exim,在主要部分设置:

ldap_default_servers = ldap.server.example.com

然后编写一个用于${ldapauth{...}}进行身份验证的“身份验证器”。例如,稍微改变一下 Exim 规范中的一个例子,我们有:

plain:
  driver = plaintext
  public_name = PLAIN
  server_prompts = :
  server_advertise_condition = ${if def:tls_cipher}
  server_condition = ${if and{{ \
    !eq{}{$auth2} }{ \
    ldapauth{\
      user="uid=${quote_ldap_dn:$auth2},ou=people,o=example.org" \
      pass=${quote:$auth3} \
      ldap://ldap.example.org/} }} }
  server_set_id = uid=$auth2,ou=people,o=example.org

更改是使用 PLAIN 而不是 LOGIN 并限制为仅 TLS。本例中未使用 ldap_default_servers;我认为可以从 ldapauth 内部删除 URL,而且无论如何,对于其他一些查询来说,拥有它是有用的。

我不是 Courier 方面的专家,但我相信http://www.courier-mta.org/authlib/README_authlib.html#authldap有你需要的东西。

相关内容