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

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

[菊池研自,伊藤忠テクノソリューションズ株式会社]

CentOSがすでにインストールされている場合

 すでにCentOSのインストールが完了している場合は、次のようにyumコマンドを利用して、インストール済み、または利用可能なOpenLDAP関連パッケージを確認できます。

 次に紹介する例は、CentOS 5.2をインストールする際に「後でカスタマイズする(I)」(画面8)を選択し、追加のパッケージをまったく選択せずにインストールを完了させた場合の出力例です。

画面8 インストール時に「後でカスタマイズする」を選択 画面8 インストール時に「後でカスタマイズする」を選択

 以下のyumコマンドの実行例では、インストール済みのOpenLDAP関連パッケージを確認しています。

# yum list installed '*ldap*'
Installed Packages
nss_ldap.i386            253-12.el5           installed
openldap.i386            2.3.27-8.el5_1.3     installed
python-ldap.i386         2.2.0-2.1            installed

 また以下のyumコマンドでは、利用可能なldap関連パッケージを確認しています。

# yum list available '*ldap*'
Available Packages
compat-openldap.i386     2.3.27_2.2.29-8.el5_2. updates
cyrus-sasl-ldap.i386     2.1.22-4               base
ldapjdk.i386             4.18-2jpp.3.el5        base
[…略…]
openldap-clients.i386    2.3.27-8.el5_2.4       updates
openldap-devel.i386      2.3.27-8.el5_2.4       updates
openldap-servers.i386    2.3.27-8.el5_2.4       updates
[…略…]

 ここでは、前述の新規インストールの場合と同様に、最低限のオペレーションに必要となる「openldap-clientsパッケージ」と「openldap-serversパッケージ」を、yumコマンドを用いてインストールします。

# yum install 'openldap-clients.i386'
# yum install 'openldap-servers.i386'

 以上で、OpenLDAPサーバおよびクライアントツールが利用可能となりました。念のため、OpenLDAPに関連するパッケージのインストール状態を確認してみましょう。

# yum list installed '*ldap*'
Installed Packages
nss_ldap.i386            253-12.el5            installed
openldap.i386            2.3.27-8.el5_2.4      installed
openldap-clients.i386    2.3.27-8.el5_2.4      installed
openldap-servers.i386    2.3.27-8.el5_2.4      installed
python-ldap.i386         2.2.0-2.1             installed

 これでopenldapパッケージ、openldap-clientsパッケージ、openldap-serversパッケージおよびnss_ldapパッケージがそろいました。次は、起動スクリプトを利用してOpenLDAPの起動と停止を行ってみましょう。

起動スクリプトを利用したOpenLDAPの起動と停止

 それでは、早速OpenLDAPサーバを起動し、ディレクトリサービスを利用してみましょう。

 まず、openldap-serversパッケージにサンプルとして付属する「DB_CONFIGファイル」をOpenLDAPサーバのデータディレクトリにコピーします。続いて、同じくopenldap-serversパッケージに付属する「起動スクリプト」を利用し、serviceコマンドからOpenLDAPサーバを起動します。

# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# service ldap start

slapd の設定ファイルをチェック中: config file testing succeeded
                                                     [ OK ]
slapd を起動中:                                      [ OK ]

 上記の例のように、設定ファイルのテストとslapdの起動それぞれに「OK」が表示されたでしょうか? 次は、再びserviceコマンドからOpenLDAPサーバの起動状態を確認してみましょう。

# service ldap status
slapd (pid 10541) を実行中...

 OpenLDAPサーバが正しく起動していることが確認できたならば、LDAPプロトコルを用いてOpenLDAPサーバからの応答を確認してみましょう。

 OpenLDAPサーバはデフォルトの設定状態でクライアントからのアクセス情報をsyslogdのlocal4ファシリティ宛てに送付しています。ここでは、LDAPクライアントからの接続に先立って、syslogdがlocal4ファシリティのメッセージを受けてログファイルに出力するよう設定しておきます。

# vi /etc/syslog.conf
[...略...]
# Save OpenLDAP messages also to ldap.log
local4.*                                   /var/log/ldap.log

 インストール済みのopenldap-clientsパッケージには、LDAPサーバへ接続するためのクライアントコマンドが付属しています。ここでは、先に起動したOpenLDAPサーバへ、このldapsearchコマンドを用いて接続します。

 次のコマンド例では、"-x"オプションのみを利用して匿名ユーザーでの簡易認証を行い、"-h"オプションにてローカルホスト上のOpenLDAPサーバに対し、"-b"オプションでディレクトリツリーの検索ベースを「dc=my-domain,dc=com」と指定した検索を行い、"-LLL"で最もシンプルなLDIFフォーマットへ出力を整形させています。

# ldapsearch -x -h localhost -b dc=my-domain,dc=com -LLL
No such object (32)

 上記の例では、起動したばかりのOpenLDAPサーバからは、「検索条件に一致する結果はなし」との応答が返りました。現時点ではまだエントリを登録していないため、これが正しい結果です。

 先ほど設定したsyslogdにもOpenLDAPサーバからメッセージが送付されていることを確認しておきましょう。ログファイルには、次のようなアクセス情報が取得されているはずです。

# tail -f /var/log/ldap.log
[...略...]
Aug 30 15:56:26 hostname slapd[24672]: conn=0 fd=10 ACCEPT from IP=127.0.0.1:44463 (IP=0.0.0.0:389)
Aug 30 15:56:26 hostname slapd[24672]: conn=0 op=0 BIND dn="" method=128
Aug 30 15:56:26 hostname slapd[24672]: conn=0 op=0 RESULT tag=97 err=0 text=
Aug 30 15:56:26 hostname slapd[24672]: conn=0 op=1 SRCH base="dc=my-domain,dc=com" scope=2 deref=0 filter="(objectClass=*)"
Aug 30 15:56:26 hostname slapd[24672]: conn=0 op=2 UNBIND
Aug 30 15:56:26 hostname slapd[24672]: conn=0 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
Aug 30 15:56:26 hostname slapd[24672]: conn=0 fd=10 closed

 上記のログからは、あるLDAPクライアントからの接続(conn=0)が、LDAPサーバ側のあるファイルディスクリプタに結び付けられて開始された後、最初の処理(op=0)として匿名ユーザーでの認証(BIND)が行われ、次の処理(op=1)として検索(SRCH)が行われ、BIND処理と対になるUNBIND処理(op=2)が完了した後、1つの接続(conn=0)が終了していることが分かります。

 また、今回の検索処理(SRCH)では、検索ベースに「dc=my-domain,dc=com」、検索フィルタには何も指定がなかった場合に採用される「(objectClass=*)」が利用されており、その結果(SEARCH RESULT)は、該当するエントリはなし(nentries=0)で、その旨を示すエラー番号(err=32)が返されていることが分かります。これで、LDAPクライアント側で表示されたメッセージと内容が一致していることが確認できました。

 次は、OpenLDAPサーバの停止です。起動スクリプトを利用してOpenLDAPを停止するには、次のとおり入力します。

# service ldap stop
slapd を停止中:                                   [ OK ]

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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