


保護Windows Server 2003活動目錄
本文介紹如何確保Windows Server 2003環境下的活動目錄更加安全。
如果我告訴你, Windows NT Server 4.0的安全性要高于Windows 2000 Server,你也許會認為我在說胡話。但是有時候,事實比胡話更加令人不可思議。在某些情況下,Windows NT Server確實要比Windows 2000 Server具有更好的安全性。不過Microsoft已經發現了這個問題,并在Windows Server 2003的活動目錄中重新采用了類似于Windows NT4.0的安全架構。下面我們就來研究一下這個安全問題,然后我會提供幾個小技巧,幫助你更好的確保AD環境的安全。
物理安全是首位
當我們試圖保證AD環境的安全時,首先要考慮的就是它的物理環境是否安全。如果任何你不信任的人可以隨意接觸到你的域控制器或DNS服務器,那么你的AD環境肯定不會安全。很多管理工具以及災難恢復工具的存在也可以為黑客提供相當大的便利。
假如可以從物理上接觸到服務器,那么就算是電腦水平一般的人也可以在較短時間內進入你的系統。因此,在你沒有確保服務器位于一個安全環境時,也不用考慮如何加強AD的安全性了。
Windows NT 對陣 Windows 2000 不要誤解我在文章開始時所說的話。在很多情況下,Windows 2000所提供的安全性確實要強于Windows NT。但是不能忘記計算機領域的一個基本規則:越是復雜的程序越容易出現可被利用的安全漏洞。毫無疑問,Windows 2000要比Windows NT復雜的多。
這方面最好的例子就是在不同操作系統中,域模式的實現方式不同。在Windows NT中,域是唯一的組織結構。一個域可以包含整個公司內的全部用戶、組、以及計算機。如果這個公司非常大,那么可以設立多個域,并在域之間建立信任關系,但是每個域都是獨立的結構。
在開發Windows 2000時,微軟意識到Windows NT中的域模式并不能很好的用于更大型的企業,因此微軟在一個被稱為森林(forest)的結構上采用了活動目錄(AD)模式。在一個森林中,你可以創建多個不同的域,甚至可以使用父域以及子域等樹木結構。和在Windows NT環境中一樣,每一個域仍然有自己的管理員,不過相似性也就只有這些了。
在Windows 2000中,微軟認為應該讓域變得更加易于管理,因此它為域的管理創建了不同的等級。比如,一個Domain Admins組的成員可以管理當前域以及當前域的子域。而Enterprise Admins組的成員則可以管理整個森林中的任何一個域。由此也產生了一些問題。
在Windows 2000 的AD模式中,最大的問題是森林中所有的域都是相互信任的,這將引發一系列問題。首先,當安全規則沒有設立好時,域管理員可以通過把自己添加到 Enterprise Admins組的方式提高自己的管理權限,這樣他們就具有了管理整個森林中任何一個域的權限。如果該域具有一定的安全規則,那么惡意的管理員也可以通過篡改SID紀錄以及運行提升權限操作等對整個森林進行攻擊。通過操作SID紀錄,管理員可以賦予自己Enterprise Admin的權限。
另外,Windows 2000 的AD安全模式中還存在一些固有的薄弱環節。也許你知道,每一個域都至少需要一個域控制器,而每一個域控制器都包含了該域以及整個森林的信息。這些信息包括AD結構以及一些基本的配置。
現在設想一下,假如公司里的一個管理員一時疏忽,安裝了一個惡意程序,或者對AD做了一些不正確的配置。如果這個配置的改動是針對森林級的AD組件進行的,那么最終這個改變將傳遞到整個森林里的每個域控制器上,這將破壞每個域控制器上的AD配置副本并有可能造成整個公司的網絡癱瘓。
讓我們再來對比一下Windows NT中的情況。就算一個域信任另一個域,每個域中都會包含和各自域有關的安全帳戶管理副本。因此,懷有惡意的管理員無法通過修改本地域的SAM文件來間接破壞對方域的SAM文件。同樣,在Windows NT中沒有一個足夠大的管理員權限可以讓某個域的管理員將權限提升到可以控制公司網絡內其它域的地步。
另一個有關Windows NT的信任關系的優勢在于, 這種信任關系既可以是單向的,也可以是雙向的,并且這種信任關系本質上是不可以傳遞的。這種單向性意味著,假如你有兩個域,Users 域和Admin域, 你可以讓他們之間相互信任,也可以僅讓Users 域信任Admin域,而Admin域不信任Users 域。而信任關系的不可傳遞性意味著,假如域A信任域B,而域B又信任域C,那么域A 依然不會信任域C,除非管理員親自指定這種信任關系。
Windows Server 2003 的安全性
看到這里,你也許會很好奇,在Windows Server 2003中,這種域的安全性到底有什么特點呢?我之所以在一開始介紹了Windows NT 和Windows 2000的區別,就是為了讓大家更好的理解Windows Server 2003的特點。在Windows Server 2003種,微軟將Windows NT和Windows 2000的兩種模式融合在一起,因此,為了更好的保護你的Windows Server 2003網絡,你必須理解上兩個系統的安全模式中存在的優勢和不足。 Windows 2000中最大的 AD安全弱點就是一個森林中的所有域都是通過一個通用的管理架構相聯系的,這個通用的管理架構也就是森林本身。在Windows Server 2003中,森林架構依然被沿用下來,并且其作用也和Windows 2000中沒有什么區別。
而Windows Server 2003的森林結構與Windows 2000 Server中的森林結構最大的不同是,在Windows Server 2003中,可以方便的建立森林和森林間的信任關系。在Windows 2000中,信任關系只存在于森林內部的域之間,而在2003中,這種信任關系擴展到了森林之間。管理員可以讓一個森林中的用戶像訪問本地資源一樣訪問另一個森林中的內容。
單一森林與多個森林
單一的森林結構比較適用于小型或中型的企業,因為這種結構更易于管理。但是對大型企業來說,每個部門或者辦公區域都需要有完整的管理用戶和計算機的能力。在這種環境下,各個部門之間更多的是一種不信任的關系。因此一個企業內設立多個森林是比較理想的解決方案,它使得每個部門都能有完全的自主權。
同時,雖然在多個森林的環境中,管理負擔被分散了,但是實際上,管理多個森林環境要比管理單一森林的負擔重很多,這使得公司的管理成本也相應提升。我個人的觀點是,設計Windows Server 2003的AD環境,成本和安全性如何相互權衡是一個問題。
森林間的信任關系
下面我們看看多森林機制下,如何確保公司AD的安全性。首先,每個森林都有自己的AD;各個森林之間沒有一個公共的連接關系。因此,我們可以讓每個森林都使用同一個通用的DNS服務器。假設這個通用的DNS服務器以及備份DNS服務器受到可靠的管理,那么將它們合并成一個DNS服務器可以部分降低資源成本和管理負擔。不過這種方法也有不足的地方,當這個公用的DNS服務器崩潰時,由于網絡內沒有備用DNS服務器,那么網絡可能會無法正常運轉。
在Windows Server 2003中設置森林間的信任關系,首先要滿足一些前提條件。其中最難滿足的條件是令所有參與信任關系設置的森林都以“功能級”模式運行。我們都知道,Windows 2000的AD可以按照混合模式或本機模式運行,而Windows Server 2003的“功能級”模式與此類似。將一個森林設置為Windows Server 2003的“功能級”模式需要森林內的所有域控制器均采用Windows Server 2003操作系統。
要創建森林內部的信任關系,作為管理員,你必須是Enterprise Admins組的成員。同時,你還必須對DNS服務器進行配置,以便它可以解析森林內部所有確立了信任關系的域和服務器。
最后,讓我們回想一下Windows 2000中的AD結構,每個森林都有一個根域,并且其它所有的域都依存在這個根域之下。在Windows Server 2003中,只可以自根域創建內部信任關系,因為森林內部的信任關系在域一級上是可以傳遞的。這意味著假如你在森林A和森林B之間確立的信任關系,那么森林A中的所有域都會信任森林B中的所有域,反之亦然。不過在森林級別上,信任關系是不能傳遞的。
比如,如果森林A信任森林B,森林B又信任森林C,那么森林A 并不會信任森林C,除非是管理員手動確立這種信任關系。因此,森林內部的信任關系的傳遞,是一個具有很強能力的特性。如果你的森林包含了多個域,你肯定不希望一個低等級的管理員在未經過你同意的前提下隨便建立森林內部的信任關系,因為這會導致很大的安全問題。這就是為什么你只可以在森林根域一級建立信任關系的原因。
使用Windows Server 2003 創建信任關系的一個有趣現象是,你不必創建一個完整的森林內部的信任關系。假設你的業務部門需要與廠商建立一個信任關系,只需要與廠商的一個域建立信任關系即可,而不用一一和廠商的各個部門的域建立這種關系。這種情況下,你所建立的信任關系就被稱為一個外部信任。
外部信任是域和域之間的信任關系,它和Windows NT中的信任關系類似。一個外部信任可以令你的森林中的一個域信任另一個森林中的一個域。除了對任何等級的域建立外部信任關系外,外部信任和森林內部信任關系還有一個重要的區別。
這個區別就是,與森林內部信任關系不同,外部信任關系是完全不可以傳遞的,也就是說信任關系只對管理員手動確立信任關系所涉及的域有效。而這兩個森林中的其它域,都不會受到這種信任關系的影響。
不論是森林內部的信任關系還是外部信任關系,都具有雙向性,你可以實現雙向的信任關系,也可以只設定單向的信任關系。雙向的信任關系意味著兩個域之間的信任是相互的,而單向的信任關系對于某個域來說,則分為信任對方以及被對方信任。在被對方信任的關系中,你的本地域可以訪問對方域或對方森林中的內容,但對方不能訪問你的資源;而在信任對方的關系中,你的本地域或森林則可。
關鍵字:Server、活動目錄、DNS、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解