標籤:style blog http color os io 使用 ar strong
在Windows Server系統中,一些服務必需要構建在域的環境中,這不僅是為了統一驗證和資源共用,同時也是為了網路安全。為構建虛擬化測試,我們需要先搭建域環境。之前先來瞭解一下域。
在使用工作群組時,電腦是相對獨立的,工作群組僅是網路中電腦分類的一種方式,在不在一個工作群組中,對網路資源的訪問影響並不大。工作群組好比允許自由進出的公用停車場,你可以停在A區,也可以停在B區。如果停在A區,就與A區的其他汽車形成一個鬆散的組合。
在使用Windows域(Domain)時則不同,域是經過嚴格組織的,電腦加入域並且使用域賬戶登入才能訪問某些共用資源。在域中至少有一台網域控制站(Domain Controller, 簡稱DC)負責電腦和使用者的驗證工作。域好比私人停車場,需要刷卡驗證才能進出(可以有多於一個門禁),但驗證通過後即可使用裡面的共用設施,甚至其他汽車。例如當你的電腦使用具有管理員權限的域賬戶成功登入後,就可以使用該域賬戶登入同域中其他電腦上Sql Server,那麼你可以不再使用sa賬戶了。當然加入域的電腦並不代表只能呆在域中,如果只是用本地賬戶而非域賬戶登入,電腦和在工作群組中沒有什麼不同。你的汽車可以停在私人停車場,也可以停在公用停車場,除非對汽車做了特別的限制。你的電腦只使用本地帳號登入,要想訪問其他電腦上Sql Server,這時你無法使用Windows Authentication,但依然可以使用SQL Server Authentication,使用sa賬戶登入。
一、域測試網路
接下來我們在Window Server中部署域,為以後需要,我們將串連域的網路稱為管理網路,並以如參數配置網路。
二、佈建網域控制器
Windows Server 上安裝網域控制站(Domain Controller, DC)是一件簡單的事,但安裝之前需要確認:登陸帳號是否擁有本地管理員權限,作業系統是否支援,TCP/IP是否配置正確,磁碟是否有NTFS分區和充足的空間以存放Active Directory(AD)資料庫,DNS伺服器是否支援等。另外最好預先修改電腦名稱並重新啟動,以免完成安裝後再修改網域控制站名稱所帶來的麻煩。
Windows Server 2008及以後版本都可以以角色的方式安裝Active Directory 網域服務(AD DS),並提升為網域控制站。Windows Server 2008 中也可以直接在運行中使用dcpromo命令,進行AD網域服務的安裝和提升為網域控制站。但Server 2012中dcpromo命令已經不被支援,所以在以角色的方式安裝AD網域服務後,可以在伺服器管理介面上面的事件提示中找到提升為網域控制站的連結。
關於具體安裝網域控制站的步驟不再贅述,網路中有很多網頁已經對此進行了詳細描述,但是對於網域設定過程中的出現的一些專有名詞需要瞭解:
1、林(Forest)、域樹(Tree)、域(Domain)和子域(Child Domain)
這些名詞已經非常形象的解釋了它們之間的關係,但還需一些描述協助理解:我們建立的第一個域是根域(Root Domain),於此同時也建立了第一個域樹和第一個林,因而這個根域既是林根域也是樹根域。根域也是域,只是地位特殊,一個林中只有一個林根域,但可以有多個樹根域。擁有共同命名空間的根域和子域構成域樹,擁有不同命名空間的域樹構成林。域樹的名稱與第一個域相同,林的名稱與第一個域樹相同,也與第一個域相同,因而名稱的選擇是很重要的。
如,我們根據 Assigning the Forest Root Domain Name 文章中的規則建立了兩個林。如果你所在組織擁有兩個通用網域名稱,其中一個用於外部互連網,比如用於組織的網站首頁,則另一個可以用於組織內部網路作為林的名稱(即第一個域的名稱),這樣建立的林將和左側的林x.com類似。如果只擁有一個通用網域名稱,為了內外有別,可以建立一個次層網域用於內部網路作為林的名稱,這樣建立的林將和右側的林cloud.z.com類似。使用通用網域名稱的是為了方便林與林之間通過互連網建立信任關係,但如果在測試中可以使用任何符合網域名稱規則的名稱,我們的實驗環境將使用cloud.z.com作為林名稱。
2、DNS伺服器、通用類別目錄伺服器(GC)和唯讀網域控制站(RODC)
佈建網域控制器過程中會遇到選擇這幾個選項:DNS服務、通用類別目錄伺服器(GC)和唯讀網域控制站(RODC)
- DNS伺服器即網域名稱伺服器。在域中電腦、叢集等名稱的解析,需要DNS服務的支援。建立域必須在域中提供DNS服務,如果在佈建網域過程中勾選DNS伺服器,則本機將被配置為DNS伺服器(配置程式會檢測當前DNS 基礎結構來決定DNS服務是否預設勾選)。
- 通用類別目錄伺服器(Global Catalog, GC)可以理解為林中唯讀全域緩衝,緩衝中儲存了林中本域內的所有對象的所有屬性和其他域的所有對象的部分屬性。“全域編錄使使用者能夠在林中的所有域上搜尋目錄資訊,無論資料存放區在什麼位置。將以最大的速度和最低的網路流量在林中執行搜尋。”如果在配置中勾選通用類別目錄伺服器,將會使這台網域控制站同時成為通用類別目錄伺服器。
- 唯讀網域控制站(Read Only Domain Controller, RODC)。“唯讀網域控制站(RODC)是 Windows Server 2008 作業系統中的一種新類型的網域控制站。藉助RODC,組織可以在無法保證物理安全性的位置中輕鬆部署網域控制站。RODC 承載Active Directory網域服務(AD DS)資料庫的唯讀分區。”“物理安全性不足是考慮部署 RODC 的最常見原因。RODC 提供了一種在要求快速、可靠的驗證服務但不能確保可寫網域控制站的物理安全性的位置中更安全地部署網域控制站的方法。”
3、AD資料庫、記錄檔和SYSVOL檔案夾
Active Directory使用檔案型資料庫,資料庫引擎是基於JET開發的Extensible Storage Engine(ESE),也叫做JET Blue。JET Blue計劃用於升級Access的資料庫引擎JET Red的,但卻用於Microsoft的其他產品中,如AD,WINS,Exchange Server等。ESE有能力擴充至16TB容量,容納10億對象。資料庫所有相關檔案預設在%systemroot%\ntds\檔案夾內,主要包括:
- ntds.dit 資料庫檔案。有興趣可以查閱 Active Directory database file NTDS.DIT 詳細瞭解。
- edb.chk 檢查點檔案。對資料庫的增刪改,在提交更新到資料庫之前,檢查點檔案會記錄事務完成情況,如果事務完成就從記錄檔提交更新到資料庫。
- edb.log和edbxxxxx.log等為記錄檔。每個記錄檔10MB,edb.log檔案填滿之後,會被重新命名為edbxxxxx.log,檔案名稱編號自增。對資料庫的增刪改會寫入記錄檔,用以交易處理。
- edbresxxxxx.jrs 為日誌保留檔案。為記錄檔佔據磁碟空間,僅當記錄檔所在的磁碟空間不足時使用。
- edbtmp.log 臨時記錄檔。當前edb.log被填滿時,會建立edbtmp.log繼續記錄日誌,同時當前edb.log被重新命名為edbxxxxx.log,而後edbtmp.log被重名為edb.log。
Active Directory使用SYSVOL檔案夾(需要放置在NTFS分區中)在DC間共用公用檔案,包括登入指令檔和策略設定檔等。詳細可參考 Sysvol and netlogon share importance in Active Directory
4、FSMO主機角色
Active Directory在多個網域控制站(DC)間進行資料複製的時有兩種模式:單主機複製模式(Single-Master Model)和多主機複製模式(Multi-Master Model)。
DC間資料複製多採用的多主機複製模式,即允許在任意一台DC上更新資料,然後複製到其他DC,當出現資料衝突時採用一些演算法解決(如以最後被寫入的資料為準)。多主機複製模式實現了DC間負載平衡和高可用的目的。但對一些資料多主機複製模式帶來了難以解決的資料衝突或解決衝突需要付出太大代價的問題,這時Active Directory會採用單主機複製模式,即允許只有一台DC更新資料,然後複製到其他DC。這些資料主要由5種操作主機角色來承擔更新的職責,這些角色可以被分配到林中不同DC中,這些角色也稱為靈活的單主機操作角色(Flexible Single Master Operation, FSMO),他們分別是:
林層級(在林中只能有一台DC擁有該角色):
- 架構主機(Schema Master):架構是林中所有對象和屬性的定義,具有架構主機角色的網域控制站(DC)才允許更新架構。架構更新會從架構主機複製到林中的其它網域控制站中。整個林中只能有一個架構主機。
- 網域命名主機(Domain Naming Master):具有網域命名主機角色的網域控制站才允許在林中新增和刪除域或新增和刪除域的外部參考。整個林中只能由一個網域命名主機。
域層級(在域中只有一台DC擁有該角色):
- PDC模擬器(PDC Emulator):Windows Server 2000及以後版本中網域控制站不再區分PDC(Primary Domain Controller)和BDC(Backup Domain Controller),但為相容舊系統和實現PDC上的一些功能,就需要PDC模擬器發揮作用了。這些包括:密碼即時更新;域內時間同步;相容舊有系統(如NT4和Win98)等。
- RID主機(RID Master):在Windows系統中,安全性主體(如使用者和使用者組)的唯一標識取決於SID(如使用者名稱不同但是SID相同的使用者Windows仍然認為是同一使用者)。SID由域SID(同域內都一樣)和RID組成。RID主機的作用是負責為安全性主體產生唯一的RID。為避免安全性主體SID重複,造成安全問題,RID統一從RID主機分配的RID池中產生。
- 結構主機(Infrastructure Master):結構主機的作用是負責對跨域對象引用進行更新,以確保所有域間操作對象的一致性。在活動目錄中有可能一些使用者從一個OU轉移到另外一個OU,那麼使用者的DN名就發生變化,這時其它域對於這個使用者引用也要發生變化。這種變化就是由基礎結構主機來完成。如果架構主機與GC在同一台DC上,架構主機將不會更新任何對象,因為GC已經擁有所有對象和屬性的拷貝。所以在多域情況下,建議不要將架構主機設為GC。
5、功能層級
Active Directory建立林時需要確定林和域的功能層級,功能層級決定了Active Directory網域服務(AD DS)的功能,也決定了哪些Windows Server作業系統可以被林和域支援成為網域控制站。Windows Server在曆次改版,也對Active Directory進行改進,形成了不同功能層級,更高的功能層級提供更多的功能,目前已有功能層級包括:Windows 2000 原生模式、Windows Server 2003、Windows Server 2008、Windows Server 2012等。
運行Windows Server 2008的作業系統上可以設定林和域的功能層級為Windows Server 2003,運行Windows Server 2003作業系統的伺服器可以加入成為網域控制站。但設定林和域的功能層級為Windows Server 2008,運行Windows Server 2003作業系統的伺服器將無法加入成為網域控制站,但運行Windows Server 2012作業系統的伺服器可以。
另外設定的功能層級可以升級不能降價,域功能層級不能低於林的功能層級。
三、測試和維護域
1、修改網域控制站電腦名稱
修改網域控制站電腦名稱不能簡單的開啟電腦屬性直接進行修改,涉及域內名稱解析,修改不當可能會造成找不到網域控制站的麻煩。建議升級為控制器前先修改電腦名稱並重啟電腦,如的確需要修改網域控制站電腦名稱可以使用netdom命令。在Powershell命令列提示符下:
# Show all computer names of a DC
netdowm computername dc02.cloud.z.com /enumerate
# Change computer name of a DC from dc02 to dc03netdom computername dc02.cloud.z.com /add:dc03.cloud.z.comnetdom computername dc02.cloud.z.com /makeprimary: dc03.cloud.z.com# Restart the computernetdom computername dc03.cloud.z.com /remove:dc02.cloud.z.com
2、遷移FSMO角色
前文介紹了AD中5個FSMO角色,為在域中多個DC間合理部署這些角色,或者遷移DC時,我們需要考慮遷移FSMO角色。轉移FSMO角色有兩種方式,第一種通過GUI:
Windows 2012 中在“伺服器管理員”菜單“工具”中開“Active Directory 使用者和電腦”。預設情況下已經串連到域,在網域名稱上右鍵選擇“操作主機”,這裡可以遷移RID、PDC和結構主機。
在“Active Directory 域和信任關係”右鍵選擇“操作主機”,這裡可以遷移網域命名主機。
在“Active Directory 架構”右鍵選擇“操作主機”,這裡可以遷移架構主機。但是“Active Directory 架構”不會出現在伺服器管理員中,我們需要事先註冊 regsvr32 schmmgmt.dll,然後再mmc控制台中通過菜單“檔案”添加“Active Directory 架構”嵌入式管理單元,而後進行後續的管理。
第二種使用ntdsutil命令,過程中可以輸入“?”以查詢協助:
# Show FSMO rolesnetdom query fsmo# Move FSMO roles from dc01 to dc03ntdsutilrolesconnectionsconnect to server dc03.cloud.z.comquit
transfer schema mastertransfer naming mastertransfer infrastructure mastertransfer pdctransfer rid masterquit
quit
3、清理AD中繼資料
當DC降級後,需要手動清除它在AD中的資訊,可以使用utdsutil命令:
# Remove metadata of a DC that need to be deletedntdsutilmetadata cleanupconnectionsconnect to server dc03.cloud.z.comquitselect operation target
list site
select domain 0
list domains
select domain 0
list severs for domain in site
# Select the DC that need to be deleted
select server 0remove select serverquitquit
4、遷移網域控制站
從dc01到dc03遷移域控制主要包含以下幾個步驟:
- 提升dc03為網域控制站(WS2012以前使用命令dcpromo),全域編錄、DNS伺服器選擇與dc01一致。
- 如果dc01是DNS 伺服器,配置dc03網路DNS伺服器位址指向dc01,等待dc03和dc01上的DNS資料同步。
- 在dc01上遷移FSMO角色至dc03。
- 降級dc01(WS2012以前使用命令dcpromo /forcemoval),在伺服器管理員中刪除AD DS角色將提示降級網域控制站。
- 清理DNS記錄,使用ntdsutil清理dc01的AD中繼資料。
5、其他維護工具
ntdsutil.exe。ntdsutil.exe 是一個命令列工具,提供對 Active Directory 網域服務(AD DS) 和 Active Directory 輕量目錄服務(AD LDS)的管理功能。可以使用ntdsutil命令執行 AD DS 資料庫維護、 管理和控制FSMO角色以及刪除沒有被正確卸載的網域控制站的中繼資料。
netdom.exe。
dcdiag.exe。
adsiedit.msc。adsiedit用於編輯 Active Directory 中的單個對象或少量對象。在WS2012伺服器管理員中的AD DS伺服器右鍵菜單可以找到。
ldp.exe。ldp.exe用於管理 Active Directory 輕型目錄服務 (AD LDS)
replmon.exe。
repadmin.exe。
Windows Server 2012 虛擬化測試:域