OpenLDAPのインストールとユーザ情報の移行

作業メモ。

OpenLDAPのインストール

  • 依存パッケージのインストール
$ suda aptitude install libc6 libdb4.6 libdb4.6-dev db4.6-util libgnutls26 libltdl3 libsasl2-2 libslp1 libwrap0  unixodbc coreutils psmisc
  • インストール
$ wget ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/openldap-release/openldap-2.4.21.tgz
$ tar -xzvf openldap-2.4.21.tgz
$ openldap-2.4.21
$ LDFLAGS=-L/usr/lib64 ./configure --prefix=/usr/local/openldap-2.4.21 --enable-crypt=yes --enable-overlays=yes
$ make depend
$ make
$ make test
$ sudo make install
$ file /usr/local/openldap-2.4.21/libexec/slapd
/usr/local/openldap-2.4.21/libexec/slapd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
$ cd /usr/local
$ sudo ln -s openldap-2.4.21 openldap

(2010/01/22 訂正)
configure時の--enable-overlaysは、yesをつけた方がいいかも。
ということで、訂正しました。

  • 起動用ユーザの作成
$ sudo groupadd -g 110 ldap
$ sudo useradd -u 110 -g ldap -s /bin/false ldap
$ cd /usr/local/openldap-2.4.21
$ sudo chown root:ldap etc/openldap/slapd.conf
$ sudo chmod g+r etc/openldap/slapd.conf
$ sudo chown ldap:ldap -R var
  • 設定

##
# /usr/local/openldap-2.4.21/etc/openldap/slapd.conf
##
include /usr/local/openldap-2.4.21/etc/openldap/schema/core.schema
include /usr/local/openldap-2.4.21/etc/openldap/schema/cosine.schema
include /usr/local/openldap-2.4.21/etc/openldap/schema/inetorgperson.schema
include /usr/local/openldap-2.4.21/etc/openldap/schema/nis.schema

pidfile /usr/local/openldap-2.4.21/var/run/slapd.pid
argsfile /usr/local/openldap-2.4.21/var/run/slapd.args

loglevel 2048

access to *
by self write
by users read
by anonymous auth

database bdb
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
rootpw {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
directory /usr/local/openldap-2.4.21/var/openldap-data

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

##
# /etc/rsyslog.conf
# 設定追加
##
local4.* /usr/local/openldap-2.4.21/var/log/slapd.log

$ cd /usr/local/openldap-2.4.21
$ sudo cp -p var/openldap-data/DB_CONFIG.example var/openldap-data/DB_CONFIG
$ sudo mkdir -p var/log
  • 起動
$ sudo /usr/local/openldap-2.4.21/sbin/slaptest -u
config file testing succeeded
$ sudo /usr/local/openldap-2.4.21/libexec/slapd -u ldap

エントリの追加

  • DCとOUの追加

##
# createDcOu.ldif
##
dn: dc=my-domain,dc=com
objectClass: dcObject
objectClass: organization
dc: my-domain
o: my-domain

dn: cn=Manager,dc=my-domain,dc=com
objectclass: organizationalRole
cn: Manager

dn: ou=People,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: Group

$ sudo /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=my-domain,dc=com' -W -f createDcOu.ldif

ユーザ情報の移行

  • 移行ツールのインストール・設定
$ sudo aptitude install migrationtools
$ cd /usr/share/migrationtools
$ diff migrate_common.ph.org migrate_common.ph
71c71
< $DEFAULT_MAIL_DOMAIN = "padl.com";
---
> $DEFAULT_MAIL_DOMAIN = "my-domain.com";
74c74
< $DEFAULT_BASE = "dc=padl,dc=com";
---
> $DEFAULT_BASE = "dc=my-domain,dc=com";
  • 登録用LDIFの作成
$ sudo grep :1[0-9][0-9][0-9] /etc/passwd > user.list
$ sudo grep :1[0-9][0-9][0-9] /etc/group > group.list
$ sudo /usr/share/migrationtools/migrate_passwd.pl user.list > user.ldif
$ sudo /usr/share/migrationtools/migrate_group.pl group.list > group.ldif
  • ユーザ情報の移行
$ sudo /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=my-domain,dc=com' -W -f user.ldif
$ sudo /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=my-domain,dc=com' -W -f group.ldif


OpenLDAP, Main Page