LDAP (slapd) 创建可以访问特定树的用户

Jos*_*osh 5 permissions ldap

我正在使用 Virtualmin 和 Postfix 设置 CentOS 服务器,并且我正在尝试使用 LDAP 来存储 unix 用户、组、Postfix 别名和虚拟域。我正在按照Webmin 网站的说明进行操作

我已经创建了一个 LDAP 域并配置了 Postfix 以从 LDAP 获取别名和虚拟域,但是为了做到这一点,我必须配置 postfix 以使用主 LDAP 帐户进行身份验证cn=Manager,dc=mydomain,dc=com。这似乎是一个糟糕的主意,因为该帐户可以访问用户和组,而 postfix 不需要访问。

如何为 Postfix 创建一个新的 LDAP 帐户,它只能访问 Postfix 需要的 LDAP 树?

Jon*_*rke 9

你需要做两件事:

  1. 在LDAP目录中创建一个Postfix可以绑定(连接到)的对象
  2. 在 OpenLDAP 的配置中编写 ACL 以允许此用户绑定,并根据需要搜索树

要为 Postfix 添加一个简单的条目,请使用图形化 LDAP 浏览器(例如Apache Directory Studio或命令行工具)ldapadd。添加如下对象:

dn: cn=postfix,ou=Applications,dc=mydomain,dc=com
cn: postfix
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}n+aYhO/TOitWkyMp9v/fe5ndtOhY0/3U
Run Code Online (Sandbox Code Playgroud)

最后一行是您要使用的密码的哈希值,通过 slappasswd 实用程序生成:

$ slappasswd -s secret
{SSHA}n+aYhO/TOitWkyMp9v/fe5ndtOhY0/3U
Run Code Online (Sandbox Code Playgroud)

完成后,将一些 ACL 添加到您的 slapd.conf 中,如下所示:

access to dn.sub="dc=mydomain,dc=com" attrs=userPassword
    by anonymous auth

access to dn.sub="ou=people,dc=mydomain,dc=com"
    by dn.exact="cn=postfix,ou=Applications,dc=mydomain,dc=com" read
Run Code Online (Sandbox Code Playgroud)

有关编写 ACL 及其解释的更多详细信息,请参阅有关访问控制OpenLDAP 管理指南章节。注意它们的顺序,这很重要!