読者です 読者をやめる 読者になる 読者になる

きたくち

はい。

slapd.confが無い

随分前の話ですが、Fedora12にOpenLDAPを入れたらslapd.confが無くて困ったので忘れないようにまとめ。

多くの解説サイトを見ると、OpenLDAPをインストールしたらまずslapd.confというファイルに設定を書きこんでいくとあります。
しかしそのファイルが無い!私が確認した環境はFedora12とUbuntu10.10ですが、どちらも無い!

そこでいろいろと調べていたところ、どうやらOpenLDAP2.3からはConfiguration Backendという方式になった様子。
なんでも、従来slapd.confへ記述していた設定内容をすべてデータベース化してしまうのだとか。
つまり、設定をすべてLDIFファイルに記述して、ldapaddコマンドによって追加することで初めて設定が適用されるようです。

これでslapd.confが無いのも納得。

具体的なLDIFファイルの中身については別のエントリーでUbuntu10.10で試した物を紹介しますのでそちらもよろしければ。

ちなみに、このConfiguration Backendですが絶対に従わなければならないわけでも無いようです。
私の場合、Fedora12では勝手にslapd.confを作成してOpenLDAP起動時にコマンドで指定して設定を読み込ませてました。
以下その手順。

まずはじめに暗号化したパスワードを取得。

# slappasswd

コマンドを実行するとパスワードの入力が促されるので任意のものを入力。
そして{SSHA}ではじまる文字列が出力されたらそれをコピーしてどこかにとっておく。

続いてslapd.confの作成。
/etc/openldap/slapd.conf に作る。中身は以下。

include		/etc/openldap/schema/corba.schema
include		/etc/openldap/schema/core.schema
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/duaconf.schema
include		/etc/openldap/schema/dyngroup.schema
include		/etc/openldap/schema/inetorgperson.schema
include		/etc/openldap/schema/java.schema
include		/etc/openldap/schema/misc.schema
include		/etc/openldap/schema/nis.schema
include		/etc/openldap/schema/openldap.schema
include		/etc/openldap/schema/ppolicy.schema
include		/etc/openldap/schema/collective.schema

allow bind_v2

pidfile		/var/run/openldap/slapd.pid
argsfile	/var/run/openldap/slapd.args

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database	bdb
suffix		"dc=example,dc=com"
checkpoint	1024 15
rootdn		"cn=Manager,dc=example,dc=com"
rootpw		{SSHA}

directory	/var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

database monitor

access to *
        by dn.exact="cn=Manager,dc=example,dc=com" read
        by * none

access to attrs=userPassword
        by self write
        by dn="cn=Manager,dc=example,dc=com" write
        by anonymous auth
        by * none

access to *
        by dn="cn=Manager,dc=example,dc=com" write
        by self write
        by * read

"dc=example,dc=com"や"cn=Manager,dc=example,dc=com"となっている部分については任意のドメイン名を指定。
rootpw {SSHA} の部分については先ほどコピーしてとっておいたものを貼り付け。

OpenLDAPを以下のコマンドから起動することで設定ファイルを読み込んで起動してくれる。

# /usr/sbin/slapd -f /etc/openldap/slapd.conf