とちゅう
今では非推奨となっている「Berkeley DB」(bdb形式)をバックエンドとして運用されているopenLDAPサーバがある.
hdbは「Berkeley DB」の改良型
これをopenLDAPを最新にして、かつ既定のLightning Memory-Mapped Database ベースの「mdb」に切り替えたい.
具体的にはCentOS6のopenLDAP-2.4.19からopenLDAP-2.4.40に上げたい
CentOS6はサポート終了なのでyum関係はリポジトリを「vault.centos.org」様へ変更する. 今後は「archive.kernel.org」様かな
っがここでは単発アプリの検証なので、必要なパッケージをcurlで取得、インストします
[root@centos6 ~]# cat /etc/redhat-release
CentOS Linux release 6.0 (Final)
[root@centos6 ~]# curl -O https://vault.centos.org/6.0/os/x86_64/Packages/openldap-servers-2.4.19-15.el6.x86_64.rpm
[root@centos6 ~]# curl -O https://vault.centos.org/6.0/os/x86_64/Packages/libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm
[root@centos6 ~]# yum localinstall ./openldap-servers-2.4.19-15.el6.x86_64.rpm ./libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm
あとsambaも入れる
っで次は構築. 「slapd.conf」を作って パスワードは面倒なので平文
[root@centos6 ~]# /usr/sbin/slapd -VV
@(#) $OpenLDAP: slapd 2.4.19 (Nov 11 2010 23:13:59) $
mockbuild@c6b4.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.19/openldap-2.4.19/build-servers/servers/slapd
[root@centos6 ~]# ls -l /etc/openldap/
total 24
drwxr-xr-x. 2 root root 4096 Nov 12 2010 cacerts
-rw-r--r--. 1 root root 246 Nov 12 2010 ldap.conf
drwxr-xr-x. 3 root root 4096 Nov 21 09:05 schema
-rw-r-----. 1 root ldap 4327 Nov 12 2010 slapd.conf.bak
drwx------. 3 ldap ldap 4096 Nov 21 09:05 slapd.d
[root@centos6 ~]# cp /etc/openldap/slapd.conf.bak /etc/openldap/slapd.conf
[root@centos6 ~]# vi /etc/openldap/slapd.conf
[root@centos6 ~]# grep -v -e '^\s*#' -e '^\s*$' /etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/lib64/openldap
database bdb
suffix "dc=sybyl,dc=lab"
checkpoint 1024 15
rootdn "cn=manager,dc=sybyl,dc=lab"
rootpw secret
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
access to attrs=userPassword,shadowLastChange,sambaNTPassword,sambaLMPassword,sambaPwdMustChange,sambaPwdLastSet
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by self write
by * read
[root@centos6 ~]#
(slapd.confの構文チェック)
[root@centos6 ~]# slaptest -f /etc/openldap/slapd.conf -u
config file testing succeeded
[root@centos6 ~]#
「by dn="cn=manager,dc=sybyl,dc=lab" write」を入れると「rootdn is always granted unlimited privileges.」と言われる
っで
[root@centos6 ~]# rm -rf /etc/openldap/slapd.d/*
[root@centos6 ~]# rm -rf /var/lib/ldap/*
[root@centos6 ~]# cp -a /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@centos6 ~]# echo "" | slapadd -f /etc/openldap/slapd.conf
[root@centos6 ~]# ls -l /var/lib/ldap
total 19844
-rw-r--r--. 1 root root 2048 Nov 22 01:00 alock
-rw-------. 1 root root 24576 Nov 22 01:00 __db.001
-rw-------. 1 root root 17629184 Nov 22 01:00 __db.002
-rw-------. 1 root root 335552512 Nov 22 01:00 __db.003
-rw-------. 1 root root 2359296 Nov 22 01:00 __db.004
-rw-------. 1 root root 802816 Nov 22 01:00 __db.005
-rw-------. 1 root root 32768 Nov 22 01:00 __db.006
-rw-r--r--. 1 root root 921 Nov 12 2010 DB_CONFIG
-rw-------. 1 root root 8192 Nov 22 01:00 dn2id.bdb
-rw-------. 1 root root 32768 Nov 22 01:00 id2entry.bdb
-rw-------. 1 root root 10485760 Nov 22 01:00 log.0000000001
[root@centos6 ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
[root@centos6 ~]# ls -l /etc/openldap/slapd.d
total 8
drwxr-x---. 3 root root 4096 Nov 22 01:01 cn=config
-rw-------. 1 root root 988 Nov 22 01:01 cn=config.ldif
[root@centos6 ~]# chown -R ldap. /etc/openldap/slapd.d
[root@centos6 ~]# chmod 700 /etc/openldap/slapd.d
[root@centos6 ~]# chown -R ldap. /var/lib/ldap
[root@centos6 ~]# chmod 700 /var/lib/ldap
開始
[root@centos6 ~]# service slapd start
Starting slapd: [ OK ]
[root@centos6 ~]#
この後、ldif経由でデータを流し込むと下記のようになる
また他のsmbマシンを噛ませて下記のようにした
っでこのような状態、bdbからmdbにしてみる.
LDAP/backupのslapcatコマンドでデータを抜き取る
[root@centos6 ~]# slapcat -b dc=sybyl,dc=lab | ssh root@centos6-mdb "cat > `date '+%Y%m%d-%H%M%S'`.ldap_data.ldif"
(中身確認)
[root@centos6 ~]# slapcat -b dc=sybyl,dc=lab | head -n 5
dn: dc=sybyl,dc=lab
objectClass: top
objectClass: dcObject
objectClass: organization
dc: sybyl
[root@centos6 ~]#
次に「cn=config」を取る
[root@centos6 ~]# slapcat -b cn=config | ssh root@centos6-mdb "cat > `date '+%Y%m%d-%H%M%S'`.ldap_config.ldif"
(中身確認)
[root@centos6 ~]# slapcat -b cn=config | head -n 5
dn: cn=config
objectClass: olcGlobal
cn: config
olcConfigFile: /etc/openldap/slapd.conf
olcConfigDir: /etc/openldap/slapd.d
slapcat: error writing output.
[root@centos6 ~]#