RODC 背後的 Kerberos 身份驗證問題
我們在哥斯達黎加有一個分支機構,當時我們使用 AD 實現了 Squid 代理和 SSO,它執行良好。就在最近,我們在現場實施了 RODC。一旦發生這種情況,沒有人能夠進行身份驗證,我也無法解決這個問題。我刪除了用於 kerberos 身份驗證的 AD 對象並執行了以下命令:
msktutil -c -b "CN=COMPUTERS" -s HTTP/PROXY.domain.com -k /etc/squid3/PROXY.keytab --computer-name PROXY-K --upn HTTP/PROXY.domain.com --server dc1.domain.com --verbose
此命令實際上在 AD 中創建對象,但不設置密碼。我收到以下錯誤:
錯誤:krb5_set_password_using_ccache 失敗(無法聯繫任何 KDC 請求的領域)錯誤:set_password 失敗
我已經確定這台機器可以解析域控制器。
在這一點上,我迷路了。斷斷續續地為此奮鬥了一個月,真的可以使用一些指導。我有另外四個相同的 squid 代理,它們不位於 RODC 後面並且可以正常工作。
我決定使用最新版本的 msktutil 在更高版本的 Ubuntu 上建構一個新代理,它實際上可以工作。我想我會在下一個維護視窗期間遷移所有數據並交換 IP。
我假設 RODC 執行正常,即:Kerberos 正常,AD DS 啟動並執行,等等?
我認為我的下一步是擷取網路跟踪,僅過濾 DNS 和 Kerberos,然後查看客戶端在做什麼。
— 07/01/2017 —
我可以看到 172.26.48.25 和 172.21.1.19 之間發生了 Kerberos 握手。但是,兩個 AS-REQ(身份驗證服務請求)響應失敗,經常看到 KRB5KDC_ERR_PREAUTH_REQUIRED。這在 Kerberos 5 中預計會出現一次。看到它兩次很奇怪,通常表明 KDC 和 Kerberos 客戶端之間存在時間同步問題。
但是,我們隨後看到客戶端請求服務票證。KDC 的票證授予服務 (TGS) 部分以 KRB5_NT_UNKNOWN(Kerberos 名稱類型未知)進行響應。因此,我可能會對該錯誤進行更多調查,因為如果初始身份驗證失敗,我通常不會期望客戶端繼續請求服務票證。