UNIXな生活
更新:2004/6/1  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
OpenLDAPのソースからのインストール

OpenLDAPは、最近のLinuxなどではパッケージでも提供されていますし、ここでは、ソースからのインストールと実行方法を示します。

OpenLDAPのインストール(Source)
OpenLDAPをインストールする場合は、いくつか注意点があります。
A.bdb(BerkeleyDB)のバージョンに注意してください。
 今回は、OpenLDAPは2.1系を利用しましたが、dbdのバージョンにより、利用できるOpenLDAPが決まります。
 OpenLDAP-2.1系=bdb-4.1系 、 OpenLDAP-2.0系=bdb-4.0系ですので、自信の環境に合わせたOpenLDAPを利用してください。
 FreeBSDでPortsからインストールする場合も注意してください。

B.OpenLDAPとの通信をOpenSSLを利用し暗号化できます。この場合は、先にOpenSSLをインストールしてください。

C.OpenLDAPとCyrus-SASLの関係
 OpenLDAPへの接続認証に、Cyrus-SASLを利用することができます。また、OpenLDAPの利用方法として、Cyrus-SASLの認証用DBにOpenLDAPを利用することもできます。 これは少々わかりにくいですが、OpenLDAPがCyrus-SASLに依存する場合と、Cyrus-SASLがOpenLDAPに依存する場合が出て来ることになります。
 どういうことかと言うと、
*OpenLDAPがCyrus-SASLに依存 = OpenLDAPへ接続する場合、Cyrus-SASLを使って認証します。この場合のユーザデータは、 Cyrus-SASLのバックエンドDB(saslDB)にデータを保存します。
*Cyrus-SASLがOpenLDAPに依存 = Cyrus-SASLは、認証実行時に自信のDB(saslDB)では無く、OpenLDAPにデータの問い合わせをします。


1.LDAP用ユーザとグループの作成
 システムにログインできる必要はありません。(各OSの流儀にそってください。)
 ここでは、RedHatの例を示します。
#groupadd ldap
#useradd -g ldap -d /dev/null -s /bin/false ldap

2.OpenLDAPのインストール  OpenLDAPはhttp://www.openldap.org/から入手してください。
#tar zxvf openldap-2.1.26.tar.gz -C /usr/local/src
#cd /usr/local/src/openldap-2.1.26
#./configure --prefix=/usr/local --enable-ldbm
Pleas "make depend"と表示されたら、make dependを行ない、makeします。
#make depend
#make
#make test
#make install

3.起動用の設定と動作確認
最低限、起動できる様に初期設定をします。
/usr/local/etc/openldap/slapd.conf
include         /usr/local/etc/openldap/schema/core.schema 
database        bdb
suffix          "o=exmaples,c=JP"
rootdn          "cn=Manager,o=examples,c=JP"
rootpw          manager
directory       /usr/local/var/openldap-data
index           objectClass     eq

続いて、slapd.confやldapで利用するディレクトリのパーミッションを変更します。
#chown ldap:ldap slapd.conf
#chmod 600 slapd.conf
#chown -R ldap:ldap /usr/local/var
#chmod -R 700 /usr/local/var
起動します。
/usr/local/libexec/slapd -u ldap -g ldap
起動の確認
/usr/local/bin/ldapsearch -x -b '' -s base +
ずらずらずら、とメッセージがでれば取りあえず起動は成功
ldap_bind: Can't contact LDAP serverって出たら、残念、起動に失敗してます。
/usr/local/libexec/slapd -u ldap -g ldap -d 127で、デバッグオプション付けて起動し確認してください。
停止は、
kill -INT `cat /usr/local/var/slapd.pid`

4.自動起動用スクリプトの例
ついでに、スクリプトファイルの例です。
#!/bin/sh
PROFILEDIR=/usr/local/var
case "$1" in
start)
     if [ $PROFILEDIR/slapd.pid ] ; then
           echo "Running slapd"
     else
        /usr/local/libexec/slapd -u ldap -g ldap
        echo "Stating slapd"
    fi
;;
stop)
    if [ -f $PROFILEDIR/slapd.pid ] ; then
          kill `cat $PROFILEDIR/slapd.pid`
          echo "Stopping slapd"
    else
        echo "Not Running slapd""
    fi
;;
restart)
   if [ -f $PROFILEDIR/slapd.pid ] ; then
          kill `cat $PROFILEDIR/slapd.pid`
          echo "Stopping slapd"
          /usr/local/libexec/slapd -u ldap -g ldap
          echo "Stating slapd"
   else
           /usr/local/libexec/slapd -u ldap -g ldap
          echo "Stating slapd"
  fi
;;
*)
     echo "Usage: `basename $0` {start|stop|restart}" 1>&2
     exit 1
     ;;
esac
exit 0


Producted by Tomoya Sakurai