LDAP (Lightweight Directory Access Protocol) は,TCP/IP 上で動作するインターネット標準の分散クライアント/サーバ型ディレクトリ・サービスのプロトコルです。LDAP サーバはディレクトリ内のエントリを管理し,ネットワーク上の LDAP クライアントが情報を利用できるようにします。LDAP サーバは,ユーザの識別や認証に必要なユーザ情報の集中リポジトリとして使用することができます。
この付録には,次の情報が含まれています。
LDAP サーバは NIS (Network Information Services) と似ていますが,NIS に比べて次のような利点があります。
LDAP ディレクトリは,高いスケーラビリティを持っています。
LDAP ディレクトリは動的に更新され,マップの再構築やネットワークへのマップのプッシュが不要なため,管理者の作業時間が短縮されます。また,変更がほとんど瞬時に反映されます。
LDAP ディレクトリのデータベースは,ユーザ関連情報の管理を集中化するために使用できます。
属性変更の可否を属性レベルで制御できます。これにより,重要性の低い情報 (使用するログイン・シェルやメール転送アドレスなど) については,ユーザ自身による変更を許可できます。一方,機密性の高い情報 (UID,GID,ユーザのホーム・ディレクトリなど) の変更は,承認されたディレクトリ管理者だけに限定できます。
複数の LDAP サーバをセットアップして,ディレクトリ内のデータの可用性を高めることができます。レプリケーションと呼ばれる処理によって,すべての LDAP サーバにディレクトリの同一コピーがあることを保証できます。LDAP サーバは相互にバインドされ,ディレクトリに対する変更は標準の LDAP コマンドを使って伝達されます。
Tru64 UNIX システムは,LDAP クライアントおよび LDAP サーバとして構成できます。この項では,LDAP サーバが既に構成されていることを前提に,Tru64 UNIX を LDAP クライアントとして構成する方法を説明します。LDAP サーバの構成情報については,LDAP サーバのマニュアルを参照してください。
ユーザが LDAP クライアントとして構成された Tru64 UNIX システムにログインするためにユーザ名とパスワードを入力すると,LDAP クライアントはそのユーザ情報を LDAP サーバに送信して認証処理を依頼します。LDAP サーバは受信したユーザ情報を LDAP ディレクトリ内のエントリと照合します。一致するエントリが存在し,パスワードが正しい場合は,認証に成功し,ユーザはログインすることができます。一致するエントリが存在しない場合,またはパスワードが不正な場合は,認証に失敗し,ユーザはログインすることができません。認証処理の結果は,LDAP サーバから LDAP クライアントに返されます。
D.2 Tru64 UNIX LDAP クライアント・ソフトウェアのインストール
LDAP クライアント・ソフトウェアをインストールするには,オプションの LDAP 認証 (ネットワーク・サーバ/通信) サブセット (OSFLDPAUTHnnn)
をインストールする必要があります。このサブセットは,Tru64 UNIX 基本オペレーティング・システムを収録した CD-ROM に入っています。
nnn は Tru64 UNIX のバージョン番号を表しています。最新のバージョン番号については,『リリース・ノート』を参照してください。サブセットのインストールの詳細については,『インストレーション・ガイド』を参照してください。
D.3 Tru64 UNIX LDAP クライアント・ソフトウェアの構成
LDAP クライアント・ソフトウェアを構成する必要があります。LDAP クライアント・ソフトウェアを構成するには,次の作業を実行する必要があります。
LDAP クライアント構成ファイル (/etc/ldapcd.conf
) の更新。認証に使用する LDAP サーバに関する情報を指定します。省略時の
/etc/ldapcd.conf
ファイルは,LDAP クライアント・ソフトウェアのインストール時に作成されます。
LDAP クライアント・ランタイム構成変数の設定。
/etc/ldapcd.conf
ファイル内には複数の属性があり,省略時の値を使うことも値を指定することもできますが,次の属性については値を指定する必要があります。
directory
ユーザ認証に使用する LDAP ディレクトリ・サーバのホスト名。
searchbase
ディレクトリ・サーバのデータベース内でユーザ情報が保存されているブランチのルート。
port
省略時のディレクトリ・サーバ・ポート。ディレクトリ・サーバのために使用しているポートと一致させる必要があります。
machine_dn
および
machine_password
machine_dn
(識別名) と
machine_password
は,ldapcd
キャッシュ・デーモンがディレクトリ・サーバにバインドしてディレクトリからの情報検索および情報取得を実行するときに使用します。これらの値は,インストール時のディレクトリ・サーバの初期構成で設定されます。通常は,ディレクトリ・サーバの構成ファイル (sladpd.conf
) に指定されたルート識別名とパスワードを使用します。
/etc/ldapcd.conf
ファイルは,次のいずれかの方法で更新します。
SysMan Menu のオプションを使用します。メニューを展開して「一般的なタスク
」− 「Setup LDAP Configuration
」を選択します。このオプションを選択すると,「LDAP Configuration
」というタイトルのウィンドウが表示され,ウィンドウ内に LDAP 構成属性のリストが表示されます。リストから属性を選択すると,現在の属性値の表示と新しい属性値を入力するための領域を含むダイアログ・ボックスが表示されます。
[OK] を選択すると属性値が更新され,「LDAP Configuration
」ウィンドウが閉じて SysMan Menu に戻ります。
テキスト・エディタを使って
/etc/ldapcd.conf
ファイルを変更します。
例 D-1
に
ldapcd.conf
構成ファイルの例を示します。/etc/ldapcd.conf
ファイルを変更するときは,SysMan Menu のオプションを使用することをお勧めします。ldapcd.conf
ファイルの属性値を変更したときは,LDAP クライアント・デーモンを再起動する必要があります。LDAP クライアント・デーモンを再起動する方法については,D.4 節を参照してください。
# # directory server and port, active ldap connections cached # by the daemon, max worker threads started # directory: host.xyz.com [1] searchbase: "o=XYZCompany" [2] port: 389 [3] connections: 6 [4] max_threads: 64 [5] # # max entries in cache, and number of seconds before entries # expire in the cache # pw_cachesize: 2000 [6] pw_expirecache: 120 gr_cachesize: 100 gr_expirecache: 600
.
.
.
machine_dn: "cn=Directory Manager" [7] machine_pass: "password" #
.
.
.
# the objectClass name of a password entry pw_oclass: posixAccount [8] # name mappings for password attribute fields pw_username: uid [9] pw_password: userPassword [10] pw_uid: uidNumber pw_gid: gidNumber pw_quota: pw_comment: description pw_gecos: gecos pw_homedir: homedirectory pw_shell: loginshell # the objectClass name of a group entry gr_oclass: posixGroup [11] # name mappings for group attribute fields gr_oclass: unixGroup [12] gr_name: cn gr_password: userPassword gr_gid: gidNumber gr_members: MemberUID
ユーザ認証に使用する LDAP ディレクトリ・サーバのホスト名。 [例に戻る]
ディレクトリ・サーバのデータベース内でユーザ情報が保存されているブランチのルート。 [例に戻る]
省略時のディレクトリ・サーバ・ポート。ディレクトリ・サーバのために使用しているポートと一致させる必要があります。 [例に戻る]
ldapcd
キャッシュ・デーモンが管理する,ディレクトリ・サーバに対して開かれた接続の最大数。
[例に戻る]
ldapcd
キャッシュ・デーモンが管理するスレッドの最大数。各スレッドはローカル・プログラムに対する接続を 1 つだけ処理します。スレッドの数を増やすと LDAP キャッシュ・デーモンからの応答速度が向上しますが,必要なメモリ量が増えます。数多くの接続を必要とするサービス (メール・サービスなど) を実行している場合は,(システムに十分なメモリがあれば) スレッドの最大数を 64 以上に設定してください。
[例に戻る]
pw_cachesize
の値は,passwd
エントリ
の最大キャッシュ数を示します。pw_expirecache
の値は,ldapcd
キャッシュ・デーモンが各
passwd
エントリのキャッシュをチェックする最大期間を示します。pw_expirecache
の値を超えると,ldapcd
デーモンは要求された
passwd
エントリを検索するためにサーバに制御を戻します。
gr_cachesize
および
gr_expirecache
はそれぞれ
pw_cachesize
および
pw_expirecache
と同じ効果を持つ値で,group
エントリに対して適用されます。
[例に戻る]
machine_dn
の値は,ldapcd
キャッシュ・デーモンがディレクトリ・サーバにバインドしてディレクトリからの情報検索および情報取得を実行するときに使用する識別名です。各システムに特定の DN を使用させることにより,どのコンピュータがどのような目的でディレクトリにアクセスしているかを特定することができます。また,ディレクトリへの読み取りアクセスや検索アクセスをコンピュータのアカウントに基づいて制御することもできます。
[例に戻る]
サーバ上の拡張スキーマに含まれる UNIX アカウントの属性を定義するオブジェクト・クラスの名前。 [例に戻る]
LDAP 属性名 (右側) が,getpwent
の呼び出しによって返される
passwd
構造体のフィールド (左側) にマッピングされます。
[例に戻る]
userPassword
属性には,暗号化されたパスワードだけが格納されます。
[例に戻る]
サーバ上で定義された拡張スキーマに含まれる UNIX グループの属性を定義するオブジェクト・クラスの名前。 [例に戻る]
LDAP 属性名 (右側) が,
getgrent
(3)group
構造体のフィールド (左側) にマッピングされます。
[例に戻る]
/etc/ldapcd.conf
ファイルを初めて更新した後は,LDAP クライアント・デーモンを起動する前に次のコマンドを入力して LDAP ランタイム構成変数を設定する必要があります。
# /usr/sbin/rcmgr set LDAPCD_CONF yes
このコマンドは 1 回だけ実行すれば済みます。/etc/ldapcd.conf
ファイルを変更しても,このコマンドを再実行する必要はありません。
D.4 LDAP クライアント・デーモンの管理
LDAP クライアント・デーモンを起動するには,次のコマンドを入力します。
# /sbin/init.d/ldapcd start
LDAP クライアント・デーモンを初めて起動すると,次の処理が実行されます。
/etc/sia/matrix.conf
ファイルを更新して,LDAP セキュリティ統合アーキテクチャ (SIA) メカニズムを追加します。
/etc/inittab
ファイルに次のエントリを追加して,システム起動時に LDAP クライアント・デーモンが自動的に起動されるようにします。
ldapcd:34:respawn:/usr/sbin/ldapcd -D > /dev/console 2>&1
LDAP クライアント・デーモンを停止するには,次のコマンドを入力します。
# /sbin/init.d/ldapcd stop
LDAP クライアント・デーモンを再起動するには,次のコマンドを入力します。
# /sbin/init.d/ldapcd restart
特に指定しない限り,LDAP データベースで定義されたユーザはそのデータベースが LDAP 認証に使われるすべてのシステムにログインできます。ユーザ・アクセスを特定のシステムに限定する場合は,アクセス制御ファイルの
/etc/ldapusers.deny
および
/etc/ldapusers.allow
を使用します。
D.5.1 ldapusers.deny ファイル
/etc/ldapusers.deny
は,LDAP 認証では認証されない Tru64 UNIX ユーザの名前を入力するためのテキスト・ファイルです。ldapusers.deny
ファイルに指定されたユーザは,そのシステムに構成された Tru64 UNIX のセキュリティ・メカニズムで認証され,LDAP 認証から除外されます。
省略時の
/etc/ldapusers.deny
ファイルは,LDAP クライアント・ソフトウェアのインストール時に作成されます。ユーザ名は,1 行に 1 つずつ入力し,/etc/passwd
ファイルのユーザ名と正確に一致させる必要があります。コメントを入力するときは,ナンバー記号 (#) を使用します。ナンバー記号の直後から行末までの文字は無視されます。空白行および行の先頭や末尾の空白も無視されます。
例 D-2
に省略時の
/etc/ldapusers.deny
ファイルを示します。
例 D-2: 省略時の ldapusers.deny ファイル
# # ldapusers.deny - list of users who area not allowed to authenticate on # this system via LDAP authentication (libsialdap.so & ldapcd) # # Account names must match exactly the user account name in the # /etc/passwd file. # # Syntax: account_1 # . # . # . # account_n # root nobody nobodyV daemon bin uucp uucpa auth cron lp tcb adm ris wnn pop imap ftp anonymous
一部のユーザを除いてすべてのアクセスを拒否する場合は,/etc/ldapusers.allow
ファイルを作成する必要があります。/etc/ldapusers.allow
は,LDAP 認証でのみ認証される Tru64 UNIX ユーザの名前を入力するためのテキスト・ファイルです。/etc/ldapusers.allow
ファイルがシステム上に存在する場合は,そのファイルに指定されたユーザのログインだけが LDAP 認証によって許可されます。/etc/ldapusers.allow
が空の場合も有効であることに注意してください。このファイルが存在すること自体が強力なアクセス制御ルールになります。
ユーザ名は,1 行に 1 つずつ入力し,/etc/passwd
ファイルのユーザ名と正確に一致させる必要があります。コメントを入力するときは,ナンバー記号 (#) を使用します。ナンバー記号の直後から行末までの文字は無視されます。空白行および行の先頭や末尾の空白も無視されます。