靈異現象系列主要為技術靈異現象為主,
含有大量的技術詞彙。
credit: unknown
小新是一個菜鳥工程師,除了做資安還要當網管,
但這也是大多數中小企業的常態。
公司內部有一台 Windows 做共享資料夾給大家存放備份資料,
某一天小新發現這台 Server 居然只能用 Domain Name 連線,而用 IP 卻會失敗。
雖然前輩老 K 叫他不用管,東西會動就好,但小新決定一探究竟,
經過小新一番測試,發現了以下條件才會有靈異現象:
身為一個資訊人員學會 TroubleShooting 是很重要的,
在這個情境中,我會推薦使用 wireshark 作為開始。
下圖是當我們用 domain name 連線 SMB 的封包,可以看的出來這次連線過程採用 Kerberos 驗證
註:當無法使用 Kerberos 時候, SMB 會自動協議使用 NTLM。
而當我們使用 IP 連線時,走的驗證是 NTLM
所以真實情況是,服務能夠使用 Kerberos 做驗證但無法使用 NTLM 作為驗證。
但為什麼會有這種狀況,明明是連線相同的伺服器卻有不同的狀況。
我們必須來看這兩種驗證方式的差別:
Kerberos 驗證流程:
NTLM 在 AD 時驗證流程,特別備註在 AD 是因為 NTLM 也可以作用於沒 AD 的環境:
回到我們的靈異現象,「為什麼用 Domain name 能通,用 IP 不能通」
其實這時候答案很明顯的了,請仔細看一次兩張圖的溝通連線差異。
當使用 Kerberos 驗證的時候 Server 不需要跟 DC 做網路溝通。
但使用 NTLM 驗證的時候,因為是透過 Server 做 Pass-Through Authentication (傳遞驗證) , Server 必須跟 DC 做網路溝通。
當 Server 跟 DC 這段有問題時,無論是網路或是其他因素,也就導致了 NTLM 驗證失敗,形成了 IP 連線時驗證失敗。
如果你有遇到相同原因造成的狀況,建議早日排除這問題, Server 很可能在接下來的日子裡會出現更多事情,最常見的就是 Server 可能無法套用新的 GPO。
在之後的文章會闡述 NTLM 與 Kerberos 的部分安全討論,如果真要快速下一個建議,以筆者的建議服務走 Kerberos 往往比用 NTLM 安全許多,以服務驗證的狀況來說 NTLM 有 NTLM Relaying 的風險,但 Kerberos 並沒有這種風險。