この章では、エラーメッセージに対する対処方法と、SEAM 使用時のさまざまな問題の解決方法を説明します。次に、この章で取り上げるエラーメッセージのカテゴリを示します。
この節では、SEAM のエラーメッセージを示し、その原因と解決方法を説明します。
プリンシパルまたはポリシーのリストにアクセスできません;「名前」フィールドを使用してください (Unable to view the list of principals or policies; use the Name field.) |
ログインしている admin プリンシパルが Kerberos の ACL ファイル (kadm5.acl) にリスト特権 (l) を持っていないため、プリンシパルまたはポリシーのリストを表示できません。
プリンシパル名とポリシー名を「名前 (Name)」フィールドに入力するか、適切な特権を持つプリンシパルでログインします。
JNI: Java array creation failed JNI: Java class lookup failed JNI: Java field lookup failed JNI: Java method lookup failed JNI: Java object lookup failed JNI: Java object field lookup failed JNI: Java string access failed JNI: Java string creation failed |
SEAM 管理ツール (gkadmin) が使用する Java ネイティブインタフェースに重大な問題があります。
gkadmin を終了して再起動します。これでも問題が残る場合は、バグを報告してください。
この節では、SEAM コマンド、SEAM デーモン、PAM フレームワーク、GSS インタフェース、および Kerberos ライブラリに関する、より一般的なエラーメッセージをアルファベット順 (A-M) に示します。
major_error minor_error 名前をインポート中に gssapi エラー (major_error minor_error gssapi error importing name) |
サービス名のインポート時にエラーが発生しました。
ホストの keytab ファイルに host または ftp のサービスプリンシパルがあることを確認します。
すべての認証システムが無効になっています;接続は拒否されました。 (All authentication systems disabled; connection refused) |
このバージョンの rlogind は認証機構をサポートしていません。
rlogind を呼び出すときに -k オプションを指定していることを確認します。このオプションはデフォルトで inetd.conf ファイルに指定されている必要があります。
このホストにアクセスするには、別の認証メカニズムを使用する必要があります (Another authentication mechanism must be used to access this host) |
認証を行うことができませんでした。
クライアントが認証に Kerberos V5 を使用していることを確認します。
暗号化に必要な認証のネゴシエーションに失敗しました。終了します。 (Authentication negotiation has failed, which is required for encryption. Good bye.) |
認証について、サーバーとネゴシエーションできませんでした。
telnet コマンドの toggle authdebug を呼び出して認証デバッグを起動して、手がかりとなるようなデバッグメッセージを探します。また、資格が有効であることも確認します。
kadmin インタフェースを初期化中に、krb5 admin サーバーホスト名が無効です。 (Bad krb5 admin server hostname while initializing kadmin interface) |
krb5.conf ファイルにおいて、admin サーバー (マスター KDC) に対して無効なホスト名が構成されています。
krb5.conf ファイルにおいて、admin サーバー (マスター KDC) に対して正しいホスト名を指定していることを確認します。
要求したレルムの KDC に接続できません。 (Cannot contact any KDC for requested realm) |
要求されたレルム内で KDC が応答しませんでした。
少なくとも 1 つの KDC (マスターまたはスレーブのどちらか) に使用可能であること、つまり、krb5kdc デーモンが KDC 上で動作していることを確認します。構成されている KDC のリスト (kdc = kdc_name) については、/etc/krb5/krb5.conf を調べます。
ホストのレルムを決定できません。 (Cannot determine realm for host) |
Kerberos がホストのレルム名を見つけることができません。
Kerberos 構成ファイル (krb5.conf) にデフォルトのレルム名が存在すること、あるいはドメイン名のマッピングが設定されていることを確認します。
ネットワークに暗号化で書き込みできません。 (Cannot encrypt-write network) |
データの暗号化で問題が発生しました。
他にも問題が発生していないかシステムを調べます。手がかりになるような他の syslog メッセージを探します。
要求したレルムの KDC が見つかりません。 (Cannot find KDC for requested realm) |
要求されたレルム内に KDC が見つかりませんでした。
Kerberos 構成ファイル (krb5.conf) の realm セクションに KDC が指定されていることを確認します。
レルム realm_name を初期化できません。(cannot initialize realm realm_name) |
KDC が stash ファイルを持っていない可能性があります。
KDC が stash ファイルを持っていることを確認します。持っていない場合、kdb5_util(1M) コマンドを使用して stash ファイルを作成して、もう一度 krb5kdc を実行します (/etc/init.d/kdc)。
要求したレルムの KDC を解決できません。 (Cannot resolve KDC for requested realm) |
Kerberos がレルム内の KDC を見つけることができません。
Kerberos 構成ファイル (krb5.conf) の realm セクションに KDC が指定されていることを確認します。
パスワードは再使用できません。 (Cannot reuse password) |
入力したパスワードは、以前、このプリンシパルで使用されています。
以前使用されていないパスワードを使用します。あるいは、各プリンシパルの KDC データベースに保存されているパスワード以外のパスワードを使用します。KDC データベースに保存されるパスワードの数はプリンシパルのポリシーによって決定されます。
転送された資格を取得できません。 (Can't get forwarded credentials) |
資格の転送ができませんでした。
プリンシパルの資格が転送可能であることを確認します。
Kerberos 構成ファイルを開けません/見つかりません。 (Can't open/find Kerberos configuration file) |
Kerberos 構成ファイル (krb5.conf) が利用できませんでした。
krb5.conf ファイルが適切なディレクトリにあり、適切なアクセス権 (root の書き込み権と任意のユーザーの読み取り権) を持っていることを確認します。
クライアントが必要なチェックサムを提供しませんでした--接続は拒否されました。 (Client did not supply required checksum--connection rejected) |
チェックサム付きの認証について、クライアントとネゴシエーションできませんでした。クライアントが初期接続をサポートしていない古い Kerberos V5 プロトコルを使用している可能性があります。
クライアントが初期接続をサポートしている Kerberos V5 プロトコルを使用していることを確認します。
初期チケット要求でクライアント/サーバーレルムが一致していません。 (Client/server realm mismatch in initial ticket request) |
初期チケット要求において、クライアントとサーバー間でレルムが一致しませんでした。
通信しているサーバーがクライアントと同じレルムにあること、あるいはレルム構成が正しいことを確認します。
クライアントまたはサーバーの鍵が null です。 (Client or server has a null key) |
プリンシパルの鍵が null です。
kadmin(1M)の cpw コマンドを使用して、プリンシパルの鍵を null 以外に修正します。
kadmin インタフェースを初期化中に、サーバーとの通信の失敗です。 (Communication failure with server while initializing kadmin interface) |
admin サーバー (マスター KDC) として入力したホスト上で kadmind が動作していませんでした。
マスター KDC として正しいホスト名を指定しているか確認します。正しいホスト名を指定している場合は、指定したマスター KDC 上で kadmind が動作していることを確認します。
構成エラー: -c を使ったチェックサムを行う場合は、Kerberos V4 接続を行うことはできません (Configuration error: Requiring checksums with -c is inconsistent with allowing Kerberos V4 connections) |
チェックサム付きの認証について、クライアントとネゴシエーションできませんでした。クライアントが初期接続をサポートしていない古い Kerberos V5 プロトコルを使用している可能性があります。
クライアントが初期接続をサポートしている Kerberos V5 プロトコルを使用していることを確認します。
構成エラー: -c を使ったチェックサムを行う場合は、Kerberos V4 接続を行うことはできません (Credentials cache file permissions incorrect) |
資格キャッシュ (/tmp/krb5cc_uid) に適切な読み取り権または書き込みのアクセス権を持っていません。
資格キャッシュに読み取り権と書き込み権を持っていることを確認します。
資格キャッシュ入出力操作が失敗しました。 XXX (Credentials cache I/O operation failed XXX) |
システムの資格キャッシュ (/tmp/krb5cc_uid) への書き込み中に Kerberos に問題が発生しました。
資格キャッシュが削除されていないこと、および df コマンドを使用して、デバイスに空領域があることを確認します。
復号化で整合性チェックが失敗しました。 (Decrypt integrity check failed) |
チケットが無効である可能性があります。
資格が有効であることを確認します。kdestroy でチケットを削除して、kinit で新しいチケットを作成します。
ターゲットのホストの keytab が正しいバージョンのサービス鍵を持っていることを確認します。まず、kadmin(1M) を使用して、Kerberos データベースにあるサービスプリンシパル (たとえば、host/FQDN_hostname) の鍵バージョン番号を表示します。そして、ターゲットのホスト上で klist -k を実行して、同じ鍵バージョン番号を持っていることを確認します。
des_read の再試行回数が XX を超過しました。 (des_read retry count exceeded) |
データの読み取り中にエラーが繰り返し発生しました。
他にも問題が発生していないかシステムを調べます。手がかりになるような他の syslog メッセージを探します。
df: ファイルシステムを statvfs できません: 引数が正しくありません (df: cannot statvfs filesystem: Invalid argument) |
適切な root 資格を持っていないため、df コマンドがレポートを生成するときに、現在マウントしている Kerberos 化された NFS ファイルシステムにアクセスできません。マウントしている Kerberos 化されたファイルシステムの資格を削除しても、ファイルシステムは自動的にマウント解除されません。
Kerberos 化されたファイルシステムにアクセスするには、新しい root 資格を作成する必要があります。Kerberos 化されたファイルシステムへのアクセスが必要なくなった場合は、ファイルシステムをマウント解除します。
Encryption could not be enabled. Goodbye. (暗号化を有効にできませんでした。終了します。) |
暗号化について、サーバーとネゴシエーションできませんでした。
telnet コマンドの toggle encdebug を起動し認証のデバッグを開始して、手がかりとなるようなデバッグメッセージを探します。
暗号化が正しくネゴシエーションされませんでした。終了します。 (Encryption was not successfully negotiated. Goodbye.) |
暗号化について、ネゴシエーションできませんでした。
KDC ログファイルのエラーメッセージを調べます。
資格キャッシュの終わりに達しました。 (End of credential cache reached) |
資格キャッシュ (/tmp/krb5cc_uid) の読み取り中にエラーが発生しました。
資格キャッシュが読み取り可能であり、データを持っていることを確認します。
資格キャッシュを取得できませんでした。 (failed to obtain credentials cache) |
kadmin 初期化中、kadmin が admin プリンシパルの資格を獲得しようとしたときに問題が発生しました。
kadmin の実行時に、正しいプリンシパルまたはパスワード (あるいは、その両方) を使用したことを確認します。
この実装では、フィールドが長すぎます。 (Field is too long for this implementation) |
Kerberos 化されたアプリケーションから送信されたメッセージのサイズが大きすぎました。Kerberos が扱うことができるメッセージの最大サイズは 65535 バイトです。さらに、Kerberos が送信するプロトコルメッセージ内の個々のフィールドにも制限があります。
Kerberos 化されたアプリケーションが送信するメッセージのサイズが有効であることを確認します。
GSS-API (または Kerberos) エラー (GSS-API (or Kerberos) error) |
これは汎用 GSS-API または Kerberos のエラーメッセージです。複数の問題が原因である可能性があります。
/var/krb5/kdc.log ファイルを開いて、このエラーが発生したときに、エラーの原因をさらに特定できる GSS-API エラーメッセージが記録されていないかを調べます。
ホスト名を展開できません。 (Hostname cannot be canonicalized) |
Kerberos はホスト名を完全指定できません。
DNS にホスト名が存在していること、およびホスト名からアドレスへのマッピングとアドレスからホスト名へのマッピングに一貫性があることを確認します。
レルム間のチケットが無効です。 (Illegal cross-realm ticket) |
送信したチケットのレルム間関係が正しくありません。レルムの委任関係の設定が間違っている可能性があります。
使用しているレルムの委任関係が正しいことを確認します。
Kerberos 構成ファイルのフォーマットが不適切です。 (Improper format of Kerberos configuration file) |
Kerberos 構成ファイル (krb5.conf) に無効なエントリがあります。
krb5.conf ファイルのすべての関係の後に「=」記号と値が続いていることを確認して、各サブセクションの括弧が対で存在していることを確認します。
メッセージのチェックサムのタイプが不適切です。 (Inappropriate type of checksum in message) |
メッセージのチェックサムのタイプが無効です。
krb5.conf と kdc.conf ファイルに有効なチェックサムのタイプが指定されているかどうかを調べます。
ネットアドレスが間違っています。 (Incorrect net address) |
ネットワークアドレスが一致していません。転送されるチケットのネットワークアドレスが、チケットが処理されるネットワークアドレスと異なります。チケットの転送時にエラーが発生した可能性があります。
ネットワークアドレスが正しいことを確認します。つまり、kdestroy でチケットを削除して、kinit で新しいチケットを作成します。
ファイルロックモードのフラグが無効です。 (Invalid flag for file lock mode) |
Kerberos の内部エラーが発生しました。
バグを報告してください。
符号化に対し無効なメッセージタイプが指定されました。 (Invalid message type specified for encoding) |
Kerberos は、Kerberos 化されたアプリケーションから送信されたメッセージのタイプを認識できませんでした。
ユーザーのサイトやベンダーで開発した Kerberos 化されたアプリケーションを使用する場合は、そのアプリケーションが Kerberos を正しく使用していることを確認します。
文字クラス数が正しくありません。 (Invalid number of character classes) |
プリンシパル用に入力したパスワードは、そのプリンシパルのポリシーが適用されているパスワードクラス数に達しません。
パスワードの入力時に、ポリシーが必要とする最小数のパスワードクラス数を使用していることを確認します。
KADM エラー: メモリー割り当ての失敗です。 (KADM err: Memory allocation failure) |
kadmin を実行するための十分なメモリーがありません。
メモリーを解放して、もう一度 kadmin を実行します。
KDC は要求したオプションを処理できません。 (KDC can't fulfill requested option) |
KDC は要求されたオプションを許可しませんでした。考えられる問題として、遅延または転送可能なオプションを要求したが、KDC がそれを許可しなかった可能性があります。また、TGT の更新を要求したが、更新可能な TGT がなかった可能性もあります。
要求したオプションを KDC が許可しなかったのか、持っていないものを要求しようとしていたのかを確認します。
KDC ポリシーは要求を拒否します。 (KDC policy rejects request) |
KDC ポリシーは要求を許可しませんでした。たとえば、KDC への要求に IP アドレスがなかったとか、要求した転送を KDC が許可しなかったなどです。
kinit に正しいオプションを指定していることを確認します。必要であれば、要求を許可するように、プリンシパルに関連するポリシーを変更するか、プリンシパルの属性を変更します。ポリシーまたはプリンシパルを変更するには、kadmin(1M) を使用します。
KDC 応答は予期したものと一致しませんでした。 (KDC reply did not match expectations) |
KDC の応答には、期待されたプリンシパル名が入っていませんでした。あるいは、応答時の値が間違っていました。
通信している KDC が RFC1510 に準拠していること、送信した要求が Kerberos V5 の要求であること、あるいは KDC が利用可能であることを確認します。
Kerberos V5 は認証を拒否します。 (Kerberos V5 refuses authentication) |
認証について、サーバーとネゴシエーションできませんでした。
telnet コマンドの toggle authdebug を呼び出して認証デバッグを起動して、手がかりとなるようなデバッグメッセージを探します。また、資格が有効であることも確認します。
鍵テーブルエントリが見つかりません。 (Key table entry not found) |
ネットワークアプリケーションサーバーの keytab 内にサービスプリンシパルのエントリが存在しません。
適切なサービスプリンシパルをサーバーの keytab に追加して、Kerberos 化されたサービスを提供できるようにします。
鍵テーブルのプリンシパルの鍵バージョン番号が正しくありません。 (Key version number for principal in key table is incorrect) |
プリンシパルの鍵バージョンが keytab と Kerberos 内で異なります。サービスの鍵が変更されたか、古いサービスチケットを使用している可能性があります。
たとえば、kadmin を使用してサービスの鍵が変更された場合、新しい鍵を取り出して、サービスを実行しているホストの keytab に格納する必要があります。
また、古い鍵を持つ古いサービスチケットを使用している可能性もあります。この場合、kdestroy を実行して、もう一度 kinit を実行します。
login: load_modules: /usr/lib/security/pam_krb5.so.1 モジュールを開けません。 (login: load_modules: can not open module /usr/lib/security/pam_krb5.so.1) |
Kerberos PAM モジュールがなくなったか、有効な実行可能バイナリではありません。
Kerberos PAM モジュールが /usr/lib/security に存在しており、有効な実行可能バイナリであることを確認します。また、/etc/pam.conf に pam_krb5.so.1 への正しいパスが入っていることも確認します。
krb5_get_in_tkt 内部でループが検出されました。 (Looping detected inside krb5_get_in_tkt) |
Kerberos は何回か初期チケットを獲得しようとしましたが、失敗しました。
少なくとも 1 つの KDC が認証要求に応答していることを確認します。
マスター鍵がデータベースと一致しません。 (Master key does not match database) |
読み込まれたデータベースダンプは、マスター鍵を含むデータベースから作成されていませんでした。このデータベースは /var/krb5/.k5.REALM にあります。
読み込まれたデータベースダンプ内のマスター鍵が /var/krb5/.k5.REALM にあるマスター鍵と一致することを確認します。
一致する資格が見つかりません。 (Matching credential not found) |
要求と一致する資格が見つかりませんでした。要求が必要とする資格は、資格キャッシュにありません。
kdestroy でチケットを削除して、kinit で新しいチケットを作成します。
メッセージの順序が違います。 (Message out of order) |
逐次順序のプライバシで送信されたメッセージが間違った順番で到着しました。転送中にいくつかのメッセージがなくなった可能性があります。
Kerberos セッションを初期化し直してください。
メッセージストリームが変更されました。 (Message stream modified) |
計算されたチェックサムとメッセージのチェックサムが一致しません。転送中にメッセージが変更された可能性があります。つまり、セキュリティが侵害された可能性を示しています。
メッセージがネットワークを通じて正しく送信されていることを確認します。このメッセージは送信中にメッセージが傍受された可能性を示しているため、kdestroy でチケットを削除して、使用している Kerberos サービスを初期化し直します。
この節では、SEAM コマンド、SEAM デーモン、PAM フレームワーク、および Kerberos ライブラリに関しての、より一般的なエラーメッセージをアルファベット順 (N-Z) に示します。
認証システムが有効になっていません;すべての接続が拒否されます。 (No authentication systems were enabled; all connections will be refused) |
このバージョンの rlogind は認証機構をサポートしていません。
rlogind を呼び出すときに -k オプションを指定していることを確認します。このオプションはデフォルトで inetd.conf ファイルに指定されていなければなりません。
資格キャッシュファイルが見つかりません。 (No credentials cache file found) |
Kerberos は資格キャッシュ (/tmp/krb5cc_uid) を見つけることができませんでした。
資格ファイルが存在しており、読み取り可能であることを確認します。そうでない場合、もう一度 kinit を実行します。
操作には "privilege" 特権が必要です。 (Operation requires "privilege" privilege) |
使用している admin プリンシパルが kadm5.acl ファイルで適切な特権が設定されていません。
適切な特権を持っているプリンシパルを使用するか、使用しているプリンシパルが適切な特権を持つように kadm5.acl ファイルを変更します。通常、名前の一部に /admin があるプリンシパルは適切な特権を持っています。
PAM-KRB5: Kerberos V5 認証に失敗しました: パスワードが正しくありません。 (PAM-KRB5: Kerberos V5 authentication failed: password incorrect) |
UNIX パスワードと Kerberos パスワードが異なっています。ほとんどの Kerberos 化されていないコマンド (login など) は、自動的に UNIX パスワードと同じパスワードを使用して Kerberos で認証するように PAM を通じて設定されています。パスワードが異なっている場合、Kerberos 認証は失敗します。
プロンプトが出たら、Kerberos パスワードを入力してください。
パスワードはパスワード辞書にあります。 (Password is in the password dictionary) |
入力したパスワードは、使用しているパスワード辞書に存在しています。パスワードとしては適切ではありません。
パスワードクラスを混合したパスワードを選択します。
リプレイキャッシュコードでアクセス権がありません。 (Permission denied in replay cache code) |
システムの再実行キャッシュを開くことができませんでした。最初に、現在のユーザー ID とは異なるユーザー ID でサーバーが実行された可能性があります。
再実行キャッシュが適切なアクセス権を持っていることを確認します。再実行キャッシュは、Kerberos 化されたサーバーアプリケーションが動作しているホスト (/usr/tmp/rc_service_name) に格納されています。現在の再実行キャッシュのアクセス権を変更する代わりに、再実行キャッシュを削除してから、異なるユーザー ID で Kerberos 化されたサーバーを実行することもできます。
プロトコルバージョンが一致していません。 (Protocol version mismatch) |
Kerberos V4 の要求が KDC に送信された可能性があります。SEAM は Kerberos V5 プロトコルだけをサポートします。
ユーザーのアプリケーションが Kerberos V5 プロトコルを使用していることを確認します。
要求は再送です。 (Request is a replay) |
すでに要求はこのサーバーに送信され処理されています。チケットが横取りされた可能性があり、誰かがそのチケットを再度使用しようとしています。
数分間待ってから、要求を再発行します。
要求したプリンシパルとチケットは一致しません。 (Requested principal and ticket don't match) |
接続しているサービスプリンシパルと所有しているサービスチケットが一致しません。
DNS が適切に機能していることを確認します。別のベンダーのソフトウェアを使用している場合、そのソフトウェアがプリンシパル名を正しく使用していることを確認します。
要求したプロトコルバージョンはサポートされていません。 (Requested protocol version not supported) |
Kerberos V4 の要求が KDC に送信された可能性があります。SEAM は Kerberos V5 プロトコルだけをサポートします。
ユーザーのアプリケーションが Kerberos V5 プロトコルを使用していることを確認します。
kadmin インタフェースを初期化中に、必須のパラメータが krb5.conf にありません。 (Required parameters in krb5.conf missing while initializing kadmin interface) |
krb5.conf ファイルで一部のパラメータ (admin_server パラメータなど) が見つかりません。
見つからないパラメータを確認し、krb5.conf に追加します。
サーバーが暗号化のネゴシエーションを拒否しました。終了します。 (Server refused to negotiate encryption. Good bye.) |
暗号化について、サーバーとネゴシエーションできませんでした。
telnet コマンドの toggle encdebug を呼び出して認証デバッグを開始し、手がかりとなるようなデバッグメッセージを探します。
サーバーが認証を拒否しました (sendauth 交換で)。 (Server rejected authentication (during sendauth exchange)) |
通信しようとしているサーバーが認証を拒否しました。ほとんどの場合、このエラーは Kerberos データベースの伝達中に発生します。考えられる原因は、kpropd.acl ファイル、DNS、または keytab の問題である可能性があります。
このエラーが kprop 以外のアプリケーションの実行中に発生した場合、サーバーの keytab が正しいかどうかを調べます。
チケットはわれわれのものではありません。 または チケット/オーセンティケータが一致しません。 (The ticket isn't for us OR Ticket/authenticator don't match) |
チケットとオーセンティケータ間で不一致がありました。サービスが非 FQDN を期待しているのに対し、チケットがプリンシパルの FQDN 名で送信されたために (あるいは、その逆のために)、要求中のプリンシパル名がサービスプリンシパル名と一致していない可能性があります。
使用しているサービスプリンシパルが正しいことを確認します。
チケットの有効期限が切れました。 (Ticket expired) |
チケットの有効期限が切れています。
kdestroy でチケットを削除して、kinit で新しいチケットを作成します。
チケットには遅延処理の資格がありません。 (Ticket is ineligible for postdating) |
プリンシパルはチケットが遅延することを許可しません。
kadmin(1M) でプリンシパルが遅延を許可するように変更します。
チケットはまだ有効ではありません。 (Ticket not yet valid) |
遅延チケットがまだ有効ではありません。
日付を変更して新しいチケットを作成するか、現在のチケットが有効になるまで待ちます。
不完全な入力ファイルを検出しました。 (Truncated input file detected) |
処理に使用されているデータベースダンプファイルが、完全なダンプファイルではありません。
もう一度ダンプファイルを作成するか、異なるデータベースダンプファイルを使用します。
Kerberos V5 を使って接続し、暗号化サービスを提供できません。 または Kerberos V5 で接続できません。通常の rlogin を使用します。 (Unable to connect with Kerberos V5 and provide encryption service OR Unable to connect with Kerberos V5, using normal rlogin) |
サーバー上において、Kerberos 化されたセッションを適切なサービス (rsh と rcp の場合は kshell、rlogin の場合は eklogin または klogin) で確立できませんでした。資格が無効である可能性があります。
資格が有効であることを確認します。kdestroy でチケットを削除して、kinit で新しいチケットを作成します。
ターゲットのホストの keytab が正しいバージョンのサービス鍵を持っていることを確認します。まず、kadmin(1M) を使用して、Kerberos データベースにあるサービスプリンシパル (たとえば、host/FQDN_hostname) の鍵バージョン番号を表示します。そして、ターゲットのホスト上で klist -k を実行して、同じ鍵バージョン番号を持っていることを確認します。
ターゲットのホスト上にある /etc/inetd.conf に、サービス (klogin、eklogin、および kshell) のエントリが存在していることを確認します。
ユーザーを安全に認証できません... 終了します。 (Unable to securely authenticate user ... exit) |
認証について、サーバーとネゴシエーションできませんでした。
telnet コマンドの toggle authdebug を呼び出して認証デバッグを開始し、手がかりとなるようなデバッグメッセージを探します。また、資格が有効であることも確認します。
要求したプリンシパルは正しくありません。 (Wrong principal in request) |
チケットに無効なプリンシパル名があります。DNS または FQDN の問題である可能性があります。
サービスのプリンシパルがチケット内のプリンシパルと一致していることを確認します。
チェックサムサポートのない古い Kerberos5 クライアントが使用されています。 それより新しいクライアントしか許可されません。 (You are using an old Kerberos5 client without checksum support; only newer clients are authorized.) |
チェックサム付きの認証について、クライアントとネゴシエーションできませんでした。クライアントが初期接続をサポートしていない古い Kerberos V5 プロトコルを使用している可能性があります。
クライアントが初期接続をサポートしている Kerberos V5 プロトコルを使用していることを確認します。
この節では、SEAM ソフトウェアで発生する問題の解決方法を示します。
krb5.conf ファイルが適切にフォーマットされていない場合、telnet コマンドは失敗します。しかし、krb5.conf ファイルをコマンドに対し正しく指定した場合、dtlogin と login コマンドは成功します。この問題が発生した場合、次のエラーメッセージが表示されます。
krb5 初期化中にエラー: Kerberos 構成ファイルのフォーマットが不適切です。 (Error initializing krb5: Improper format of Kerberos configuration) |
krb5.conf ファイルのフォーマットに問題がある場合、セキュリティが侵害される可能性が高くなります。この問題は SEAM 機能を使用する前に解決しておかなければなりません。
Kerberos データベースの伝達に失敗した場合、スレーブ KDC とマスター KDC 間で (あるいは、その逆で)、/usr/krb5/bin/rlogin -x を実行してください。
アクセスを制限するように KDC を設定している場合、rlogin は無効となるため、この問題を解決する目的には使用できません。KDC への rlogin を有効にするには、/etc/inetd.conf ファイルにある eklogin エントリのコメントを解除して、次のように inetd を再起動します。
# ps -eaf | grep inetd inetd のプロセス ID が表示される。 # kill -1 pid_of_inetd |
問題が解決した後は、inetd.conf ファイルを元の状態に変更して、もう一度 inetd を再起動する必要があります。
rlogin が動作しない場合、KDC の keytab に問題がある可能性があります。rlogin が動作する場合、rlogin と伝達ソフトウェアは同じ host/host_name プリンシパルを使用するため、keytab またはネームサービスに問題はありません。この場合、kpropd.acl ファイルが正しいことを確認します。
Kerberos 化された NFS ファイルシステムのマウントが失敗した場合、/var/tmp/rc_nfs ファイルが NFS サーバー上に存在していることを確認します。所有者が root でない場合、そのファイルシステムを削除して、もう一度マウントしてみます。
Kerberos 化された NFS ファイルシステムにアクセスするときに問題が発生した場合、ユーザーのシステムと NFS サーバー上にある inetd.conf ファイルに gssd のエントリが存在していることを確認します。
Kerberos 化された NFS ファイルシステムにアクセスするときに、「invalid argument」または「bad directory」というエラーメッセージが表示された場合、NFS ファイルシステムをマウントするときに完全指定の DNS 名を使用していない可能性があります。マウントしているホストは、サーバーの keytab にあるサービスプリンシパルのホスト名部分と異なります。
この問題は、サーバーが複数のイーサネットインタフェースを持っていて、「ホストごとに複数のアドレスレコード」という方式ではなく、「インタフェースごとに名前」という方式を使用するように DNS を設定している場合にも発生します。SEAM の場合、次のように、「ホストごとに複数のアドレスレコード」という方式を設定しなければなりません [Ken Hornstein、「Kerberos FAQ」、[http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html]、1998 年 12 月 11 日。] 。
my.host.name. A 1.2.3.4 A 1.2.4.4 A 1.2.5.4 my-en0.host.name. A 1.2.3.4 my-en1.host.name. A 1.2.4.4 my-en2.host.name. A 1.2.5.4 4.3.2.1 PTR my.host.name. 4.4.2.1 PTR my.host.name. 4.5.2.1 PTR my.host.name.
この例では、異なるインタフェースへの 1 つの参照を許可して、サーバーの keytab にある 3 つのサービスプリンシパルではなく、1 つのサービスプリンシパルを許可するように設定しています。
すでに root プリンシパルをホストの keytab に追加しているのにもかかわらず、ユーザーのシステム上でスーパーユーザーになろうとしたときに認証が失敗した場合、考えられる問題は 2 つあります。まず、keytab 内の root プリンシパルがそのインスタンスとして完全指定名を持っていることを確認します。その場合、/etc/resolv.conf ファイルを調べて、システムが DNS クライアントとして正しく設定されていることを確認します。