OpenLDAP 上的 SSHA 密码加密
SSHA password encryption on OpenLDAP
我目前的问题是我无法阻止 OpenLDAP 将密码存储为纯文本。在较旧的 openLDAP 版本中,我在 slapd.conf
中输入了以下配置
ppolicy_hash_cleartext
password-hash {SSHA} {SHA}
因此,一旦我的应用程序以明文形式发送了密码,ldap 就会对其进行加密并加密存储。
不幸的是我无法配置 OpenLDAP 2.4.40。我发现 slapd.conf 在较新版本中不再存在,而是在 cn=config.ldif 文件中进行配置。
我尝试在那里再次添加相同的配置,但似乎没有效果。
EDIT :我在 olcBackend={0}mdb.ldif 中添加了 ldapmodify olcPasswordHash: {SSHA} 条目, olcDatabase={1}mdb.ldif , olcDatabase={0}config.ldif 和 cn=config.ldif ,仍然以明文形式发送的我的密码存储为明文。
花了一些时间,但终于想通了。
加载描述 ppolicy 属性的架构。
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
创建一个包含以下内容的 ppolicy_module.ldif 并确保 ppolicy.la 位于定义的 olcModulePath 下。将文件存储在 /etc/ldap
下
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModuleLoad: ppolicy.la
olcModulePath: /usr/lib/ldap
添加ppolicy_module.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f ppolicy_module.ldif
创建一个包含以下内容的 ppolicy-overlay.ldif 文件。确保 olcDatabase 编号。在这种情况下,它是 olcDatabase={1}mdb 。将文件存储在 /etc/ldap
下
dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=ppolicy,ou=policies,dc=example,dc=com
olcPPolicyUseLockout: FALSE
olcPPolicyHashCleartext: TRUE
添加 LDIF 文件。
ldapadd -Y EXTERNAL -H ldapi:/// -f ./ppolicy-overlay.ldif
重新启动 ldap。
我目前的问题是我无法阻止 OpenLDAP 将密码存储为纯文本。在较旧的 openLDAP 版本中,我在 slapd.conf
中输入了以下配置ppolicy_hash_cleartext
password-hash {SSHA} {SHA}
因此,一旦我的应用程序以明文形式发送了密码,ldap 就会对其进行加密并加密存储。
不幸的是我无法配置 OpenLDAP 2.4.40。我发现 slapd.conf 在较新版本中不再存在,而是在 cn=config.ldif 文件中进行配置。
我尝试在那里再次添加相同的配置,但似乎没有效果。
EDIT :我在 olcBackend={0}mdb.ldif 中添加了 ldapmodify olcPasswordHash: {SSHA} 条目, olcDatabase={1}mdb.ldif , olcDatabase={0}config.ldif 和 cn=config.ldif ,仍然以明文形式发送的我的密码存储为明文。
花了一些时间,但终于想通了。
加载描述 ppolicy 属性的架构。
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
创建一个包含以下内容的 ppolicy_module.ldif 并确保 ppolicy.la 位于定义的 olcModulePath 下。将文件存储在 /etc/ldap
下dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModuleLoad: ppolicy.la
olcModulePath: /usr/lib/ldap
添加ppolicy_module.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f ppolicy_module.ldif
创建一个包含以下内容的 ppolicy-overlay.ldif 文件。确保 olcDatabase 编号。在这种情况下,它是 olcDatabase={1}mdb 。将文件存储在 /etc/ldap
下dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=ppolicy,ou=policies,dc=example,dc=com
olcPPolicyUseLockout: FALSE
olcPPolicyHashCleartext: TRUE
添加 LDIF 文件。
ldapadd -Y EXTERNAL -H ldapi:/// -f ./ppolicy-overlay.ldif
重新启动 ldap。