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' |
以上で、OpenLDAPをソースコードからコンパイルする準備が整いました。
では、ここからは実際のソースコードの取得とインストールの方法を紹介していきましょう。ソースコードからコンパイルしてインストールする場合の手順は、ソースコードに付属するINSTALLファイルの内容も参考になります。
なおこの記事では、OpenLDAP-2.3.43、またはOpenLDAP-2.4.11をOpenLDAPコミュニティのダウンロードサイトより取得しています。
ここでは、基本的にソースコードに付属するINSTALLファイルの手順に従い、インストールディレクトリに/usr/local/openldap-2.3.43を指定してコンパイルとインストールを行っています(注3)。
$ tar zxvf openldap-2.3.43.tgz |
インストール完了後は、「OpenLDAPの起動と停止」へと進んでください。
OSにx86_64アーキテクチャ(64bit OS)を利用している場合は、LDFLAGS変数に"-L/usr/lib64"とCentOSのx86_64アーキテクチャにて64bitのライブラリが存在するディレクトリを指定してconfigureを実行する必要があります(注4)。
$ tar zxvf openldap-2.3.43.tgz |
インストール完了後は、OpenLDAPサーバの実行モジュールが64bitバイナリとして作成されていることを確認しておきましょう。
$ cd /usr/local/openldap-2.3.43 |
次は、「OpenLDAPの起動と停止」へと進んでください。
注3、4:Berkeley DBのバージョンが原因でconfigureに失敗する場合、またはより新しいバージョンのBerkeley DBを利用する必要がある場合、または正確にREADMEファイル内でOpenLDAPサーバがサポートを表明している範囲のバージョンのBerkeleyDBを利用する必要がある場合は、後述の「OpenLDAP 2.4をインストールする場合」に説明する手順を参考に、Berkeley DBのインストールを行ったうえでOpenLDAPサーバのconfigureを実行してください
OpenLDAP 2.4では、configure実行時に、バックエンドデータベースとして利用する「Berkeley DB」のバージョンチェックに失敗します。OpenLDAP 2.4がサポートするBerkeley DBのバージョンは、ソースコードに付属するREADMEファイルの案内を参考にしてください。
$ less openldap-2.4.11/README |
さて、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 |
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 |
これでBerkeley DB 4.6を利用したOpenLDAP 2.4のコンパイルが可能な状態になりました。次は、OpenLDAP 2.4のコンパイルです。CPPFLAGS変数、LDFLAGS変数にBerkeley DB 4.6に伴ってインストールされたヘッダファイルとライブラリファイルのディレクトリを指定してコンパイルを行います。
$ tar zxvf openldap-2.4.11.tgz |
インストール完了後は、OpenLDAPサーバの実行モジュールが先にインストールされたBerkeley DBを利用する構成になっていることを確認しておきましょう。
$ ldd /usr/local/openldap-2.4.11/libexec/slapd | grep Berkeley |
次は、OpenLDAPの起動と停止方法を説明します。
ここでは、CentOSに付属するrpm版と同様に、ldapユーザーでOpenLDAPサーバを動作させることを目的とします。ldapユーザーを確認し、存在しない場合はldapユーザーを作成します。
# id 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 |
# cd /usr/local/openldap-2.X.XX/ |
OpenLDAPサーバの起動後は、ldapsearchコマンドを用いてOpenLDAPサーバからの応答を確認しておきましょう。必要に応じて、rpm版での動作確認(「起動スクリプトを利用したOpenLDAPの起動と停止」)と同様に、syslog.confを設定しOpenLDAPサーバから送付されるアクセスログを確認してください。
# cd /usr/local/openldap-2.X.XX/ |
OpenLDAPサーバを停止する場合は、pidファイルに記録されたプロセスIDを指定してシグナルを発行します。
# cd /usr/local/openldap-2.X.XX/ |
以上で、ソースコードからのインストールと動作の確認ができました。
次回は、今回インストールしたOpenLDAPサーバにユーザー情報のエントリを入力し、LDAP認証を行う手順を紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.