我正在尝试在 Centos 7 上配置 Openldap v2.4。我已经安装slapd
并配置了服务器。我已经生成了密码并通过修改命令添加到我的配置中。这一切都很顺利,我可以添加到服务中并在提示时输入我的密码。我遇到的问题是当我通过服务重新启动时,systemctl restart/start slapd
我的密码无法识别。我收到以下错误:
ldapadd -x -W -D "cn=ldapadm,dc=nrdevopspoc,dc=com" -f base.ldif
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
我在这里遗漏了什么?
我基本上执行了以下步骤:
yum install openldap openldap-servers openldap-clients
然后我通过 启动系统systemctl start slapd
。然后我通过 slappasswd 设置 slapd 密码并复制 SSHA 密钥。然后我创建了一个数据库配置文件,内容如下:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=itzgeek,dc=local
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=itzgeek,dc=local
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3
然后我通过以下方式修改 ldap db
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
这工作正常并接受了密码。此时我通过 重新启动了 slapd 服务systemctl restart slapd
。
每当我再次运行修改命令时,我都会收到无效的凭据,并且它不会像重启之前那样接受我的 ldap 密码。
答案1
根据您的编辑:
您应该使用cn=ldapadm,dc=itzgeek,dc=local
作为您的 binddn,而不是cn=ldapadm,dc=nrdevopspoc,dc=com
。也就是说,如果您的“base.ldif”文件试图修改itzgeek,dc=local
。
如果您尝试进行更多cn=config
操作,您仍应该使用ldapmodify -Y EXTERNAL -H ldapi:///
,因为它看起来似乎并没有取代默认的cn=config
访问控制。