天天看點

Windows Server 2012 虛拟化測試:域

在Windows Server系統中,一些服務必需要建構在域的環境中,這不僅是為了統一驗證和資源共享,同時也是為了網絡安全。為建構虛拟化測試,我們需要先搭建域環境。之前先來大概了解一下域。

在使用工作組時,計算機是相對獨立的,工作組僅是網絡中計算機分類的一種方式,在不在一個工作組中,對網絡資源的通路影響并不大。工作組好比允許自由進出的免費停車場,加入工作組,好比你可以停在A區,也可以停在B區,如果停在A區,就與A區的其他汽車形成一個松散的組合。

在使用Windows域(Domain)時則不同,域是經過嚴格組織的,計算機加入域并且使用域賬戶登入才能通路某些共享資源。在域中至少有一台域控制器(Domain Controller, 簡稱DC)負責計算機和使用者的驗證工作。域好比收費停車場,需要刷卡驗證才能進出(可以有多于一個門禁,即DC),但驗證通過後即可使用裡面的共享設施,甚至其他汽車。例如當你的計算機使用具有管理者權限的域賬戶成功登入後,就可以使用該域賬戶登入同域中其他計算機上Sql Server,那麼你可以不再使用sa賬戶了。當然加入域的計算機并不代表隻能呆在域中,如果隻是用本地賬戶而非域賬戶登入,計算機和在工作組中沒有什麼不同。一般情況下,你的汽車可以停在收費停車場,也可以停在免費停車場,除非對汽車做了特别的限制(使用組政策可以限制計算機隻能使用域賬号登入)。你的計算機隻使用本地賬号登入,要想通路其他計算機上Sql Server,這時你無法使用Windows Authentication,但依然可以使用SQL Server Authentication,使用sa賬戶登入。

一、域測試網絡

接下來我們在Window Server 2012中部署域,為以後需要,我們将連接配接域的網絡稱為管理網絡,并以如下圖參數配置網絡。圖中配置兩個域控制器互為備份,雖然windows server 2003以後已經不再區分主域控和備份域控,但由于主機角色的客觀存在,域控制器的作用還是有一定差别的,下文将講述。

Windows Server 2012 虛拟化測試:域

二、配置域控制器

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作為林名稱。

Windows Server 2012 虛拟化測試:域

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作業系統的伺服器可以。

另外設定的功能級别可以更新不能降價,域功能級别不能低于林的功能級别。

6、域信任

域信任就是在域之間建立一種關系,使得一個域中的使用者可以在另一個域的域控制器上進行驗證,但建立信任僅僅是為實作跨域通路資源提供了可能,隻有在資源上對使用者進行了授權才能最終實作跨域通路。

域信任分為單向和雙向,單向就是我信任你但是你不信任我或者反之,雙向就是互相信任。另外域信任可配置為具有可傳遞,就是我信任你所信任的(第三方),可傳遞的信任省去了在複雜域環境中配置信任關系工作。

同一個林中父域和子域預設存在雙向的可傳遞的信任。域樹之間預設存在雙向的可傳遞的信任(Tree Trust),兩個不同域樹中的域之間可以建立快捷信任(Shortcut Trust),以加快驗證過程。不同林之間可以建立林信任(Forest Trust)。

與其他使用Kerberos做驗證的目錄系統可以建立領域信任(Realm Trust)。與較老的NT4系統可以建立外部信任(External Trust)。

Windows Server 2012 虛拟化測試:域

7、站點

理論上Windows域與實體網絡拓撲無關,域中多個域控制器隻要滿足能夠互相通信的條件,可以在同一個子網,也可以分屬不同子網;可以在同一個實體位置,也可以分别在不同的實體位置。但域控制器以及域中的計算機之間的通信最終受制于實體的網絡拓撲,如域控制器之間的複制和賬戶驗證等與實體位置關系密切。

站點可以看成是域中高速連接配接的一組計算機,按實體位置将域控制器和計算機部署在不同站點内,可以提高域内域控制器間複制和賬戶驗證的效率。例如一個域中,北京站點有兩個域控A和B,上海站點有兩個域控C和D,他們之間的複制如果按照BCDA的順序複制,那将是沒有效率的。按ABCD順序,同一個站點内的域控互相複制,站點間隻要複制一次即可。

三、測試和維護域

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 dc03

netdom computername dc02.cloud.z.com /add:dc03.cloud.z.com
netdom computername dc02.cloud.z.com /makeprimary: dc03.cloud.z.com

# Restart the computer

netdom 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 roles

netdom query fsmo

# Move FSMO roles from dc01 to dc03

ntdsutil
roles
connections
connect to server dc03.cloud.z.com
quit           

複制

transfer schema master
transfer naming master
transfer infrastructure master
transfer pdc
transfer rid master
quit           

複制

quit           

複制

3、清理AD中繼資料

當DC降級後,需要手動清除它在AD中的資訊,可以使用utdsutil指令:

# Remove metadata of a DC that need to be deleted

ntdsutil
metadata cleanup
connections
connect to server dc03.cloud.z.com
quit
select 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 0
remove select server
quit
quit           

複制

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。