Kerberos 用戶端從伺服器 XXX$ 收到 KRB_AP_ERR_MODIFIED 錯誤

近日Jason在幫客戶升級Exchange的過程中,解決了不少由AD底層上的問題,而近日來客戶老是報說會有使用者帳號密碼正確,卻驗證不過的問題! 一開始以為是網路環境逾時的問題! 直至昨日竟然有網域控制站發生任何人都登入不了的狀況...

近日Jason在幫客戶升級Exchange的過程中,解決了不少由AD底層上的問題,而近日來客戶老是報說會有使用者帳號密碼正確,卻驗證不過的問題! 一開始以為是網路環境逾時的問題! 直至昨日竟然有網域控制站發生任何人都登入不了的狀況!

而今天5:00左右,Jason正忙完一個案件後,打算要早早來去睡了! 6:36就接到客戶反應說電子郵件有收不到的問題。由於這個客戶是做Exchange 2013 HA架構,不管是CAS或是MailBox均是兩台,CAS採用NLB、MailBox採用DAG的架構,但是,怎麼可能會有DC登不了,連CAS、MailBox也輪番產生一樣的狀況? 深入的追查過後,交叉比對發現,只要一有登入不了的狀況,就必須透過實體機器上按關機按鈕,讓機器關閉再次開機就ok了!

當然不可能一直要客戶開關機,這個是不對的,為了找出根本源因,就開始在這些發生問題的主機上查看事件檢視器,終於讓我找到了關連證據了!!每台主機上都發生了Secure-Kerberos id:4的錯誤,內容上寫著:

Kerberos 用戶端從伺服器ad$ 收到 KRB_AP_ERR_MODIFIED 錯誤。使用的目標名稱為 LDAP/AD。這表示目標伺服器無法解密用戶端所提供的票證。當目標伺服器主體名稱 (SPN) 不是在與目標服務正在使用之帳戶相同的帳戶登錄時,就會發生此情形。請確定目標 SPN 僅在伺服器所使用的帳戶上登錄。當目標服務帳戶密碼與在 Kerberos 金鑰發佈中心為該目標服務設定的帳戶密碼不同時,也會發生此情形。請確定伺服器上的服務與 KDC 均設為使用相同的密碼。若伺服器名稱不是完整合格名稱,且目標網域 (XXX.LOCAL) 與用戶端網域 (XXX.LOCAL) 不同,請檢查這兩個網域中是否有同名的伺服器帳戶,或是使用完整合格名稱來識別該伺服器。

看起來這個錯誤訊息的關鍵字就在『當目標服務帳戶密碼與在 Kerberos 金鑰發佈中心為該目標服務設定的帳戶密碼不同時,也會發生此情形』,而解法在訊息中也說明到了『請確定伺服器上的服務與 KDC 均設為使用相同的密碼

即然已經知道可能的原因,也知道如何解,那就有救了!!

首先!我們來看一下所有的訊息,都是指向AD2!!

 

AD1上的錯誤:

ad1

 

AD2上的錯誤

ad2

 

無法登入的CAS2在當下時間產生的錯誤:

cas2

 

無法登入的DAG2在當下時間產生的錯誤:

dag2

 

解決方法

即然所有的問題都指向AD2,那麼又要解決該機器的帳戶密碼問題! 那麼如何重置KDC服務所在的DC電腦帳戶密碼呢?

  • 首先,先將KDC服務設定為停用

image

  • 完成停用後,將機器重新開機!

 

  • 將機器開機成功之後,以管理員身份執行CMD

 

  • 執行下列指令
    netdom resetpwd /server:伺服器 /userd:網域名稱\administrator /passwordd:administrator的密碼

 

  • 完成後再將機器重新開機。並重新將KDC服務重啟設定為自動即可!!

 

結語

這些細枝末節的問題常常出現在我們身邊,而IT們都是用重開機就好了來當作解決問題,雖然這個問題也許還沒有解開,但在發生事故的當下,大家應該更主動的關心事件檢視器中出現了什麼訊息,是否有關聯,將可能關聯的事件分析後,多數的問題幾乎都藏在這種訊息之中!還是那句老話,資安事故沒有從根本原因處理掉,麻煩的不是重開機的動作,而是無法提供持續服務,如此一來IT人員的價值何在!!! 加油!!


Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security