LoginSignup
37
38

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-06-11
パッケージのインストール
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
37
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
38