CentOS6 に open LDAPサーバをインスコ

めもめも

yum install openldap-servers

パッケージの中身をざっと覗いてみると

[root@cent6-64-38 ~]# rpm -ql openldap-servers | grep bin
/usr/sbin/slapacl
/usr/sbin/slapadd
/usr/sbin/slapauth
/usr/sbin/slapcat
/usr/sbin/slapd
/usr/sbin/slapdn
/usr/sbin/slapindex
/usr/sbin/slappasswd
/usr/sbin/slapschema
/usr/sbin/slaptest
/usr/share/man/man5/slapo-pbind.5.gz
[root@cent6-64-38 ~]# 

オリジナルをバックアップした後、テンプレートファイル(DB_CONFIG,slapd.conf)をコピー

  • slapd.confはopen LDAPの設定ファイル
  • DB_CONFIGはBerkeley DBのバッファキャッシュの設定ファイル
[root@cent6-64-38 openldap-servers]# pwd
/usr/share/openldap-servers
[root@cent6-64-38 openldap-servers]# ls -ltr
合計 12
-rw-r--r--. 1 root root  921  4月 29 16:49 2013 DB_CONFIG.example
-rw-r--r--. 1 root root 4635  4月 29 16:50 2013 slapd.conf.obsolete
[root@cent6-64-38 openldap-servers]# ls -ltr /etc/openldap/ldap.conf
ldap.conf       ldap.conf.orig  
[root@cent6-64-38 openldap-servers]# cp -pr ./slapd.conf.obsolete /etc/openldap/slapd.conf
[root@cent6-64-38 openldap-servers]# cp -pr DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@cent6-64-38 openldap-servers]# 

slappasswdコマンドを使ってお好きなパスワードのハッシュをとり、slapd.confに貼り付ける
ちなみに slappasswdの-sのsはsecretのs

[root@cent6-64-38 openldap-servers]# slappasswd -s Yourpassword
{SSHA}ou/m1Ykfg1ovoQvqMNeNrTu3leb+JVhJ

[root@cent6-64-38 openldap]# cat /etc/openldap/slapd.conf | grep rootpw
# rootpw		secret
# rootpw		{crypt}ijFYNcSNctBYg
rootpw {SSHA}ou/m1Ykfg1ovoQvqMNeNrTu3leb+JVhJ
[root@cent6-64-38 openldap]# 

[root@cent6-64-38 ~]# cat /etc/openldap/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=hirasawa,dc=local" write
         by anonymous auth
         by * none
#--- その他の属性に対するアクセス制限
#       自分自身は書き換え可能
#       Manager は書き換え可能
#       その他のアクセスの際はread のみ可能
access to *
         by self write
         by dn="cn=Manager,dc=hirasawa,dc=local" write
         by * read
#--- monitor データベースに対するアクセス制限
#       Manager は read のみ可能
#       その他のアクセスの際は何もできない
#       確認コマンド ldapsearch -x -D "cn=Manager,dc=hirasawa,dc=local" -W  +
database monitor
access to *
        by dn.exact="cn=Manager,dc=hirasawa,dc=local" read
        by * none
#----------------------------------------------------------
# データーベースの設定
#----------------------------------------------------------
# database      バックエンドデータベースの形式
# suffix        ベースDN
# checkpoint    トランザクションログのチェックポイント設定 <kbyte> <min>
# rootdn        管理者
# rootpw        管理者のパスワード(slappasswdコマンドで作成)
# directory     Database directory, Mode 700 recommended.
database        bdb
suffix          "dc=hirasawa,dc=local"
checkpoint      1024 15
rootdn          "cn=Manager,dc=hirasawa,dc=local"
rootpw          {SSHA}ou/m1Ykfg1ovoQvqMNeNrTu3leb+JVhJ
directory       /var/lib/ldap
#----------------------------------------------------------
# indexの設定
#   eq:等価性 pres:存在 sub:部分文字列
#   indexの設定を変更したら、indexの再構築が必要
#   slapindex -v -b "dc=hirasawa,dc=local" -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
[root@cent6-64-38 ~]# 

設定ファイルのテスト

  • -uはドライラン
  • -vはverbose
  • -f slapd.conf の指定(ldap.confぢゃないのか?)
  • -F conf dir
[root@cent6-64-38 certs]# slaptest -u -v -f /etc/openldap/ldap.conf
config file testing succeeded
[root@cent6-64-38 certs]# slaptest -f /etc/openldap/ldap.conf -F /etc/openldap/slapd.d/
config file testing succeeded
[root@cent6-64-38 certs]# 

/etc/の下はこんな感じになっています

[root@cent6-64-38 openldap]# pwd
/etc/openldap
[root@cent6-64-38 openldap]# find .
.

./ldap.conf
./slapd.conf
./certs
./certs/key3.db
./certs/cert8.db
./certs/password
./certs/secmod.db
./slapd.d
./slapd.d/cn=config
./slapd.d/cn=config/olcDatabase={-1}frontend.ldif
./slapd.d/cn=config/olcDatabase={1}monitor.ldif
./slapd.d/cn=config/cn=schema
./slapd.d/cn=config/cn=schema/cn={11}collective.ldif
./slapd.d/cn=config/cn=schema/cn={10}ppolicy.ldif
./slapd.d/cn=config/cn=schema/cn={5}inetorgperson.ldif
./slapd.d/cn=config/cn=schema/cn={6}java.ldif
./slapd.d/cn=config/cn=schema/cn={4}dyngroup.ldif
./slapd.d/cn=config/cn=schema/cn={7}misc.ldif
./slapd.d/cn=config/cn=schema/cn={9}openldap.ldif
./slapd.d/cn=config/cn=schema/cn={8}nis.ldif
./slapd.d/cn=config/cn=schema/cn={0}corba.ldif
./slapd.d/cn=config/cn=schema/cn={3}duaconf.ldif
./slapd.d/cn=config/cn=schema/cn={1}core.ldif
./slapd.d/cn=config/cn=schema/cn={2}cosine.ldif
./slapd.d/cn=config/cn=schema.ldif
./slapd.d/cn=config/olcDatabase={0}config.ldif
./slapd.d/cn=config/olcDatabase={2}bdb.ldif
./slapd.d/cn=config.ldif
./ldap.conf.example
./schema
./schema/core.ldif
./schema/collective.schema
./schema/inetorgperson.ldif
./schema/nis.schema
./schema/nis.ldif
./schema/pmi.schema
./schema/duaconf.schema
./schema/ppolicy.schema
./schema/cosine.schema
./schema/samba.schema
./schema/java.schema
./schema/corba.schema
./schema/openldap.ldif
./schema/openldap.schema
./schema/core.schema
./schema/dyngroup.schema
./schema/dhcp.schema
./schema/misc.schema
./schema/inetorgperson.schema
./schema/cosine.ldif
[root@cent6-64-38 openldap]# 

hisotryを晒しておしまい

 1003  slaptest -u -v -f /etc/openldap/slapd.conf

 1012  slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
 1013  history 



こちらを参考にさせていただきました
http://qiita.com/tags/openldap
http://qiita.com/mykysyk@github/items/25e6adbfdb313afaf339
http://www.upken.jp/kb/openldap.html