連載
» 2008年09月04日 00時00分 公開

OpenLDAPで始めるディレクトリサーバ構築(2):OpenLDAPのインストールと動作確認 (3/3)

[菊池研自,伊藤忠テクノソリューションズ株式会社]
前のページへ 1|2|3       

OpenLDAPコミュニティが配布するソースコードを利用する場合≫

 OpenLDAPをインストールするには、先に紹介したOSに付属するrpmパッケージを利用する方法とは別に、OpenLDAPコミュニティが配布するソースコードをコンパイルしてインストールする方法があります。

 この場合、ディストリビュータ側でバンドルされた特定のバージョンに拘束されず、より新しい機能が組み込まれた最新のOpenLDAPのバージョンを利用できることや、特定のオプションを選択してコンパイルできるといったメリットがあります。

 デメリットとしては、セキュリティフィックスやバグフィックスが行われたバージョンに追随するには、ディストリビュータ側から通知される更新パッケージを取得するのではなく、管理者が責任を持ってOpenLDAPコミュニティでのアップデートをウオッチしなくてはならない点が挙げられます。また、あまり実績がない新しいバージョンを利用する場合は、管理者が自ら情報収集を行いながら運用を行う必要もあるでしょう。

関連リンク:

→ OpenLDAPアナウンスメーリングリスト
http://www.openldap.org/lists/mm/listinfo/openldap-announce

→ OpenLDAPバグ情報、機能リクエストなどのトラッキングシステム
http://www.openldap.org/its/


 CentOS上でOpenLDAPをソースコードからコンパイルする場合には、次の開発向けパッケージが必要になります。CentOSインストール時に、「開発ツールパッケージグループ」「開発ライブラリパッケージグループ」を選択していない場合は、以下のパッケージを個別にインストールしてください。

パッケージ 説明
gcc OpenLDAPをコンパイルするためにコンパイラが必要になります。gccパッケージをインストールすると、glibc-devel、glibc-headers、kernel-headersなどの関連パッケージもインストールされます。このパッケージは、開発ツールパッケージグループに含まれます。
db4-devel
(Berkeley DB)
Berkeley DBは、OpenLDAPがバックエンドで利用するデータベースです。CentOSのインストール時には、通常db4パッケージがインストールされますが、OpenLDAPをソースコードからコンパイルする場合(かつ、意図的にBerkeley DBをコンパイルオプションから外さない場合)は、さらにdb4-develパッケージが必要です。このパッケージは、開発ライブラリパッケージグループに含まれます。
openssl-devel
(OpenSSL)
OpenSSLは、OpenLDAPが通信経路の暗号化を行うために利用します。CentOSのインストール時には、通常OpenSSLパッケージがインストールされますが、OpenLDAPをソースコードからコンパイルする場合は、OpenSSLの機能を取り込むため、さらにopenssl-develパッケージがインストールされていることが推奨されます。このパッケージは、開発ライブラリパッケージグループに含まれます。
cyrus-sasl-devel
(Cyrus-SASL)
Cyrus-SASLは、OpenLDAPがSASL(Simple Authentication and Security Layer)機能を利用するために利用します。CentOSのインストール時には、通常cyrus-saslパッケージがインストールされますが、OpenLDAPをソースコードからコンパイルする場合は、SASLの機能を取り込むために、さらにcyrus-sasl-develパッケージがインストールされていることが推奨されます。このパッケージは、開発ライブラリパッケージグループに含まれます。

 これらのパッケージを確認し、インストールされていない場合は、次のコマンド例のようにyumコマンドを利用してインストールしておきましょう。

# yum install 'gcc.i386'
# yum install 'db4-devel.i386'
# yum install 'openssl-devel.i386'
# yum install 'cyrus-sasl-devel.i386'

 以上で、OpenLDAPをソースコードからコンパイルする準備が整いました。

 では、ここからは実際のソースコードの取得とインストールの方法を紹介していきましょう。ソースコードからコンパイルしてインストールする場合の手順は、ソースコードに付属するINSTALLファイルの内容も参考になります。

 なおこの記事では、OpenLDAP-2.3.43、またはOpenLDAP-2.4.11をOpenLDAPコミュニティのダウンロードサイトより取得しています。

関連リンク:

→ OpenLDAPコミュニティのダウンロードサイト
http://www.openldap.org/software/download/


x86アーキテクチャ(32bit OS)を利用している場合

 ここでは、基本的にソースコードに付属するINSTALLファイルの手順に従い、インストールディレクトリに/usr/local/openldap-2.3.43を指定してコンパイルとインストールを行っています(注3)。

$ tar zxvf openldap-2.3.43.tgz
$ cd openldap-2.3.43
$ ./configure --prefix=/usr/local/openldap-2.3.43
$ make depend
$ make
$ make test
$ su root -c 'make install'

 インストール完了後は、「OpenLDAPの起動と停止」へと進んでください。

x86_64アーキテクチャ(64bit OS)を利用している場合

 OSにx86_64アーキテクチャ(64bit OS)を利用している場合は、LDFLAGS変数に"-L/usr/lib64"とCentOSのx86_64アーキテクチャにて64bitのライブラリが存在するディレクトリを指定してconfigureを実行する必要があります(注4)。

$ tar zxvf openldap-2.3.43.tgz
$ cd openldap-2.3.43
$ LDFLAGS=-L/usr/lib64 ./configure --prefix=/usr/local/openldap-2.3.43
$ make depend
$ make
$ make test
$ su root -c 'make install'

 インストール完了後は、OpenLDAPサーバの実行モジュールが64bitバイナリとして作成されていることを確認しておきましょう。

$ cd /usr/local/openldap-2.3.43
$ file ./libexec/slapd

./libexec/slapd: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

 次は、「OpenLDAPの起動と停止」へと進んでください。

注3、4:Berkeley DBのバージョンが原因でconfigureに失敗する場合、またはより新しいバージョンのBerkeley DBを利用する必要がある場合、または正確にREADMEファイル内でOpenLDAPサーバがサポートを表明している範囲のバージョンのBerkeleyDBを利用する必要がある場合は、後述の「OpenLDAP 2.4をインストールする場合」に説明する手順を参考に、Berkeley DBのインストールを行ったうえでOpenLDAPサーバのconfigureを実行してください


OpenLDAP 2.4をインストールする場合

 OpenLDAP 2.4では、configure実行時に、バックエンドデータベースとして利用する「Berkeley DB」のバージョンチェックに失敗します。OpenLDAP 2.4がサポートするBerkeley DBのバージョンは、ソースコードに付属するREADMEファイルの案内を参考にしてください。

$ less openldap-2.4.11/README
[…略…]
     SLAPD:
         BDB and HDB backends require Oracle Berkeley DB 4.2, 4.4,
         4.5, or 4.6. […略…]

 さて、READMEファイルを参照すると、Berkeley DBのバージョンは4.2、4.4、4.5または4.6のいずれかが必要であることが分かります。ところが、今回対象としているCentOS 5.2にはBerkeley DB 4.3.xが含まれているため、OSにバンドルされたBerkeley DBをそのまま利用するとconfigureが成功しません。

 そこでここでは、Berkeley DBを提供するオラクル社のサイトより、OpenLDAPが対応しているバージョンのうち最も新しいBerkeley DB 4.6.x(今回はdb-4.6.21)を取得します。

関連リンク:

→オラクルのBerkeley DB 4.6.xダウンロードサイト
http://www.oracle.com/technology/software/products/berkeley-db/db/index.html


 Berkeley DB 4.6.xのダウンロード後は、次のようにインストールします。

$ tar zxvf db-4.6.21.tar.gz
$ cd db-4.6.21/build_unix/
$ ../dist/configure
$ make
$ su root -c 'make install'

 configureのオプションを指定せずにデフォルトのままインストールした場合、Berkeley DBは/usr/local/BerkeleyDB.x.x/libにインストールされます。このディレクトリは、通常はライブラリの検索パスには含まれないため、OpenLDAP 2.4のコンパイルおよび実行に先立って、検索パスに含める必要があります。

 今回は、exportコマンドを利用して環境変数LD_LIBRARY_PATHに、Berkeley DB 4.6がインストールされた共有ライブラリが存在するディレクトリを指定することで、ライブラリ検索パスを設定します。

$ export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.6/lib
$ echo $LD_LIBRARY_PATH
/usr/local/BerkeleyDB.4.6/lib

 これでBerkeley DB 4.6を利用したOpenLDAP 2.4のコンパイルが可能な状態になりました。次は、OpenLDAP 2.4のコンパイルです。CPPFLAGS変数、LDFLAGS変数にBerkeley DB 4.6に伴ってインストールされたヘッダファイルとライブラリファイルのディレクトリを指定してコンパイルを行います。

$ tar zxvf openldap-2.4.11.tgz
$ cd openldap-2.4.11
$ CPPFLAGS=-I/usr/local/BerkeleyDB.4.6/include \
> LDFLAGS=-L/usr/local/BerkeleyDB.4.6/lib \
> ./configure --prefix=/usr/local/openldap-2.4.11
$ make depend
$ make
$ make test
$ su root -c 'make install'

 インストール完了後は、OpenLDAPサーバの実行モジュールが先にインストールされたBerkeley DBを利用する構成になっていることを確認しておきましょう。

$ ldd /usr/local/openldap-2.4.11/libexec/slapd | grep Berkeley
         libdb-4.6.so => /usr/local/BerkeleyDB.4.6/lib/libdb-4.6.so (0x00276000)

 次は、OpenLDAPの起動と停止方法を説明します。

OpenLDAPの起動と停止

 ここでは、CentOSに付属するrpm版と同様に、ldapユーザーでOpenLDAPサーバを動作させることを目的とします。ldapユーザーを確認し、存在しない場合はldapユーザーを作成します。

# id ldap
id: ldap: そのようなユーザーは存在しません

# groupadd ldap
# useradd -g ldap -s /bin/false ldap

 ldapユーザーの作成後は、インストールディレクトリへ移動し、設定ファイルとデータディレクトリのアクセス権を変更します。また、DB_CONFIGファイルを用意してslaptestコマンドにより設定ファイルの内容をチェックした後、ldapユーザーを指定してOpenLDAPサーバを起動します(注5)。

注5:この時、OpenLDAPサーバを、標準的なライブラリ検索パス以外にインストールしたBerkeley DBの共有ライブラリを利用するよう構成している場合は、Berkeley DBの共有ライブラリへのパスが有効になるよう、exportコマンドなどで設定したうえでOpenLDAPサーバの起動手順を実施してください。次の例では、環境変数LD_LIBRARY_PATHに値が設定されていないことを確認し、先ほどインストールしたBerkeley DBの共有ライブラリディレクトリを指定しています。

# echo $LD_LIBRARY_PATH

# export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.6/lib
# echo $LD_LIBRARY_PATH
/usr/local/BerkeleyDB.4.6/lib


# cd /usr/local/openldap-2.X.XX/

# chown root.ldap etc/openldap/slapd.conf
# chmod g+r etc/openldap/slapd.conf
# chown ldap.ldap -R var

# cp -p var/openldap-data/DB_CONFIG.example var/openldap-data/DB_CONFIG
# ./sbin/slaptest -u
config file testing succeeded

# ./libexec/slapd -u ldap

 OpenLDAPサーバの起動後は、ldapsearchコマンドを用いてOpenLDAPサーバからの応答を確認しておきましょう。必要に応じて、rpm版での動作確認(「起動スクリプトを利用したOpenLDAPの起動と停止」)と同様に、syslog.confを設定しOpenLDAPサーバから送付されるアクセスログを確認してください。

# cd /usr/local/openldap-2.X.XX/
# ./bin/ldapsearch -x -h localhost -b dc=my-domain,dc=com -LLL

No such object (32)

 OpenLDAPサーバを停止する場合は、pidファイルに記録されたプロセスIDを指定してシグナルを発行します。

# cd /usr/local/openldap-2.X.XX/
# kill -INT `cat var/run/slapd.pid`

 以上で、ソースコードからのインストールと動作の確認ができました。

 次回は、今回インストールしたOpenLDAPサーバにユーザー情報のエントリを入力し、LDAP認証を行う手順を紹介します。


 

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。