ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのネームサービスおよびディレクトリサービスの作業 Oracle Solaris 11.1 Information Library (日本語) |
4. Oracle Solaris Active Directory クライアントの設定 (タスク)
11. LDAP クライアントと Oracle Directory Server Enterprise Edition の設定 (タスク)
13. LDAP のトラブルシューティング (リファレンス)
ldap_cachemgr デーモンが実行中であることの確認
以降のセクションでは、LDAP の構成で発生する問題とそれらの解決方法について説明します。
LDAP クライアントのバックエンドは、ホスト検索に対して (gethostbyname() や getaddrinfo() によって返されるホスト名などの) 完全修飾ホスト名を返します。格納済みの名前が指定されている (1 つ以上のドットが含まれている) 場合、クライアントはその名前をそのまま返します。たとえば、格納されている名前が hostB.eng であれば、返される名前も hostB.eng です。
LDAP ディレクトリに格納された名前が指定されていない (ドットが含まれない) 場合、クライアントのバックエンドは、その名前にドメイン部分を追加します。たとえば、格納されている名前が hostA であれば、返される名前は hostA.domainname となります。
DNS ドメイン名が LDAP ドメイン名とは異なる場合、格納されたホスト名が完全指定でない限り LDAP ネームサービスをホスト名に対して使用することはできません。
LDAP クライアントはログイン中、ユーザー認証に PAM モジュールを使用します。UNIX 標準の PAM モジュールでは、パスワードをサーバーから読み込みクライアント側で検査します。このプロセスは、次のいずれかの理由で失敗することがあります。
ldap が、ネームサービススイッチ内の passwd データベースに関連付けられていない。
プロキシエージェントが、サーバーリスト上のユーザーの userPassword 属性を読み取ることができない。プロキシエージェントが比較のためにパスワードをクライアントに返すので、少なくともプロキシエージェントはパスワードを読めなければならない。pam_ldap に関しては、パスワードへの読み取りアクセスを必要としない
プロキシエージェントが適切なパスワードを保持していない
該当するエントリに shadowAccount オブジェクトクラスが定義されていない
パスワードが定義されていない
ldapaddent を使用する場合、-p オプションを使用してパスワードをユーザーエントリに確実に追加する必要があります。ldapaddent を -p オプションなしで使用すると、ldapaddent を使用して /etc/shadow ファイルも追加しないかぎり、ユーザーのパスワードはディレクトリ内に格納されません。
LDAP サーバーに到達することができない
サーバーのステータスを確認します。
# /usr/lib/ldap/ldap_cachemgr -g
pam.conf の構成が不正である
LDAP 名前空間でユーザーが定義されていない
pam_unix_* モジュールに関して NS_LDAP_CREDENTIAL_LEVEL が anonymous に設定されているため、匿名ユーザーが userPassword を使用できない。
パスワードが crypt 形式で格納されていない
アカウント管理をサポートするように pam_ldap が構成されている場合は、次のいずれかの原因でログインに失敗します。
ユーザーのパスワード期限が切れている
ログインを何回も行なったために、ユーザーアカウントがロックされる
管理者がユーザーアカウントを非アクティブにした
ユーザーが、ssh や sftp などの、パスワードを使用しないプログラムを使用してログインしようとした。
ユーザー別の認証および sasl/GSSAPI を使用している場合、一部の Kerberos コンポーネントまたは pam_krb5 構成が正しく設定されません。これらの問題の解決についての詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』を参照してください。
LDAP データベースは、検索パフォーマンス向上にインデックスを使用します。インデックスが正しく構成されていない場合、大幅にパフォーマンスが低下することがあります。このドキュメントには、インデックスを作成する必要のある共通の属性セットを記述しています。また、独自のインデックスを追加して、パフォーマンスの向上を図ることができます。
profileName 属性が指定された init オプションを使用しているときに、ldapclient コマンドがクライアントの初期化に失敗しました。考えられる失敗の原因は次のとおりです。
コマンド行で不正なドメイン名が指定された
指定されたクライアントドメインのエントリポイントを表す nisDomain 属性が DIT (ディレクトリ情報ツリー) 内に設定されていない
アクセス制御情報がサーバー上で適正に設定されていないため、LDAP データベース内の匿名検索が許可されない
ldapclient コマンドに正しくないサーバーアドレスが渡されました。ldapsearch コマンドを使用してサーバーアドレスを確認してください。
ldapclient コマンドに正しくないプロファイル名が渡されました。ldapsearch コマンドを使用して DIT 内のプロファイル名を確認してください。
クライアントのネットワークインタフェースに対して snoop を実行して外向きのトラフィックを検査して、どのサーバーにアクセスしているかを確認する
-g オプションを指定して ldap_cachemgr デーモンを実行すると、現在のクライアント構成や統計情報を表示できるため、デバッグのための有効な方法になることがあります。例:
# ldap_cachemgr -g
この結果、すでに説明したように、すべての LDAP サーバーのステータスを含む現在のクライアント構成および統計が標準出力に出力されます。このコマンドを実行するのに、スーパーユーザーになる必要はありません。
ldapclient コマンドがハングアップした場合、Ctrl-C キーを押すと以前の環境を復元したあとで終了します。この状況が発生する場合、サーバーが動作していることをサーバー管理者に確認してください。
プロファイルまたはコマンド行に指定されたサーバーリスト属性で、サーバー情報が適正であることを確認してください。