如何使用 ldapmodify 对 slapd OLC 进行初始设置
How to do an initial setup of slapd OLC with ldapmodify
我 运行 在 CentOS 上设置 LDAP 服务器时遇到了某种僵局。
我使用/etc/openldap/slapd.d下的在线配置文件
该文档告诉您不要手动修改这些文件,并且这些文件是校验和的。
但是我不能使用 ldapmodify,因为我不能登录(简单绑定)——而且我不能登录,因为我不能为用户设置密码——我不能为用户设置密码,因为我无法使用ldapmodify,因为我无法登录,因为我无法设置密码,因为....
我当然可以通过直接编辑文件来设置它 - 我已经做到了,而且很有效。
但这让我很烦恼,我找不到办法做到这一点 "properly"。
Ubuntu(Debian 软件包)
Ubuntu 也许其他带有 debian 软件包的发行版会尝试变得超级聪明并为您设置所有内容 - 当您想要进行非交互式安装时,这真的会成为一个问题,因为 debconf 将随机设置admin-passwords 并根据您的机器名称配置基本 DN。您可能能够猜出 base-DN - 但您猜不到密码,并且因为它在安装后从 debconf-DB 中删除,所以您无法读取它。
但是,您可以在安装软件包之前配置密码和 DN :
export DEBIAN_FRONTEND=noninteractive
sudo debconf-set-selections <<EOF
slapd slapd/internal/generated_adminpw password changeme
slapd slapd/password2 password changeme
slapd slapd/internal/adminpw password changeme
slapd slapd/password1 password changeme
slapd slapd/domain string example.com
slapd shared/organization string example.com
EOF
sudo apt-get install -y slapd ldap-utils
非常小心你的空格:在密码前放置两个空格会将密码设置为__changeme_(即:(空格)改变我)
感谢 OpenStackPro 展示如何配置选择
您可以使用
测试您的设置
ldapsearch -x -D "cn=admin,dc=example,dc=com" -w "changeme"
应该输出类似
的内容
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
这意味着,您的 LDAP 数据库中没有任何内容(目前),但至少您能够登录 :-)
如果你得到类似
的东西
ldap_bind: Invalid credentials (49)
您需要仔细检查您的管理员 DN 和密码。您可以使用
检查您的管理员 DN
sudo slapcat -n0 | grep olcRootDN
CentOS 6.6(最有可能是 RedHat、Fedora 等)
安装包
sudo yum -y install openldap openldap-servers openldap-clients
首先使用
获取密码哈希
slappasswd -s changeme
请注意 CentOS 组件使用 my-domain.com 而不是 example.com,所以你可能需要相应地调整命令。
在文件中创建一个初始 ldif,如 init.ldif:
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: my-domain.com
dc: my-domain
dn: cn=admin,dc=my-domain,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}rX8oWGKW6B7mKY+nUJhrv4g1pPH5KtQg
要将此配置写入您的 LDAP,请使用:
sudo slapadd -F /etc/openldap/slapd.d -b "cn=config" -l init.ldif
同样,您可以使用
测试您的设置
ldapsearch -x -D "cn=admin,dc=my-domain,dc=com" -w "changeme"
(见上文 "Ubuntu")
我 运行 在 CentOS 上设置 LDAP 服务器时遇到了某种僵局。 我使用/etc/openldap/slapd.d下的在线配置文件 该文档告诉您不要手动修改这些文件,并且这些文件是校验和的。 但是我不能使用 ldapmodify,因为我不能登录(简单绑定)——而且我不能登录,因为我不能为用户设置密码——我不能为用户设置密码,因为我无法使用ldapmodify,因为我无法登录,因为我无法设置密码,因为....
我当然可以通过直接编辑文件来设置它 - 我已经做到了,而且很有效。 但这让我很烦恼,我找不到办法做到这一点 "properly"。
Ubuntu(Debian 软件包)
Ubuntu 也许其他带有 debian 软件包的发行版会尝试变得超级聪明并为您设置所有内容 - 当您想要进行非交互式安装时,这真的会成为一个问题,因为 debconf 将随机设置admin-passwords 并根据您的机器名称配置基本 DN。您可能能够猜出 base-DN - 但您猜不到密码,并且因为它在安装后从 debconf-DB 中删除,所以您无法读取它。
但是,您可以在安装软件包之前配置密码和 DN :
export DEBIAN_FRONTEND=noninteractive
sudo debconf-set-selections <<EOF
slapd slapd/internal/generated_adminpw password changeme
slapd slapd/password2 password changeme
slapd slapd/internal/adminpw password changeme
slapd slapd/password1 password changeme
slapd slapd/domain string example.com
slapd shared/organization string example.com
EOF
sudo apt-get install -y slapd ldap-utils
非常小心你的空格:在密码前放置两个空格会将密码设置为__changeme_(即:(空格)改变我)
感谢 OpenStackPro 展示如何配置选择
您可以使用
测试您的设置ldapsearch -x -D "cn=admin,dc=example,dc=com" -w "changeme"
应该输出类似
的内容# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
这意味着,您的 LDAP 数据库中没有任何内容(目前),但至少您能够登录 :-)
如果你得到类似
的东西ldap_bind: Invalid credentials (49)
您需要仔细检查您的管理员 DN 和密码。您可以使用
检查您的管理员 DNsudo slapcat -n0 | grep olcRootDN
CentOS 6.6(最有可能是 RedHat、Fedora 等)
安装包
sudo yum -y install openldap openldap-servers openldap-clients
首先使用
获取密码哈希slappasswd -s changeme
请注意 CentOS 组件使用 my-domain.com 而不是 example.com,所以你可能需要相应地调整命令。
在文件中创建一个初始 ldif,如 init.ldif:
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: my-domain.com
dc: my-domain
dn: cn=admin,dc=my-domain,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}rX8oWGKW6B7mKY+nUJhrv4g1pPH5KtQg
要将此配置写入您的 LDAP,请使用:
sudo slapadd -F /etc/openldap/slapd.d -b "cn=config" -l init.ldif
同样,您可以使用
测试您的设置ldapsearch -x -D "cn=admin,dc=my-domain,dc=com" -w "changeme"
(见上文 "Ubuntu")