[2022] OpenLDAP 2.4.49

[2022] OpenLDAP 2.4.49

我刚刚开始使用 openLdap 2.4,但遇到了一些麻烦,我看到的所有示例似乎都参考了使用文本配置文件 slapd.conf 的先前版本,但从我看到的有关 v2.4 的讨论来看,这已被弃用。

我想也许我需要添加一个用户,并以他们的身份登录> 但是当我尝试运行 ldapadd 命令时,系统提示我输入密码:

Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

注意:我通过 yum(在 fedora 15 中)安装了 openldap 服务器,并且安装了 phpldapadmin,但如果有人有建议,也可以在命令行上尝试。

安装并启动后,我从搜索中得到以下响应:

# ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
# extended LDIF
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts 
dn:
namingContexts: dc=my-domain,dc=com    
# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

如果有帮助的话我很乐意删除并重新安装服务器,有人可以提供适用于 2.4 版新设置的提示链接吗?

答案1

slapd.conf 在 OpenLDAP 2.4 中仍然有效,尽管在文档中它可能被“淡化”了。

答案2

这是老问题了,但搜索时经常会出现这样的问题而没有答案。首先,运行 slappasswd 来生成密码。

slappasswd 
New password: ************
Re-enter new password: *************
{SSHA}OM5mbC3/kQPAg8MH6FOqXkATjLjt2IZ2

然后使用该值来填充后端的配置。

ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F

您的 dn 可能与此处显示的 dn 不同。在 RHEL7 上,配置数据库位于 /etc/openldap/slapd.d/cn=config。现在您可以使用默认 rootdn 登录。

如果愿意,您可以为根 DN 设置自己的值:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=manager,dc=example,dc=com
E0F

答案3

[2022] OpenLDAP 2.4.49

CVVS 在 2014 年给出的答案是几乎仍然适用。只需进行 2 处更改即可使其再次起作用:

  1. 数据库的索引现在olcDatabase={1}mdb代替了{2}hdb。(cn=config保留)。
  2. 您必须使用修改类型replace而不是add

把它放在一起:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}qUoTRPwppaedqHQTgYOPYWokr3SiXjbK
E0F

答案4

这是我的工作解决方案:

ldapsearch -LLL -Y EXTERNAL -H  ldapi:/// -b cn=config olcRootDN=cn=admin,dc=my,dc=company,dc=com dn olcRootDN olcRootPW

现在通过以下方式创建新密码:

NEW_PWD={{TYPE_NEW_PASSWORD_HERE}}

PWD_HASH=$(slappasswd -s ${NEW_PWD})
echo "Your password hash is \"${PWD_HASH}\"."

粘贴以下代码:

ldapmodify -Y EXTERNAL -H ldapi:/// << E0F
dn: olcDatabase={1}mdb,cn=config
replace: olcRootPW
olcRootPW: ${PWD_HASH}
E0F

你会得到:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}mdb,cn=config
olcRootDN: cn=admin,dc=my,dc=company,dc=com
olcRootPW: {SSHA}k1S8N/A4eb7Ds8oBgAhb9TmPfVT9vl2U

要修复两个密码访问(旧密码和新密码),请粘贴:

OLD_PWD=admin

ldappasswd -h localhost -p 389 -x -D "cn=admin,dc=my,dc=company,dc=com" -w "${OLD_PWD}" -a "${OLD_PWD}" -s "${NEW_PWD}"

相关内容