OpenLDAP環境構築(前編)

2005年9月21日(水)
森本 伸幸

はじめに

前回はLDAPとは何かを知るためにも、ディレクトリサービスの概要とディレクトリサービスのデータベースともいうべきLDIFファイルについて説明しました。

今回は前回の内容を踏まえたうえで、オープンソースのLDAPサーバであるOpenLDAPの特徴を説明し、OpenLDAPのインストールから認証や暗号化をする際に使用するソフトウェアのインストールについて説明していきます。

OpenLDAPの特徴

まずはOpenLDAPの特徴を見ていきましょう。OpenLDAPの代表的な特徴を以下にあげます。

OpenLDAPの特徴

  • GPLと同等のOpenLDAP Public Licenseというライセンスを有しており、改変や再配布は誰でも自由に行える
  • SASLを利用した認証機構やSSL/TLSによるセキュリティ向上、Unicodeによる国際化対応などを盛り込んだLDAP v3に対応
  • LinuxやSolarisをはじめ、MacintoshやWindowsなどの様々なプラットフォームで利用することができるため、データや環境の移行などがスムーズに実施できる

前バージョンであるLDAP v2は簡易バインドとkerberos4という2つの認証機構しかサポートしていませんでした。しかし現在の時代背景からいうと、簡易バインドやkerberos4ではセキュリティを考慮しているとはいえなくなってきています。OpenLDAPで扱う情報には個人情報も多いことから、SASL(Simple Authentication and Security Layer)の使用は必須とした方がよいでしょう。またLDAP v3に完全に準拠するためには、SASLによる認証が欠かせません。

インストール

本連載で使用するOSは、Red Hat Enterprise Linux 4で公開されているGPLに基づくコードを再編集・再コンパイルしたパッケージである「CentOS4.1」です。既に他のディストリビューションを使用している場合は、適宜置き替えて読み進めて下さい。

インストール作業は以下の通りに進めていきます。

インストール手順

  1. CentOSインストール(詳細は割愛)
  2. OpenSSLインストール
  3. Cyrus SASLインストール
  4. OpenLDAPインストール

OSのインストール

CentOS 4.1は下記のFTPサーバなどからISOイメージファイルを入手し、インストールして下さい。
ftp://ftp.riken.jp/Linux/centos/4.1/isos/i386/

ここでは、OSのインストールの詳細は割愛しますが、インストール時のファイアーウォールとSELinuxの設定については、なしと無効に設定して下さい(図1)。

CentOSのインストール
図1:CentOSのインストール(クリックで拡大)

インストールの種類については「カスタム」を選択し、パッケージグループの選択の際に「開発 → 開発ツール」にチェックを入れて下さい。これは、ソースファイルからコンパイルするために必要になります。

以降はインストール作業が正常に終了したという前提で話を進めていきます。

OpenSSLインストール

通信内容を暗号化するためにOpenSSLをインストールしますが、OSに同梱されているパッケージとは別に、ソースからコンパイルを行ってインストールします。今回インストールするバージョンは0.9.7gです。

OpenSSLのインストール手順

1. ソースをダウンロードする
OpenSSLのサイト(http://www.openssl.org/source/)からtarファイルを作業ディレクトリへダウンロードする
2. ダウンロードしたtarファイルを展開する
$ cd <em>作業ディレクトリ</em>
$ tar zxvf openssl-0.9.7g.tar.gz
  
3. 展開されたディレクトリへ移動してconfigスクリプトを実行する
$ cd openssl-0.9.7g
$ ./config shared
  
4. OpenSSLをコンパイルする
$ make
5. 4で作成されたモジュール群をインストールする
$ /bin/su -c "make install"
6. 共有ライブラリをライブラリ検索パスに追加する
$ /bin/su -c "echo /usr/local/ssl/lib >> /etc/ld.so.conf"
$ /bin/su -c "/sbin/ldconfig"

上記の作業によって"/usr/local/ssl"以下に、OpenSSLがインストールされました。

Cyrus SASL概要

OpenLDAPのユーザ認証部分にはCyrus SASLを使用します。このCyrus SASLというのは、カーネギーメロン大学のCyrusプロジェクトで開発された、SASLのCyrus実装を含んだパッケージです。

SASL(Simple Authentication and Security Layer)

コネクションベースのプロトコルに認証サポートを追加するための手法。RFC2222に定義されている。

Cyrus SASLが提供する認証機構については表1を参照して下さい。

表1:Cyrus SASLが提供する認証機構一覧

ANONYMOUS  
PLAIN  
LOGIN  
NTLM NT LanMan
SRP Secure Remote Password
OTP One-Time Password
EXTERNAL  
CRAM-MD5 Challenge-Response Authentication Mechanism
DIGEST-MD5  
KERBEROS_V4  
GSSAPI Generic Security Service Application Programming Interface

表1のように様々な認証機構を含んでいるSASLの主な役目は、サーバにクライアントを認証させることです。SASLの最大の特徴は認証機構を簡単に取り替えることができることで、サーバとクライアント間で認証方式さえ一致させれば、後はSASLがその認証方式によってサーバとクライアント間の認証情報を制御してくれます(図2)。

サーバとクライアント間の認証情報の流れ
図2:サーバとクライアント間の認証情報の流れ

Cyrus SASLインストール

では、下記の手順に従ってOSインストール時に導入されているCyrus SASL関連パッケージの削除及びインストールをします。インストールするバージョンは、2.1.19です。

1. 現在インストールされているCyrus SASL関連パッケージを調べる
$ rpm -qa | grep sasl
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
2. 1で標準出力に表示されたパッケージを削除する
$ /bin/su -c "rpm -e --nodeps パッケージ名"
3. パッケージが削除されているかを確認する
$ rpm -qa | grep sasl
4. ソースをダウンロードする
FTPサーバ(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/)からtarファイルを作業ディレクトリへダウンロードする
5. ダウンロードしたtarファイルを展開する
$ cd <em>作業ディレクトリ</em>
$ tar zxvf cyrus-sasl-2.1.19.tar.gz
6. 展開されたディレクトリへ移動してconfigureスクリプトを実行する
$ cd cyrus-sasl-2.1.19
$ ./configure --enable-login --with-openssl=/usr/local/ssl/lib
7. Cyrus SASLをコンパイルする
$ make
8. 7で作成されたモジュール群をインストールする
$ /bin/su -c "make install"
9. ディレクトリにリンクを張る
8でモジュールがインストールされたディレクトリは"/usr/local/lib/sasl2/"になりますが、SASLライブラリは"/usr/lib/sasl2/"にインストールされている機構を探すので、シンボリックリンクを作成する必要があります。また、シンボリックリンクを作成する前に既存の"/usr/lib/sasl2/"ディレクトリを削除して下さい。
$ /bin/su -c "rm -rf /usr/lib/sasl2"
$ /bin/su -c "ln -s /usr/local/lib/sasl2 /usr/lib/sasl2"
10. 共有ライブラリをライブラリ検索パスに追加する
$ /bin/su -c "echo /usr/local/lib >> /etc/ld.so.conf"
$ /bin/su -c "/sbin/ldconfig"

OpenLDAPインストール

OSをインストールした段階でOpenLDAPはインストールされているのですが、今回はそれとは別にソースからインストールしていきます。インストールするバージョンは、2.2.26(stable)です。下記の手順に従って、インストール作業を行ってください。

OpenLDAPのインストール手順

1. ソースをダウンロードする
OpenLDAPのサイト(http://www.openldap.org/software/download/)からtarファイルを作業ディレクトリへダウンロードする
2. ダウンロードしたtarファイルを展開する
$ cd <em>作業ディレクトリ</em>
$ tar zxvf openldap-stable-20050429.tgz
3. 展開されたディレクトリへ移動してconfigureスクリプトを実行する
$ cd openldap-2.2.26
$ ./configure --with-cyrus-sasl --with-tls
SASL及びTLSに関しては、configureが自動で検出してくれるので省略できます
4. メッセージが表示されていることを確認する
Please "make depend" to build dependencies
5. 依存関係を作成する
$ make depend
6. OpenLDAPをコンパイルする
$ make
7. 6で該当モジュールが作成されているかを確認する
$ make test
8. 6で作成されたモジュール群をインストールする
$ /bin/su -c "make install"

OpenLDAPをソースからインストールすると、デフォルトで下記ディレクトリにファイルがインストールされますので確認して下さい(表2)。

表2:OpenLDAPのディレクトリ構造

ディレクトリ ファイル 説明
usr local include ldap*.h ヘッダーファイル
lber*.h
etc openldap   slapd.conf slapdデーモン用設定ファイル
ldap.conf ldapクライアント用設定ファイル
schema *.schema 各種スキーマファイル
lib liblber* ライブラリファイル
libldap*
libexec slapd LDAPデーモン
slurpd LDAP更新複製デーモン
sbin slapadd バックエンドデータベースへのエントリ追加コマンド
slapcat バックエンドデータベースからLDIFを生成するコマンド
slapdn スキーマ定義を基にしてDNの適合性を検査するコマンド
slapindex バックエンドデータベースのインデックスを再生成するコマンド
slappasswd slapd.confのuserPasswordのパスワードハッシュ値を生成するコマンド
slaptest slapd.confの適合性を検査するコマンド
bin ldapadd エントリ更新/追加コマンド
ldapcompare 比較コマンド
ldapdelete エントリ削除コマンド
ldapmodify エントリ更新/追加コマンド
ldapmodrdn エントリのRDN変更コマンド
ldappasswd エントリのパスワード変更コマンド
ldapsearch 検索コマンド
ldapwhoami 診断情報を出力するコマンド
var openldap-data バックエンドデータベース格納用
openldap-slurp slurpd用作業ディレクトリ
run pidファイル格納用

次回予告

次回は、Cyrus SASLによる認証機構であるGSSAPIを使って、OpenLDAPとKerberosを連携させるための認証設定とOpenLDAPの設定ファイルであるslapd.confの設定について説明していきます。

システム開発の現場にて、各種言語を使ったウェブプログラミングを経験する。その際構築したLAPP環境に興味を持ち、その過程でのサーバ構築や独自の勉強などを通し、オープンソースというものに魅かれるようになる。現在は基盤構築案件にて構築業務に従事しながら、Linuxやオープンソース技術についての研究をしている。    

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています