我正在使用 Virtualmin 和 Postfix 设置 CentOS 服务器,并尝试使用 LDAP 存储 unix 用户、组、Postfix 别名和虚拟域。我正在关注Webmin 网站上的说明。
我已经创建了一个 LDAP 域,并配置了 Postfix 以从 LDAP 获取别名和虚拟域,但为了做到这一点,我必须将 postfix 配置为使用主 LDAP 帐户进行身份验证。cn=Manager,dc=mydomain,dc=com
这似乎是个糟糕的主意,因为该帐户可以访问用户和组,而 postfix 不需要访问这些内容。
如何为 Postfix 创建一个只能访问 Postfix 所需的 LDAP 树的新 LDAP 帐户?
答案1
你需要做两件事:
- 在 LDAP 目录中创建一个 Postfix 可以绑定(连接)的对象
- 在 OpenLDAP 的配置中写入 ACL,以允许此用户绑定,并根据需要搜索树
要为 Postfix 添加简单条目,请使用图形 LDAP 浏览器(例如Apache 目录工作室或者使用命令行工具ldapadd
。像这样添加一个对象:
dn: cn=postfix,ou=Applications,dc=mydomain,dc=com
cn: postfix
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}n+aYhO/TOitWkyMp9v/fe5ndtOhY0/3U
最后一行是您要使用的密码的哈希值,通过 slappasswd 实用程序生成:
$ slappasswd -s secret
{SSHA}n+aYhO/TOitWkyMp9v/fe5ndtOhY0/3U
完成后,向您的 slapd.conf 添加一些 ACL,如下所示:
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
查看OpenLDAP 管理指南有关访问控制的章节了解有关编写 ACL 及其解释的更多详细信息。注意它们的顺序,这很重要!
答案2
这部分“火箭科学家的 LDAP”解释了如何为 LDAP 服务器树的各个部分设置 ACL。