TGT 驗證失敗,但僅針對一位用戶

TGT 驗證失敗,但僅針對一位用戶

我在這裡看到了最奇怪的事情。我有幾台 RHEL3、4 和 5 計算機,它們透過 Kerberos 驗證使用者憑證,並使用 Active Directory 網域控制器作為其 KDC。

這適用於我的所有用戶(除了一個)。有帳戶無法登入 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

您可以kinit作為 Unix 機器上的工作用戶和非工作用戶嗎?如果是這樣,每個都怎麼klist說?

完成此操作後,請嘗試使用其中一張門票,然後查看 klist 為每張門票顯示的內容。

如果kinit有效,並且您獲得的票證有效(例如,再次嘗試 ssh 回到盒子中),那麼事情確實很奇怪,而且我不確定下一步該去哪裡,而無法觸摸盒子。

答案2

我會無恥地回答我自己的問題,因為我們找到了答案。無法進行身份驗證的使用者物件中包含某種證書,這使得該物件與其他使用者物件相比相當大。

Kerberos 是 Active Directory 的一個元件,有一個名為「MaxTokenSize」的屬性。預設情況下,它設定為 12.000 位元組。在舊版的 Active Directory 中,它是 8.000 位元組。大多數時候,您會看到人們遇到麻煩,因為他們將用戶放入太多群組(大約 70 到 100 個群組)。根據說法,擁有這麼大的使用者物件會導致 MaxTokenSize 對於身份驗證所需的緩衝區來說太小這篇 TechNet 文章

我無法找到任何討論與運行 Linux 的客戶端相關的問題的來源,但我確實發現這個網站關於 OpenAFS(使用 Kerberos),討論了使用 AD 的 Kerberos 時票證太大的問題。

長話短說,我遇到麻煩的用戶並不屬於很多群組,但正如所說,他的 LDAP 物件中確實有一個巨大的證書,這使得它相當大。

刪除憑證會縮小使用者對象,足以在 RHEL3 上重新啟用 Kerberos 驗證。

相關內容