我在 Ubuntu 12.04 上有以下版本:
OpenLDAP: slapd (Sep 19 2013 22:49:31) $
buildd@batsu:/build/buildd/openldap-2.4.28/debian/build/servers/slapd
Run Code Online (Sandbox Code Playgroud)
OpenLDAP 现在提供 SSHA 作为默认哈希。我想使用不同的哈希。然而,旧的教程基于编辑/etc/ldap/slapd.conf
,在较新版本的 OpenLDAP 中已经消失。我应该更改哪个文件?
Cpp*_*ner 11
好的。我在 IRC 和阅读手册页的帮助下发现了这一点。
假设您不想重新创建任何东西,只想将密码哈希添加到现有的 LDAP 后端,并且您正在运行 Ubuntu(这仅在 Ubuntu 机器上测试,但该方法应该与操作系统无关):
我们将ldapmodify
用于添加、修改和删除条目。
第 1 步:创建 test.conf
我们将创建一个名为的文件test.conf
并添加以下内容:
dn: olcDatabase={-1}frontend,cn=config
add: olcPasswordHash
olcPasswordHash: {CRYPT}
Run Code Online (Sandbox Code Playgroud)
dn
如果您有不同的数据库,则不同。我一开始不知道该放在哪里,所以我模拟了:
sudo su # do this as root
cd /etc/ldap/
mkdir test.d
slaptest -f test.conf -F test.d
Run Code Online (Sandbox Code Playgroud)
最后一个命令将转换现有的test.conf(我的名字在著名的老的slapd.conf)为新的cn=config
格式。
如果您找到tree
该test.d
目录,并且如果您阅读每个 ldif 文件,您将准确找到要修改的文件。在我的情况下(可能适用于所有 Ubunut 用户),它将是olcDatabase={-1}frontend.ldif
.
另一件事是cn=config
。这是因为该 ldif 文件存在于cn=config
目录下。
这是找出属性应该属于哪里的好方法。
第 2 步:运行 ldapmodify
root@test32giab:/etc/ldap# ldapmodify -Y EXTERNAL -H ldapi:/// -f test.conf
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={-1}frontend,cn=config"
Run Code Online (Sandbox Code Playgroud)
如果您现在检查 ldif 文件,它应该具有olcPasswordHash
属性。
如果要指定散列的格式,可以这样做。假设您遵循前两个步骤,您要么注释掉所有内容,要么从一个新文件开始。该文件需要包含以下几行:
dn: cn=config
add: olcPasswordCryptSaltFormat
olcPasswordCryptSaltFormat: $5$rounds=8000$%.16s
Run Code Online (Sandbox Code Playgroud)
使用相同的ldapmodify
命令运行它。现在 LDAP 帐户将使用 SHA-256($6$
即 SHA-512)加上 16-char long salt 进行散列并散列 8000 次。
该dn
条目是cn=config
因为此值(基于我使用步骤 1 的模拟)在cn=config.ldif
文件中。
要了解格式,请查看http://www.openldap.org/lists/openldap-technical/201305/msg00002.html
如果您正在尝试不同的格式,您可以尝试使用replace
方法。所以文件看起来像这样。
dn: cn=config
replace: olcPasswordCryptSaltFormat
olcPasswordCryptSaltFormat: $5$%.16s
Run Code Online (Sandbox Code Playgroud)
现在我删除了 8000 次迭代。我认为默认情况下 SHA5-256-CRYPT 被散列 5000 次。
您可以通过执行man ldapmodify
并向下滚动到手册页底部附近来阅读有关此内容的更多信息。