web-dev-qa-db-ja.com

OpenLDAP 2.4をbdbバックエンドで設定する方法は?

OpenLDAPはslapd.conf(5)の代わりにslapd-config(5)を使用することを好むようです。しかし、slapd-config(5)でrootパスワードを設定する方法がわからないので、どうやって始めるかわかりません。

だから私はslapd.conf(5)を使って戻ってきました、次の/etc/ldap/slapd.conf

database bdb
suffix "dc=mycompany,dc=net"
rootdn "cn=root,dc=mycompany,dc=net"
rootpw secret
directory /var/lib/ldap

そして、/etc/default/slapdを使用するには/etc/ldap/slapd.conf の代わりに /etc/ldap/slapd.d。ただし、次の場合は起動できません。

Sudo /etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd - failed: 
Unrecognized database type (bdb)

しかし、私はそれらがbdbバックエンドであることを発見しました:

$ ls -al /usr/lib/ldap/*bdb*
lrwxrwxrwx 1 root     21 2010-12-02 18:50 back_bdb-2.4.so.2 -> back_bdb-2.4.so.2.5.6
-rw-r--r-- 1 root 182560 2010-11-20 02:29 back_bdb-2.4.so.2.5.6
-rw-r--r-- 1 root   1106 2010-11-20 02:28 back_bdb.la
lrwxrwxrwx 1 root     21 2010-12-02 18:50 back_bdb.so -> back_bdb-2.4.so.2.5.6
5
Xiè Jìléi

このモジュールをロードしていないようです。下線をコメント解除/挿入してslapd.conf

modulepath /usr/lib/ldap
moduleload back_bdb.la
6
quanta

私は最近、同僚が同じことをするのを助けました、そしてこれは私が新しい構成バックエンドを使用して(クリーンインストールで)迅速で簡単な解決策であると私が見つけたものです。これはRHELサーバー上にありましたが、実行しているものは何でも同じです。

Slapdを停止し、設定db admin dn + passwordを確認します

[root@ldap openldap] cd /etc/openldap/slapd.d/cn\=config
[root@ldap cn=config]# egrep "olcRootDN|olcRootPW" "olcDatabase={0}config.ldif"
olcRootDN: cn=admin,cn=config
olcRootPW: secret

OlcRootPWがファイルに存在しない場合は追加して、slapdを再起動します。新しいbdbデータベースを作成するには、いくつかのldifが必要です

[root@ldap ldap]# cat bdb.example.com.ldif
# Load modules for database type
dn: cn=module,cn=config
objectclass: olcModuleList
cn: module
olcModuleLoad: back_bdb.la
# Create directory database
dn: olcDatabase=bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: bdb
olcSuffix: dc=example,dc=com
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: admin
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
# Allow users to change their own password
# Allow anonymous to authenciate against the password
# Allow admin to change anyone's password
olcAccess: to attrs=userPassword
    by self write
    by anonymous auth
    by dn.base="cn=admin,dc=example,dc=com" write
    by * none
# Allow users to change their own record
# Allow anyone to read directory
olcAccess: to *
    by self write
    by dn.base="cn=admin,dc=example,dc=com" write
    by * read

そして、あなたの管理者DNとパスワードを使用してldapaddでそれを挿入してください

[root@ldap ldap]# ldapadd -h localhost -D "cn=admin,cn=config" -W -f bdb.example.com.ldif
Enter LDAP Password:
adding new entry "cn=module,cn=config"
adding new entry "olcDatabase=bdb,cn=config"

推奨されていませんが、slapd.confで行うのと同じようにslapd.dファイルの構成を変更できます。

3
fluffies