6.LDAPサーバーの構築 データ編
LDAPデータベースの管理にphpLdapAdminを使用することは前述していますが、まだデータベースには何も無い状態ですので使用することはできません。まずは基本となる root dn とドメイン情報を除く管理情報を登録することにします。
テキストエディタでLDIFファイルを作成して基本情報をコマンドで流し込むわけですが、この行程では過去に苦い思いをしています。各種文字コードに対応した汎用エディタで作成したファイルをサーバーのデフォルト文字コードであるUTF-8で保存してアップロードし、流し込もうとしたらエラーで流し込めなかったのです。セットアップ時にLDAPサーバーのログを取るようにしたのもこのことがあったからなのです。半日近い時間をかけて自己解決したのですが、原因は文字コードがUTF-8 BOM付になっていたためでした。
使用していたエディタの設定にはUTF-8しか表示されなかったためまったくの意識外でした。アップロードしたファイルを vi で開いても自動判別のため解りません。使用するエディタは必ず UTF-8N に対応したものを使用してください。もしくは直接 vi で記述するようにしたほうが良いでしょう。
さて、初期化用の LDIFファイルの内容は以下のようなものです。
dn: dc=bitsystem,dc=com
objectClass: dcObject
objectClass: organization
o: bitsystem
dc: bitsystem
dn: cn=Manager,dc=bitsystem,dc=com
objectClass: organizationalRole
cn: Manager
dn: ou=mailSys,dc=bitsystem,dc=com
objectClass: organizationalUnit
ou: mailSys
dn: ou=webSys,dc=bitsystem,dc=com
objectClass: organizationalUnit
ou: webSys
dn: ou=Service,dc=bitsystem,dc=com
objectClass: organizationalUnit
ou: mailSys
dn: uid=mtaAdmin,ou=Service,dc=bitsystem,dc=com
objectClass: organizationalPerson
cn: mtaAdmin
sn: mtaAdmin
userPassword: slappasswdで生成したパスワード
dn: uid=webAdmin,ou=Service,dc=bitsystem,dc=com
objectClass: organizationalPerson
cn: webAdmin
sn: webAdmin
userPassword: slappasswdで生成したパスワード
最初のレコードがルートディレクトリの登録になります。2番目のレコードが管理者、3、4番目にオーガナイゼーションユニット、そして Service の中にメールとウェブの管理者を登録します。
シェルでログインしてアップロードしたディレクトリに移動し、以下のコマンドを打ちます。
>ldapadd -x -D “cn=Manager,dc=bitsystem,dc=com” -W -f init.ldif
管理者パスワードを要求されるのでパスワードを入力するとレコードが登録された旨のメッセージが流れます。この時、登録された内容も一緒に表示されますので、ファイル内容と相違ないか確認しておきましょう。たまにスペルミスなどでレコードの一部が登録されていないということも起こるので注意が必要です。
確認のためレコードを検索してみます。
???>ldapsearch -x -b “ou=Service,dc=bitsystem,dc=com” -D “cn=Manager,dc=bitsystem,dc=com” -W ‘(cn=*)’ -LLL
ldapsearch コマンドのオプションを簡単に説明しておきます。
-x 簡易認証指定で、省略するとsasl認証になります。saslの設定はまだですので必ず指定します。
-b 検索を開始するベースdnを指定します。ここで指定した配下が検索されます。
-D バインドユーザーの指定。指定しないと匿名接続になります。
-W 認証に使うパスワードをプロンプト入力に指定します。
-LLL 検索結果をコメントなし、バージョン表示なしで出力します。
シングルクォーテーションと括弧で囲んだ部分が検索文字列です。-w オプションでパスワードをコマンドラインに記述する方法でもかまいません。上の例の場合は Service 配下の cn を Manager で全て検索しており、コマンドを入力するとパスワード入力を求められます。 mtaAdmin と webAdmin のレコードが表示されれば問題ありません。
次はphpLdapAdminをセットアップしてメールの送受信に使用するテストアカウントの登録を行います。