在 AD-LDS 上複製 lockoutTime 屬性並不緊急
我在同一個子網上有兩台 LDS 伺服器。它們複製得很好。如果我更改一個屬性,它會在 15 秒後被複製。
LDS 配置為遵守密碼策略。當使用者輸入錯誤密碼次數過多時,他的帳戶將被鎖定並
lockoutTime
相應地設置該使用者的屬性。但
lockoutTime
沒有複製那麼緊迫。事實上,除非目錄中某處有其他更改,否則它不會被複製。將複製 lockoutTime 屬性。這是一個(編輯過的 Wireshark)跟踪。它顯示正常的複制流量
No. Time Protocol Length Info 133 16:23:02 DRSUAPI 562 DsGetNCChanges request 134 16:23:02 DRSUAPI 3042 DsGetNCChanges response 152 16:23:17 DRSUAPI 562 DsGetNCChanges request 157 16:23:17 DRSUAPI 242 DsGetNCChanges response 230 16:24:57 DRSUAPI 562 DsGetNCChanges request 231 16:24:57 DRSUAPI 2930 DsGetNCChanges response 246 16:25:12 DRSUAPI 562 DsGetNCChanges request
在那之後,我鎖定了使用者(使用
FOR
循環和ldifde
)。什麼都沒有發生,直到我放棄並更改description
使用者的屬性,然後大約 15 秒後我看到複製通過了。1984 16:31:05 DRSUAPI 562 DsGetNCChanges request 1985 16:31:05 DRSUAPI 2930 DsGetNCChanges response
lockoutTime 和描述被複製。如此處所述,如果我設置
lockoutTime=0
,定期複製將在 15 秒後發生!我已啟用複制診斷。由於沒有複製,因此實例的日誌中沒有顯示任何內容。當複制觸發時,我看到一堆最新屬性的事件 1239,兩個 1240 事件。一個用於屬性
lockoutTime
,一個用於description
(我用來觸發複製)。我啟用了站點之間的更改通知,重新啟動了這兩個服務,但沒有任何區別。可能是因為兩台伺服器在同一個子網上。
Active Directory 技術規范清楚地將lockoutTime列為要複製的緊急屬性之一。
是什麼阻止了
lockoutTime
屬性的緊急複製?
(通過對 Microsoft 的支持電話的結果回答我自己的問題)
這是 AD-LDS 中的一個錯誤(錯誤檢查 ID 354126)。它影響 Windows Server 2008,我不知道 Server 2012。
問題是沒有通知發送到副本(既不緊急也不正常)。當帳戶鎖定儲存在數據庫中時,LDS 不會不更新全域通知列表。因此,只有在計劃的複制開始後才會發生複製。
繞過它的方法是創建一個計劃任務,該任務呼叫
repadmin /syncall localhost:389
如果沒有要複製的內容,此呼叫將產生大約 42k 的網路流量。
解決問題的另一種方法是……什麼都不做。該漏洞使攻擊者猜測密碼的機會加倍。它很難被利用,因為使用者通常不直接呼叫 LDS。即使他們這樣做了,這個錯誤只會使他們的機會增加一倍。