windows的域和域林间的信任是如何工作的
文章目錄
- 注解
- 信任關系架構
- NTLM協議 (Msv1_0.dll)
- Kerberos協議 (Kerberos.dll)
- Net Logon (Netlogon.dll)
- LSA (Lsasrv.dll)
- Tools
- 活動目錄
- TDO 受信任域對象
- 受信任域對象內容
- TDO 密碼
- 信任關系的實際限制
- TDO數量
- 信任關系路徑
- 信任關系搜索
- 信任關系流
- 單向信任關系、雙向信任關系
- 傳遞性信任關系和非傳遞性信任關系
- 信任類型
- 自動創建的信任關系
- 父子域信任關系
- Tree-root信任關系
- 手動設置的信任關系
- 快捷信任關系
- 外部信任關系
- 領域信任關系
- 林信任關系
- 外部信任關系和林信任關系的區別
- 信任關系的處理和交互
- 認證引用概述
- Kerberos V5引用過程
- NTLM引用處理過程
- 其他的認證協議引用處理過程
- 基于Kerberos的跨域(同林)認請求處理
- 基于Kerberos的跨域林認證請求處理
- 在信任關系中使用到的網絡端口
- Local Security Authority RPC端口
- Net Logon RPC端口
- 信任關系中會用到的端口
歡迎掃碼關注微信公眾號
原文鏈接
英語水平有限,如有錯誤或者不恰當的地方,歡迎指正
注解
- NT 4.0內核用于XP之前的windows機器,是很古老的操作系統版本,5和6依次對標xp和win7
- 文中的NT指的是NT 4.0
活動目錄通過域和域林間的信任關系為不同的域個域林的通信提供安全保障。在通過信任關系進行認證之前,Windows必須首先確定接受請求的域是否和發起請求的賬戶所在的域之間擁有信任關系。要想進行這個判斷,Windows安全系統需要在請求和被請求的域的域控制器中計算出一個信任路徑。
活動目錄所提供的的訪問控制機制和Windows分布式安全模型共同為域和域林信任的操作構建了一個最佳的環境。為了讓這些信任可以正常工作,域中的每一個工作站和服務器都必須擁有一個直接到達域控制器的信任路徑。信任路徑是Net Logon服務通過一個已經認證過的連接到域控制器的遠程過程調用(RPC)來實現的。另外,一個安全的隧道會通過內部域信任關系拓展到其他的活動目錄域 。這個所謂的安全隧道是用來獲取和驗證安全相關信息,包括用戶和組的SID
這一章節會描述信任機制的內部工作原理,討論將會被使用到的不同的信任關系,并提供一個詳細的引用列表、涉及到信任的登錄過程,還會列出所有的信任機制會用到的網絡端口。
信任關系架構
集成在Windows Server 2003和活動目錄的應用使用操作系統的組件來建立和維護信任。大量的組件幫助信任架構為活動目錄提供一個高效的通信設施。這些組件包括認證協議,Net Logon服務,LSA和存儲在活動目錄中的信任域對象(TDO–>Trusted Domain Objects)。下面這張圖中展示了這些信任關系組件:
NTLM協議 (Msv1_0.dll)
NTLM認證協議依賴于域控制器上的Net Logon服務來進行用戶身份認證和認證信息的獲取。這個協議專門用于為不使用Kerberos進行認證的用戶提供認證服務。NTLM使用信任來在不同的域之間傳遞認證請求。
Kerberos協議 (Kerberos.dll)
Kerberos V5認證協議依也賴于域控制器上的Net Logon服務進行用戶的認證和認證信息的獲取。Kerberos協議連接KDC(Key Distribution Center)和活動目錄賬戶存儲來獲取session tickets。Kerberos協議也使用信任來使用cross-realm(跨領域(kerberos相關術語))ticket-granting 服務(TGS)并通過安全隧道驗證Privilege Attribute Certificates(PACs)。Kerberos協議只在非Windows操作系統的Kerberos領域中進行cross-realm認證,并且這種認證不需要于Net Logon服務進行交互
Net Logon (Netlogon.dll)
Net Logon服務為計算機和域控制器之間維護一個安全隧道。它也被用在下面這些信任相關的處理過程:
- 信任的構建和管理
- Net Logon幫助維護信任密碼,收集信任關系信息并通過LSA進程和TDO驗證信任關系。對于林信任,信任關系信息包含了林信任關系信息(FTinfo)記錄,這個記錄包含著一個受信任的域林聲明要進行管理的命名空間(暫時不太理解這個命名空間指的是啥)的集合,該記錄中有一個字段用于表明每一個聲明要管理的命名空間是否是被信任的(這里的這個命名空間指的可能是域)
- 認證
- 通過安全隧道將用戶憑證提交給域控制器,并向該用戶返回域SID和用戶特權
- 定位域控制器
- 在當期域定位域控制器或者跨域定位域控制器
- 驗證
- 其他域中的用戶憑證是Net Logon處理的。當一個信任域需要確認一個用戶的身份時,該用戶的憑證會通過Net Logon服務發送給受信任域進行認證。
- PAC確認
- 當一個服務器使用Kerberos協議進行認證時,需要確認service ticket中的PAC,Net Logon服務會通過安全隧道將PAC發送給域控制器進行確認
- 關于PAC在windows的kerberos版本中的作用https://blogs.technet.microsoft.com/apgceps/2011/09/12/packerberos-2/ https://blogs.technet.microsoft.com/apgceps/2011/09/19/packerberos/
LSA (Lsasrv.dll)
LSA是一個受保護的子系統,它維護所有本地安全相關的信息,并提供各種用于轉換names和identifiers對應關系的服務,LSA的用戶模式和內核模式均提供對象驗證。用戶特權檢查和審計信息生成的服務。LSA負責檢查所有由受信任域和非受信任域的服務提供的session tickets的有效性
Tools
管理員可以使用活動目錄域和信任關系,Netdom和Nltest來查看、創建、移除、更改信任關系。活動目錄域和信任關系指的是Microsoft Management Console (MMC),MMC是用于管理域信任、域和域林功能級別以及用戶主體名后綴的。Netdom和Nltest命令行工具用于查找、顯示、創建和管理信任關系。這些工具直接與域控制器上的LSA認證機構進行通信
活動目錄
活動目錄服務存儲網絡上的對象的信息并提供給網絡上的用戶和管理員進行使用。信任關系可以被用來拓展到其他的活動目錄域和域林
TDO 受信任域對象
一個組織中的每一個互相信任的域和域林都會被一個存儲在其對應的域中的TDO代表
受信任域對象內容
包含在TDO中的內容會根據該TDO是被域信任關系創建的還是域林信任關系創建的而變化。當一個域信任關系被創建時,一些屬性諸如DNS域名、域SID、信任關系類型、信任關系傳遞性和windows對等域名都會保存在TDO中。林信任關系TDO存儲額外的屬性來認證其他林中的信任命名空間。這些屬性包括域樹名、用戶主體名稱(UPN)后綴、服務主體名稱(SPN)后綴以及安全ID(SID)命名空間。
因為信任關系被活動目錄以TDO的形式存儲起來,所有windows server 2003域林中的域都擁有該域林內信任關系相關的信息,與NT4.0域之間的信任關系不會以TDO的形式被存儲在活動目錄中
TDO 密碼
一個信任關系中的兩個域都會共享一個密碼,該密碼存儲在TDO對象。最為該賬號維護的一部分,每30天,信任域控制器會更改一次密碼。因為所有的雙向信任關系其實都是兩個單向信任關系組成的,所以這個密碼更改會發生兩次。在一個信任關系中,有信任的一方,還有一個被信任方。在受信任方,所有的可寫域控制器都會參與TDO account的維護,在信任方,PDC模擬器會進行密碼額更改,要完成該過程,域控制器會執行以下處理:
受信任域的域控制器永遠不會發起密碼更改操作,它總是由信任域的PDC模擬器發起的
保存一份之前的密碼的copy,以便于將來回滾到之前的狀態,以防止受信任域沒有收到改變密碼的消息或者新的請求已經開始使用新的信任關系密碼但是域控制器之間的replicated操作還未完成。
經過以上過程之后,雙邊信任關系密碼就更改完成了。
信任關系的實際限制
信任關系的限制主要來源于TDO的數量、信任路徑的長度以及客戶端發現可用信任關系的能力
TDO數量
TDO是域關系密切,隨著TDO數量的上升,這些TDO連接的處理性能就會降低。測試表明,當一個組織的TDO總量超過2400時,完成TDO相關的操作(比如跨域認證)所消耗的時間會顯著上升。當然也只有少數比較大的組織才會擁有那么多的TDO,且在windows server 2003中沒有對信任關系數量的絕對限制。
信任關系路徑
在windows server 2003域中,kerberos最多可以通過10個信任關系鏈路來在其他域中查找到請求的資源的位置。如果不同域之間的信任路徑超過了這個值,那么訪問將會失敗。可以通過建立到目標域的外部信任來解決信任關系路徑過長的問題。
信任關系搜索
當一個客戶端發起信任路徑搜索時,搜索范圍被限制在直接建立了信任關系的域以及和域林內具有傳遞性的域(就是說客戶端所在域和這些域本來是沒有建立信任關系的,但是和一個域建立了信任關系,但是這個域又和域林內的其他域有信任關系,這樣信任關系就會傳遞到客戶端所在的域)。比如,**一個子域不能使用其父域與其他域林中的域的外部信任關系。**這是因為一個完整的信任路徑必須在客戶端可以使用該信任路徑查找到請求的資源所在的域之前建立完成(這是當然的)。windows server 2003不支持盲引用;如果一個客戶端不能識別一個信任路徑,那么它將不會嘗試尋求對另一個域中資源的訪問權。子域無法識別其域林外的信任機構的外部信任關系或者領域信任關系,因為用于代表這些信任關系的TDO保存在共享這些信任關系的域內,而不是全局編錄服務器。
信任關系流
信任關系之間的安全通信流決定了信任關系的彈性(不太明白這個彈性表示啥意思?):創建或者配置信任關系的方式決定了域林內的通信或者跨域林的通信能拓展多遠。信任關系之間的通信流取決于信任方向(單向還是雙向)以及信任關系的傳遞性(傳遞性還是非傳遞性)
單向信任關系、雙向信任關系
信任關系的建立旨在完成資源的單向或者雙向訪問。一個單向信任關系是一個由兩個域創建的單向認證路徑。在一個Domain A和Domain B之間的單向信任關系中,Domain A中的用戶可以訪問Domain B中的資源。然而,Domain B中的用戶卻不能訪問Domain A中的資源。單向信任關系可以是傳遞的也可以是非傳遞的。
活動目錄林中的所有域間信任關系都是雙向的和傳遞的信任關系。當一個新的子域被創建,一個雙向的、傳遞性的信任關系也就在父域和這個新的子域之間自動創建了。在一個雙向信任關系中,Domain A信任Domain B,并且Domain B信任Domain A。這意味著經過認證的請求可以再這兩個域之間進行雙向的發送。雙向信任關系也可以是傳遞性的或者非傳遞性的。一個活動目錄域可以在以下等級的活動目錄域中創建單向或者雙向信任關系:
- 位于同一個域林中的Windows Server 2003域
- 位于不同域林中的Windows Server 2003域
- Windows NT 4.0域
- kerberos V5領域
傳遞性信任關系和非傳遞性信任關系
傳遞性卻決于信任關系是否能夠被拓展到創建該信任關系的兩個域之外。一個傳遞性的信任關系可以被用來拓展信任關系到其他的域中;一個非傳遞性的信任關系可以被用來隔絕與其他域的信任關系。
你每一次在域林中創建一個新的域,一個雙向且傳遞的信任關系就會在新域和其父域之間自動建立起來。如果這個新建的域中又創建了一個子域,那么信任路徑流會向上拓展到新域和父域之間的信任關系。具有傳遞性的信任關系會順著域樹拓展到整顆域樹中。
認證請求隨著信任路徑,因此來自域林中的任何域中的賬戶都可以在該域林中的其他域中進行認證。在經過單次登錄過程之后,具有一定權限的用戶可以訪問域林中的所有域中的資源。下面的示意圖展示了Tree 1和Tree 2中的所有域都具有默認的傳遞性的信任關系。其結果就是,當用戶被分配適當的權限之后,Tree 1中的用戶可以訪問Tree 2中的域中的資源,且Tree 2中的用戶可以訪問Tree 1中的域中的資源。
從這張示意圖中我們可以看到,同一域林中的域樹根域之間也會自動擁有一個傳遞性的雙向信任關系。
除了上述的默認信任類型之外,還有下面三種信任類型可以通過新建信任關系向導來進行創建。
- 快捷信任關系
- 一種建立于同一個域樹(林)中的域之間的傳遞性信任關系,用于縮短大且復雜的域樹(林)中的信任關系路徑
- 林信任
- 兩個林根域之間的信任關系
- 領域信任
- 活動目錄域和Kerberos領域之間的信任關系
一個非傳遞性的信任關系被限制在這兩個建立了信任關系的域之間。
非傳遞性信任關系默認是單向的,你可以通過創建兩個單向的信任關系來達到雙向信任的效果。
下面列出的域之間只能創建非傳遞性信任關系:
- 一個Windows Server 2003域和一個Windows NT域
- 一個Windows Server 2003域和另一個域林中的域(前提是這兩個域林沒有建立信任關系)
通過新建信任關系向導,你可以創建如下的非傳遞性信任關系:
- 外部信任(External Trust)
- 一個創建于Windows Server 2003域和另一個林中的Windows NT、Windows 2000或者Windows Server 2003的域之間的信任關系。當你想要將一個NT域升級至Windows Server 2003域時,所有的之前存在的Windows NT信任關系可以被完整的保留。注意Windows Server 2003域和Windows NT域之間的信任關系是非傳遞性的。
- 領域信任(Realm Trust)
- 活動目錄域和Kerberos V5領域之間的非傳遞性信任關系
信任類型
信任關系具有不同的特點。**創建信任關系得域的類型會影響到信任關系的類型。**比如,兩個位于不同域林中的子域之間的信任關系總是外部信任關系,但是兩個windows server 2003林根域之間的信任關系可能是外部信任關系,也可能是林信任關系。
有兩種信任類型會在你是用活動目錄安裝向導自動創建。還有四中其他的信任類型由新建信任關系向導或者Netdom命令行工具進行創建。
自動創建的信任關系
默認情況下,當一個新域添加到域樹中或者林根域(林根域其實就是域中的一顆域樹的根域,就是林中的一個域樹)中時會自動創建雙向傳遞性信任關系。默認的信任關系有兩種:父子域信任關系和tree-root(樹根域)信任關系。
父子域信任關系
只要有新的域加入到域樹中,那么父子信任關系就會創建起來。活動目錄安裝過程會自動創建信任關系。父子域信任關系有如下特點:
- 只能存在于同一顆域樹中
- 父域總是被子域信任
- 它一定是雙向且傳遞的信任。可傳遞性信任關系的雙向性使得活動目錄中的全局編錄信息可以復制到所有層級的的域中。
Tree-root信任關系
tree-root信任關系會在你將一個新的域樹添加到域林中時創建。活動目錄安裝向導會自動創建一個關于你新創建的域樹根域和林根域的信任關系。tree-root信任關系具有以下局限性:
- 它只能在同一個域林中的兩顆域樹根域之間建立。
- 它必須是雙向且傳遞的。
手動設置的信任關系
在windows server 2003中共有4中信任關系需要進行手動設置:快捷信任關系(用于優化同一個域林中域樹間的信任路徑)、外部信任關系、領域信任關系和林信任。這些信任關系類型必須使用新建信任關系向導或者Netdom命令行工具來進行創建。
快捷信任關系
這個不再贅述,大致就是圖中所示的意思。
外部信任關系
外部信任關系可以創建在不同域林中的活動目錄域中,還可以創建在windows server 2003或更高版本的活動目錄域和windows NT4.0或早期版本的活動目錄域之間。外部信任關系具有以下特點:
- 非傳遞的
- 如果想要創建一個雙向的信任關系,必須手動在每一端設置一個單向的信任關系。在windows server 2003中可以使用新建信任關系向導一次性創建出一個雙向的外部信任關系。
- windows server 2003域強制啟用SID篩選器隔離。由信任域創建的外部信任關系使用SID篩選器隔離(SID filter quarantining)來保證接收到的來自受信任域的認證請求只包含受信任域中的安全主體的SID。SID過濾隔離確保SID history屬性的的誤用不會對信任域的完整性造成任何影響。
關于SID的歷史屬性
外部信任關系提供了對域林外的域中的資源的訪問。下面這張示意圖展示了外部信任關系是如何在windows server 2003域林和windows 2000域林之間使用的。
在上面這個示例中,兩個外部的信任關系存在于windows server 2003域林和windows 2000域林。箭頭指向的域是被信任的域,被信任的域可以訪問信任域中的資源。
由于外部信任關系都是非傳遞性的,所以rome.europe.tailspintoys.com中的用戶是訪問不到wideworldimporters.com中的資源的,同樣sales.wideworldimporters.com中的用戶也是訪問不到tailspintoys.com的
當不同域林中的域建立了信任關系之后,外部域的安全主體就可以訪問內部域的資源。活動目錄在內部域創建了一個外部的安全主體對象來代表每一個來自受信任的外部域的安全主體。這些外部的安全主體可以成為內部域的本地域組成員。外部安全主體的目錄對象是由活動目錄創建的而且不應該被手動修改。通過啟用高級特性,你可以在活動目錄的用戶和計算機中查看外部安全主體對象。
下面這張示意圖演示了windows server 2003域林和windows NT 4.0域之間的外部域信任關系的配置。
windows server 2003的林信任都啟用了SID篩選器。啟用SID篩選器可以防止受信任域中的高權限惡意用戶提升受信任域中其他用戶對信任域中資源的權限。
參考鏈接:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc755321(v=ws.10)#potential-threats-to-interforest-trusts
領域信任關系
在此不做詳細描述
林信任關系
林信任關系通過提供對跨域林資源訪問的支持來幫助你在你的組織內部管理分段的windows server 2003域中的基礎結構。林信任關系對Application Service Provider、處于合并或收購過程中的公司、需要與外網進行協同合作的商務以及需要行政自治解決方案的公司。(不太明白最后這個場景的意思)
林信任關系可以提供以下好處:
- 通過減少外部信任關系的數量來簡化兩個windows server 2003域林之間的資源管理
- 每個域林中的每個域都擁有完整的雙向信任關系
- UPN(user principal name)的跨域認證
- 通過同時使用Kerberos V5認證協議和NTLM認證協議來提高兩個域林之間認證過程的可信賴度
- 管理的靈活性。每個域林中的管理任務都是唯一的
- 每個域林中的數據的安全性得到加強。敏感數據只能被數據所在的域林中的用戶訪問
- 每個林中的目錄復制操作都是獨立的。Schema改動、配置改動以及新域的增加都只會在當前域林中產生影響,并不會影響到信任域林
- windows server 2003域中SID篩選器的強制啟用。SID篩選器可以確保SID歷史屬性的濫用不會影響到信任域的完整性。
通過使用林信任關系你可以將兩個windows server 2003域林連接起來以形成一個單向或者雙向的信任關系。林信任允許管理員將兩個域林通過單個信任關系聯系起來以提供無縫的跨域認證和授權體驗。
林信任關系只能創建于兩個林根域之間。林信任關系是絕對不可以擴展到第三個域林中的。意思就是林信任關系是不可能擁有傳遞性的。
Forest 1和Forest 3之間是沒有信任關系的。
要使用林信任需要滿足下面的要求。在你可以使用林信任之前,你必須確保兩邊的域林中的所有的域控制器都運行的是windows server 2003及以上版本。同時你還需要確保你擁有正常工作的DNS設備以及你創建了合適的活動目錄功能級別。這意味著域林必須提升至windows server 2003級別及以上,且你不能在域林中安裝額外的Windows 2000或者Windows NT 4.0的域控制器。
只有當你的域林中擁有下面的DNS配置時林信任才能被成功創建:
- 有一個root DNS服務器,該DNS服務器同時是兩個目標域林的命名空間的root DNS服務器:root zone包含每個DNS命名空間的委托且兩個域林中的所有DNS服務器的root hints都包含該root DNS服務器。
- 如果沒有共享的DNS服務器,且每個域林中的DNS命名空間的root DNS服務器運行的是Windows server 2003家族的操作系統,DNS的條件轉發需要在每個DNS命名空間中被配置以將其他命名空間的查詢路由到正確的DNS服務器上
- 和第二種情況一樣,兩個目標域林沒有共享的DNS服務器,且每個域林中的DNS命名空間的root DNS服務器都運行著windows server 2003家族操作系統,第二種情況是在主DNS服務器上配置條件轉發,還有一種情況就是在輔助只讀DNS服務器上配置條件轉發來路由DNS查詢請求
只有林根域的Domain Admins組或者Enterprise Admins組的administrator才可以創建林信任關系。
Incoming Forest Trust Builders組的成員可以創建一個單向的、incoming林信任關系。舉個栗子,Forest A中IFTB(Incoming Forest Trust Builders)的成員可以創建一個單向的,來自Forest B的incoming林信任關系。這個單向的、incoming林信任關系允許Forest A中的用戶訪問Forest B中的資源。IFTB組中的成員被賦予了在林根域創建Inbound林信任關系的權利。IFTB組中沒有默認成員。
Windows NT Server 4.0、Windows 2000、Windows XP客戶可以使用林信任來進行認證。盡管如此,Windows NT Server 4.0客戶僅支持NTLM認證,而且不支持用戶使用UPN登錄到網絡中。Windows Server 2003功能級別的林信任不能在Windows Server 2003域林和Windows 2000域林中創建。
外部信任關系和林信任關系的區別
其實區別就在于林信任關系是由位于兩個不同域林的兩個林根域創建的,而外部信任關系是由位于兩個不同域林中的域創建的
可以看出來林信任關系其實是外部信任關系的子集
信任關系的處理和交互
許多的域間和林間交互都依賴于域或者域林信任關系來完成各種各樣的任務。這一節描述了當跨域資源訪問或者身份驗證時所發生的處理過程和交互行為。
認證引用概述
當一個認證請求被引用到域時,這個域的域控制器就必須在對該用戶進行任認證之前決定請求來自的域是否和本域存在信任關系,以及該信任關系的信任流方向和傳遞性。發生在兩個域之間的認證過程會因使用的認證協議而不同。Kerberos V5和NTLM認證協議在Windows 2000 Server和Windows Server 2003的認證引用過程是不同的,至于其他的認證協議,比如Digest和SChannel,Windows 2000 Server和Windows Server 2003都是支持的。
Kerberos V5引用過程
如果客戶使用Kerberos V5進行認證,它會向他的賬戶所在域的域控制器申請一個用于訪問目標域中的服務器的ticket。Kerberos KDC(Key Distribution Center)在服務器和客戶端之間充當受信任的第三方的角色;它提供一個session key讓Server和Client進行互相認證。如果目標域和客戶所在域是兩個域,那么KDC會進行一個邏輯處理來判斷這個認證請求能不能被引用。
- 如果是,向客戶端發送一個指向被請求域的引用
- 如果不是,執行下一步
- 如果是,向客戶端發送一個指向信任路徑中的下一個域的引用
- 如果不是,向客戶端發送一個logon-denied消息
NTLM引用處理過程
如果客戶端使用NTLM認證協議,那么原始的認證請求將會直接從客戶端發送到目標域中的資源服務器。這個服務器會向發送請求的客戶端創建一個挑戰。然后服務器將用戶的響應發送給用戶賬戶所在域的域控制器。域控制器在它的安全賬戶數據庫中檢查該用戶的賬戶。如果賬戶不存在,該域控制器將需要通過下面的邏輯處理來決定是否發起pass-through認證過程,轉發該請求,或者決絕該請求:
- 如果是,域控制器將用戶的憑證發送給該用戶所在的域控制器以進行pass-through認證過程。
- 如果不是,執行下一步。
- 如果是,將認證請求發送給信任路徑中的下一個域,這個域的域控制器重復上面加粗的過程。
- 如果不是,向客戶端發送一個logon-denied消息。
其他的認證協議引用處理過程
Windows 2000 Server和Windows Server 2003也支持在林信任中使用Digest和Schannel認證協議。這使得諸如Web服務器等技術可以在多域環境中完成他們的任務。SSL協議和證書通過Schannle映射到活動目錄的用戶賬戶,IIS使用Digest。具有信任關系的兩個域可能會被要求進行Digest和SChannel認證,因為建立信任關系的兩個域可能會存在防火墻,只允許HTTP協議的報文通過。Digest可以使用HTTP的頭部進行傳輸。
只要通用的pass-through機制可以在目標域內找到合適的域控制器,Windows 2000 Server和Windows Server 2003將通過協商來決定在信任關系上使用哪種認證協議進行認證。管理員也可以選擇使用SSP作為另一種認證方式。如果SSP與windows 2000 server和Windows server 2003分布式系統是兼容的,那么它就可以以標準的windows 2000 server和windows server 2003工作方式在跨域的信任關系上工作。
基于Kerberos的跨域(同林)認請求處理
位于同一域林中的活動目錄域都具有雙向且可傳遞性的信任關系,因此從一個域到另一個域的認證請求將會被路由到目標域以提供對資源的無縫訪問。Windows 2000域控制器或者windows server 2003域控使用下面兩種認證協議的其中一種進行用戶和應用的認證操作:Kerberos V5或NTLM。一旦在他們自己的域中完成認證,用戶就可以嘗試使用活動目錄授權獲取該域林中所有域中的資源。
要想使用Kerberos認證來訪問其他域中的共享資源,用戶的電腦首先要在自己賬戶所在域的控制器申請一個用于訪問信任域中的資源的ticket。這個ticket稍后會被一個可信的第三方頒發。(沒太讀懂官方文檔的意思,沒交代清楚這個可信的第三方到底是誰)。用戶的電腦將ticket發送給位于信任域中的服務器以進行認證。
下面的示意圖和響應步驟提供了一個關于跨域Kerberos認證過程的詳盡描述。
上述過程是發生在同一個林中的。
每一個域都有他自己的安全策略來管理資源的訪問。這些策略是無法跨域的。
基于Kerberos的跨域林認證請求處理
當兩個Windows Server 2003域林建立起林信任關系之后,使用Kerberos V5或者NTLM協議進行的認證請求可以在兩個林中進行正確的路由來進行資源的訪問。
當一個林信任被建立起來之后,每個林都會搜集所有的他的被信任域的命名空間并把這些信息存儲到TDO中。被信任的命名空間包括其他域林中的域樹名字,UPN后綴,SPN后綴和SID命名空間。TDO對象會被復制到全局編錄。
在認證協議可以根據域林信任路徑進行認證之前,承載著資源的計算機的SPN必須被解析到其他域林中。一個SPN可以有如下幾種形式:主機的DNS名稱、域的DNS名稱或者服務接入點對象的DN(distinguish name)。
當域林中的一個Workstation嘗試訪問另一個域林中的資源計算機時,Kerberos認證過程會聯系域控制器獲取一個要訪問的資源計算機的SPN的service ticket。一旦域控制器向全局編錄發起請求并判斷出SPN并不在當前域林內,域控制器就會將其父域的引用返回給Workstation。這個時候,workstation向他的父域請求服務票據,并沿著信任路徑找到目標計算機所在域的域控制器申請服務票據。
下面這張示意圖和響應步驟提供了一個跨林Kerberos認證過程的詳細描述。
10.一旦Workstation 1獲得了服務票據,它就會將該服務票據發送給FileServer 1,然后FileServer 1讀取安全憑證并依此構建出訪問令牌。
在信任關系中使用到的網絡端口
由于信任關系必需要在不同的網絡邊界中建立 ,所以可能會經過多個防火墻。在這種情況下,你通過開啟防火墻上的某個端口來允許信任關系產生的網絡流量通過。在Windows Server 2003中,這個過程被簡化成為信任關系相關的服務配置RPC端口。有兩個主要的端口需要配置:Local Security Authority RPC端口、Net Logon RPC端口
Local Security Authority RPC端口
這個端口被用于信任關系的創建和對LSA策略數據庫的訪問
Net Logon RPC端口
這個端口被用于NTLM認證過程和安全通道的通信。
下面這張表格展示了在建立信任關系時需要打開的端口列表。
信任關系中會用到的端口
| 同林中的兩個域創建信任關系 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動端口) | N/A | 內部域的域控制器 ---- 外部域的域控制器(所有端口) |
| 由內部域林到外部域林的信任關系的驗證 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動端口) | N/A | 內部域的域控制器 ---- 外部域的域控制器(所有端口) |
| 在外部域林中使用對象選取器向內部域林的組合DACLs中添加對象 | N/A | LDAP(TCP/UDP:389)、Windows NT Server 4.0目錄服務(活動端口)、Net Logon(活動端口)、Kerberos(UDP:88)、Endpoion resolution portmapper(TCP:135) | 外部服務器 ---- 內部域的PDC(kerberos)、外部域的域控制器 ---- 內部域的域控制器(Net Logon) |
| 在外部域林中設置信任關系 | N/A | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88) | 外部域的域控制器 ---- 內部域的域控制器(所有端口) |
| 內部域客戶端對外部域使用Kerberos認證 | Kerberos(UDP:88) | N/A | 內部域林客戶端 ---- 外部域的域控制器(所有端口) |
| 內部域客戶端對外部域使用NTLM認證 | N/A | Endpoion resolution portmapper(TCP:135) | 外部域的域控制器 ---- 內部域的域控制器(所有端口) |
| 將內部網絡的計算機加入到外部域中 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動端口)、Windows NT Server 4.0 目錄服務( 活動端口) | N/A | 外部域的域控制器 ---- 內部域的域控制器(所有端口) |
如果在實際應用中出現了139端口,那么改端口是為了向后兼容的。
要想指定你想在活動端口上運行的服務,你需要為該端口配置注冊表。
建議使用組策略或者其他windows工具,比如MMC(Microsoft Management Console)來達到上述目的。
官方不建議直接修改這兩個注冊表鍵。
Settings for the Local Security Authority (LSA) RPC port are stored in the TCP/IP Port entry in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters registry key.
Settings for the Net Logon RPC port are stored in the DCTcpipPort entry in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parametersregistry key.
總結
以上是生活随笔為你收集整理的windows的域和域林间的信任是如何工作的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 量子计算机亨通光电,在量子领域新成果:在
- 下一篇: PHP匿名在线聊天室系统源码