我有两个 OpenLDAP 目录服务器。一个是标准的 Zimbra OpenLDAP 服务器。帐户的密码使用 SSHA-512 哈希方法。
当我将这些帐户复制到已编译并安装 sha2 模块的标准 OpenLDAP 服务器时,仅支持 SHA-512。
我无法成功绑定具有 SSHA-512 哈希方法的帐户。我可以使用外部 LDAP 浏览器验证密码是否正确,但无法绑定。消息始终是凭据无效。身份验证失败 [LDAP:错误代码 49 - 凭据无效]
这是 Zimbra OpenLDAP 服务器特有的哈希方法吗?这是 Zimbra 社区创建的哈希方法吗?
为什么 Zimbra 社区会使用非标准哈希方法?
我们在哪里可以找到这个 SSHA-512 哈希方法?所以我们可以将其添加到标准 OpenLDAP 服务器中。
OpenLDAP 网站上有“OpenLDAP 支持 RFC 2307 密码,包括 {SHA}、{SSHA} 和其他方案。此类密码可用作 userPassword 值和/或 rootpw 值。请参阅 (Xref) 什么是 RFC 2307 散列用户密码?。{SHA} 和 {SSHA} 是使用 SHA1 安全散列算法的 RFC 2307 密码方案。{SSHA} 是种子变体。与其他 RFC 2307 方案相比,建议使用 {SSHA}。”
此信息不正确。我确实创建了 slapd-sha2.so 模块,例如此处所述https://github.com/gcp/openldap/tree/master/contrib/slapd-modules/passwd/sha2
但是按照此说明将确保不支持 SSHA,而仅支持 SHA。
答案1
slapd.conf
您需要在在线配置中告诉 OpenLDAP 使用哪种方案:
- 其中
slapd.conf
有password-hash
条目。 - 在在线配置中,它是
olcPasswordHash
顶级olcGlobal
配置对象中的条目。
将其设置为{SSHA}
。
答案2
我知道这是一篇老帖子,但我遇到了类似的问题,解决方案是加载 de 模块以支持 SSHA-2 算法。在文件中包括slapd.conf
以下行:
moduleload pw-sha2.la
我希望这对某人有帮助;-)
答案3
在没有 *.conf 的较新的系统上,创建一个内容/tmp/hash
为以下内容的文件:
dn: olcDatabase={-1}frontend,cn=config
add: olcPasswordHash
olcPasswordHash: {SSHA}
然后:
apt install ldap-utils
ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/hash