CentOS
openldap

【LDAP環境構築:1】 openldap-servers インストールから起動まで

More than 5 years have passed since last update.


パッケージのインストール

yum install openldap-servers


Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
openldap-servers x86_64 2.4.23-32.el6_4.1 updates 2.0 M
Installing for dependencies:
libtool-ltdl x86_64 2.2.6-15.5.el6 base 44 k
make x86_64 1:3.81-20.el6 base 389 k
portreserve x86_64 0.0.4-9.el6 base 23 k
Updating for dependencies:
openldap x86_64 2.4.23-32.el6_4.1 updates 265 k

Transaction Summary
================================================================================
Install 4 Package(s)
Upgrade 1 Package(s)



/etc/openldap/slapd.d の初期化と作業ディレクトの作成

RHEL6 では、アクセス手段のない設定データベースがインストール時に作成されるので削除

rm -rf /etc/openldap/slapd.d/*

rm -rf /var/lib/ldap/*
mkdir -p /etc/openldap/tmp
chmod 600 /etc/openldap/tmp


Berkeley DBのバッファキャッシュの設定

Berkeley DBのバッファキャッシュ設定サンプルファイルをコピーする

cp -av /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown ldap:ldap /var/lib/ldap/DB_CONFIG


/etc/openldap/slapd.conf の作成

slapdの設定サンプルファイルをコピーする

cp -av /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf


LDAP 管理者のパスワードの作成

slappasswd コマンドでパスワードを生成しslapd.confのrootpw行に貼り付ける

slappasswd -s 任意のパスワード


{SSHA}QYZEVs/nSk0mesckgE8R7kyQcliSm9AI



/etc/openldap/slapd.conf の修正

vi /etc/openldap/slapd.conf



slapd.conf

#

# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
#----------------------------------------------------------
# スキーマファイルの設定
#----------------------------------------------------------
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
#----------------------------------------------------------
# TLS の設定
#----------------------------------------------------------
#TLSCACertificatePath /etc/openldap/cacerts/cacert.pem
TLSCertificateFile /etc/openldap/certs/server.csr
TLSCertificateKeyFile /etc/openldap/certs/server.key
#----------------------------------------------------------
# アクセスコントロールの設定
#----------------------------------------------------------
#--- userPassword に対するアクセス制限
# 自分自身は書き換え可能
# Manager は書き換え可能
# 匿名接続ならば、認証したときにこの属性が使える
# その他のアクセスの際は何もできない
access to attrs=userPassword
by self write
by dn="cn=Manager,dc=example,dc=com" write
by anonymous auth
by * none
#--- その他の属性に対するアクセス制限
# 自分自身は書き換え可能
# Manager は書き換え可能
# その他のアクセスの際はread のみ可能
access to *
by self write
by dn="cn=Manager,dc=example,dc=com" write
by * read
#--- monitor データベースに対するアクセス制限
# Manager は read のみ可能
# その他のアクセスの際は何もできない
# 確認コマンド ldapsearch -x -D "cn=Manager,dc=example,dc=com" -W +
database monitor
access to *
by dn.exact="cn=Manager,dc=example,dc=com" read
by * none
#----------------------------------------------------------
# データーベースの設定
#----------------------------------------------------------
# database バックエンドデータベースの形式
# suffix ベースDN
# checkpoint トランザクションログのチェックポイント設定 <kbyte> <min>
# rootdn 管理者
# rootpw 管理者のパスワード(slappasswdコマンドで作成)
# directory Database directory, Mode 700 recommended.
database bdb
suffix "dc=example,dc=com"
checkpoint 1024 15
rootdn "cn=Manager,dc=example,dc=com"
rootpw {SSHA}QYZEVs/nSk0mesckgE8R7kyQcliSm9AI
directory /var/lib/ldap
#----------------------------------------------------------
# indexの設定
# eq:等価性 pres:存在 sub:部分文字列
# indexの設定を変更したら、indexの再構築が必要
# slapindex -v -b "dc=example,dc=com" -f slapd.conf
#----------------------------------------------------------
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/openldap/slapd.conf のチェック

sudo -u ldap slaptest -u -v -f /etc/openldap/slapd.conf


config file testing succeeded



/etc/openldap/slapd.d の更新

sudo -u ldap slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d


エラーがでるが無視してよい

bdb_db_open: database "dc=example,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).

backend_startup_one (type=bdb, suffix="dc=example,dc=com"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch)


LDAP サーバーの起動

chkconfig slapd on

/etc/init.d/slapd start