5.LDAPサーバーの構築 準備編
前回、openldap-serversをyumを使用してインストールしたことを書きました。
パッケージをインストールするとサービス起動スクリプトが生成されているので、これを起動サービスに登録しておきます。
>chkconfig –add ldap
>chkconfig ldap on
確認のために
>chkconfig –list ldap
ldap??????????? 0:off?? 1:off?? 2:on??? 3:on??? 4:on??? 5:on??? 6:off
これで起動の準備は完了です。
ここから先、LDAPサーバーとそれを使用するサービス群を構築していくわけですが、過去の経験上何らかのトラブルが発生することは予想できます。LDAPサーバーはデフォルトではログを吐きません。ですので、LDAPサーバーのログを取れるようにしておきます。
/etc/syslog.conf をエディタで開き最後の行に以下を追記します。
#LDAP Server log
local4.*??????? /var/log/ldaplog
syslog サービスをリロードしておきます。
>service syslog reload ←OSがRH Linux系のCent OS5なので service コマンドが使用できます。
LDAPサーバーを起動する前に設定ファイルを修正するわけですが、今回使用するMTAであるpostfix用のスキーマはデフォルトでは入っていません。ローカルなメールサーバーを構築する場合であれば汎用のスキーマだけで設定できますが、今回はマルチドメイン対応のデータベースを作成する予定なので専用のスキーマを用意します。
(スキーマファイルはダウンロードページからダウンロードできます。)
このスキーマファイルを /etc/openldap/schema にアップロードしておきます。
次にLDAPサーバーの設定ファイルを編集します。設定ファイルは /etc/openldap の中にあるslapd.conf ですが、編集をする前にどのようなデータベースツリー構成にするかを決めておかなければなりません。
今回は次のような条件を満たすよう考える必要がありました。
・メール以外にウェブ認証にも使用したい。
・複数ドメインのメールアカウントを一括管理したい。
・ユーザー単位でLDAPクエリーを発生させたくない。
実際のツリー構成は下図のようになります。
ユーザーデータベースの検索に使用するアカウントをサービス・オーガナイゼーションに登録し、バインドユーザーとして使用します。メール用のデータベースは大枠になる mailSys 内に各ドメインを作成してユーザーを管理します。ウェブ認証用はドメイン単位で分ける必要がないので webSys 内で直接管理します。
slapd.conf ファイルを編集しますが、この段階での編集項目はほとんどありません。
まずは使用するスキーマファイルを設定します。すでに記述されている最後の行の後に次の2行を追加します。
include?? ??? ?/etc/openldap/schema/misc.schema
include?? ??? ?/etc/openldap/schema/postfix.schema
次にアクセス制御を記述しますが、サンプル構文があるのでコメントアウト(#)を外して書き換えます。
access to *
by self read
by dn=”cn=Manager,dc=bitsystem,dc=com” write
by * none
この構文は
access to 対象ディレクトリ
by 対象ユーザー 許可レベル
になっており、read=読み取り専用、write=読み書き可能、none=アクセス不可で許可レベルを設定します。
次にデータベース設定を編集します。
database?? ?bdb
suffix?? ??? ?”dc=bitsystem,dc=com” ←ここを設定するルートディレクトリに書き換える
rootdn?? ??? ?”cn=Manager,dc=bitsystem,dc=com” ←ここをDB管理者に書き換える
rootpw slappasswdコマンドで生成した文字列を貼り付ける
ルートパスワードを生成する slappasswd コマンドの使い方は次のようになります。
>slappasswd -h “{SSHA}”
New password :
Re-enter new password:
{SSHA}文字列
コマンドの結果として出力される{SSHA}から始まる文字列の行をそのままコピーして貼り付けます。({SSHA}も含む)
データベースに bdb (デフォルト)を指定した場合にはデータベースディレクトリ内に「DB_CONFIG」ファイルが必要です。このファイルは slapd.conf と同階層にある DB_CONFIG.example を DB_CONFIG に改名してデータベースディレクトリにコピーします。
データベースディレクトリはデフォルトで /var/lib/ldap になっています。
一般的な DB_CONFIG ファイルの設定は、
set_cachesize?? ?0 268435456 1
set_lg_bsize?? ?2097152
set_lg_regionmax?? ?262144
set_flags?? ?DB_LOG_AUTOREMOV
こんな感じになります。
最後に余分なインデックス設定を削除して必要な設定だけを書いておきます。
index objectClass?????????????????????? eq,pres
index mail,uid??????????????? eq,pres,sub
設定ファイルの編集が終わったら、記述ミスなどがないか確認します。
>slaptest
エラーが出なければ起動準備は完了です。もし、何らかのエラーが出た場合はもう一度スペルミスなどがないかを確認します。準備が完了したらLDAPサーバーを起動します。
>service ldap start
これでデータを入力する準備が整いました。