パッケージのインストール
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