TGT 検証は失敗しましたが、1 人のユーザーのみでした

TGT 検証は失敗しましたが、1 人のユーザーのみでした

ここで奇妙なことが起こっています。Active Directory ドメイン コントローラーを KDC として使用し、Kerberos 経由でユーザー資格情報を検証する RHEL3、4、および 5 マシンが 2 台あります。

これは、1人を除くすべてのユーザーで機能します。1つRHEL3 Linux マシンにログインできず、次のエラーが発生するアカウント:

May 31 13:53:19 mybox sshd(pam_unix)[7186]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.0.1  user=user
May 31 13:53:20 mybox sshd[7186]: pam_krb5: TGT verification failed for `user'
May 31 13:53:20 mybox sshd[7186]: pam_krb5: authentication fails for `user'

私のアカウントのような他のアカウントは問題ありません。

May 31 17:25:30 mybox sshd(pam_unix)[12913]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.0.1  user=myuser
May 31 17:25:31 mybox sshd[12913]: pam_krb5: TGT for myuser successfully verified
May 31 17:25:31 mybox sshd[12913]: pam_krb5: authentication succeeds for `myuser'
May 31 17:25:31 mybox sshd(pam_unix)[12915]: session opened for user myuser by (uid=0)

ご覧のとおり、TGT 検証は失敗します。これはこの特定のアカウントでのみ発生し、他のアカウントでは発生しません。

障害のあるユーザー アカウントのパスワードはリセットされ、Active Directory の両方のユーザー オブジェクトを検査しましたが、異常は見つかりませんでした。

障害のあるユーザー アカウントで RHEL4 または 5 ボックスにログインすると、問題は発生しません。したがって、これは RHEL3 固有の問題であるはずですが、1 つのアカウントだけがこの問題の影響を受けるという事実は、私には理解できません。以前にこれを見たことがある人はいませんか?

答え1

kinitUnix ボックスから、作業ユーザーと非作業ユーザーとしてできますか? できる場合、klistそれぞれについて何と言っていますか?

これを実行したら、チケットの 1 つを使用して、それぞれのチケットに対して klist が何を表示するかを確認します。

動作し、取得したチケットが機能する場合kinit(たとえば、ボックスに再度 ssh で接続してみます)、確かに何かがおかしいのですが、ボックスに触れることができないため、次にどこに行けばよいかわかりません。

答え2

答えが見つかったので、恥ずかしげもなく自分の質問に答えます。認証に失敗したユーザー オブジェクトには何らかの証明書が含まれていたため、そのオブジェクトは他のユーザー オブジェクトと比較してかなり大きくなっていました。

Active Directory のコンポーネントである Kerberos には、「MaxTokenSize」というプロパティがあります。デフォルトでは 12,000 バイトに設定されています。Active Directory の古いバージョンでは 8,000 バイトです。この問題に遭遇する人のほとんどは、ユーザーをあまりに多くのグループ (70 から 100 グループの範囲) に入れた場合です。ユーザー オブジェクトがこれほど大きいと、認証に必要なバッファーに対して MaxTokenSize が小さすぎます。このTechNetの記事

Linuxを実行しているクライアントに関連してこの問題について言及している情報源を見つけることができませんでしたが、このサイトOpenAFS (Kerberos を使用) について、AD の Kerberos を使用するときにチケットが大きすぎる場合について説明しています。

長い話を短くすると、私が問題を抱えていたユーザーはそれほど多くのグループに属していたわけではありませんが、前述のように、彼の LDAP オブジェクトには巨大な証明書があり、それがかなり大きな問題となっていました。

証明書を削除すると、ユーザー オブジェクトが縮小され、RHEL3 で Kerberos 認証を再度有効にできるようになりました。

関連情報