查看單個文章
舊 2004-07-30, 03:58 PM   #4 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

在Windows2000環境下實現動態DNS的安全考慮

Windows2000 域名解析是關於動態DNS(Dynamic DNS)的。微軟是關於RFC 2136實現動態DNS的。這關係到 BIND v8 和 v9。BIND v9 在由O』Reilly出版的Paul Albitz 和 Cricket Liu 撰寫的第四版《DNS and BIND》裡面有所闡述。

在 Windows 2000 裡,動態 DNS 是與 DHCP, WINS 和動態目錄(Active Directory) 整合並且相關的。在 Windows 2000的域中有三種方法實現 DNS:動態目錄整合、動態目錄的主要DNS和非動態目錄的輔助DNS、非動態目錄的主DNS和非動態目錄的輔助DNS。


當 DNS 完全整合到動態目錄中時,我們可以在一個 Windows 2000 網路中利用三種安全特性:安全動態更新、安全區域傳輸和對區域與資源記錄的訪問控制列表。

1.0 安全動態更新

在動態DNS(DDNS)中最重要的安全特性之一就是安全更新特性。在實現安全更新特性中需主要考慮的,是由DNS 列項組成記錄的所有權。DHCP是如何配置的和支持哪個客戶端決定了所有權。

兩種DNS資源記錄關係到每一個客戶端:A記錄和PTR記錄。A記錄負責從名字解析到位址,而PTR記錄解析位址到名字。

位址是指一個客戶端的IP位址。名字是指一個客戶端機完整的、有資格的域名。這應該是電腦名稱加上網路的域名。

在Windows 2000環境中,當客戶端通過DHCP請求一個IP時,客戶端DNS記錄就被註冊。


根據設定,客戶端、DHCP伺服器或者這兩者都可以更新A和PTR記錄來關聯到客戶端。這些記錄的所有權依據誰註冊了這個記錄。

這就是在Windows 2000網路中定義 A 和 PTR 記錄所有權的選項。

1.1 Windows 2000 本地機模式(Native Mode)

在Windows 2000環境下,DHCP 伺服器和 DHCP 客戶端都可以通過 DNS 註冊記錄。當網路單純由 Windows 2000 的伺服器和客戶端組成時,這種 Windows 2000 環境稱之為"本地機模式"(Native Mode)。

當客戶端是一個 Windows 2000 客戶端,這個客戶端的預設配置是在註冊到網路程序中動態更新它自己的 A 記錄。與此同時,DHCP 伺服器更新客戶端的 PTR 記錄。所以,A 記錄的所有權屬於這個客戶端,PTR 記錄的所有權屬於 DHCP 伺服器。

第二種可能的配置是 DHCP 伺服器總是更新正向和反向的搜尋。在這種情況下,DHCP 伺服器分別擁有A和PTR記錄。

第三種可能的配置是 DHCP 伺服器被配置為不能執行動態更新。在這種情況下,客戶端將會更新 A 記錄和 PTR 記錄,因此擁有這些記錄。

1.2 Windows 2000 混雜模式(Mixed Mode)

在混雜的環境下,DHCP 客戶端不能通過 DNS 註冊。當網路由 Windows 2000 伺服器、客戶端除了 Windows 2000 之外還由 Windows NT 4.0 或 Windows 98 組成時,這種混雜環境被稱為"混雜模式"。

以前的客戶端,像 Windows NT 4.0 和 Windows 9x,不能直接通過 DNS 註冊。


因為只有 DHCP 伺服器可以通過 DNS 註冊記錄,再混雜環境中唯一的選項是讓 DHCP 註冊 A 和 PTR 記錄。在這種情況下,這個伺服器擁有正向和反向搜尋的記錄。

1.3 安全動態更新

在 Windows 2000 網路中,安全動態更新是唯一可以用於與動態目錄整合的 DNS 區域。
所以安全動態更新意味著什麼?

在 Windows 2000 中,它意味著是用動態目錄 ACL 制定用戶和組的權限來修改 DNS 區域和/或它的資源記錄。除了使用 ACL 外,安全更新為了允許更新 DNS 區域和/或它的資源記錄,也使用安全通道和認證。

微軟 Windows 2000 支持使用在 IETF Internet-Draft "GSS Algorithm for TSIG (GSS-TSIG) 中定義的運算法則進行安全動態更新。這個算法使用 Kerberos v5 作為優先的認證傳輸協定。GSS-API 在 RFC 2078 中有定義。

2.0 區域

2.1 區域的類型

Windows 2000 可以配置 DNS 區域為主要區域、輔助區域或活動目錄整合。

主要和輔助區域像在 Unix 環境和 NT 4.0 環境一樣運作。


另外資料庫保持與其它資料庫象 WINS 和 DHCP 資料庫分開,並且複製也是分別從其它複製服務中設定。如果網路中任何伺服器執行著一個 BIND 版本低於 8.1.2,則必須使用主要/輔助區域,因為在早先的版本中不支持動態更新。

如果安裝了活動目錄,DNS 區域可以成為活動目錄整合區域。這意味著 DNS 區域資料庫成為活動目錄資料庫的一部分。每一個記錄成為活動目錄對象。每一個活動目錄對像擁有它自己的ACL(訪問控制列表)。

2.2 區域傳輸或複製的類型

Windows 2000 DNS 可以支持 AXFR 或 IXFR。AXFR,或者所有的區域傳輸,是複製整個區域資料庫文件。


IXFR,或者增量區域傳輸,僅僅複製區域資料庫的變化。如果區域類型設定成主要/輔助區域,那麼可以套用這些區域複製方法。在版本8.2.1以及以上的 BIND 中支持IXFR。

當 DNS 域活動目錄整合時,所有的區域和資源記錄將成為活動目錄資料庫中的對象。活動目錄的複製是關於多主模型(multi-master model)的。

多主模型的好處之一是沒有單點失敗的問題。這是可能的,因為包含 DNS 部分的活動目錄資料庫會被複製到所有域控制器上。因此 DNS 區域傳輸完全成為活動目錄複製的一部分。

2.3 區域傳輸的安全

如果 Windows 2000 網路執行著主要/輔助區域配置的 DNS,是不可以使用加密和壓縮的。為了相容 BIND,Windows 2000 支持 AXFR 每個消息傳送/接受一個或多個資源記錄。

BIND 在 4.9.4 以前的版本不支持每個消息傳送多條資源記錄。Windows 2000 支持 IXFR。相應的 BIND 版本是 8.2.1。Windows 2000 支持 DNS 通報(DNS Notify),相應的 BIND 版本是8.1.2。

當 Windows 2000 DNS 配置為活動目錄整合時,複製處理成為活動目錄複製的一部分,因此將會自動使用加密和壓縮。

加密使用的是微軟 Windows 2000 Kerberos v5。與控制器之間的通訊通道會自動加密。不需要管理配置。

當活動目錄更新在"橋頭堡"(Bridgehead)伺服器間傳輸時,會自動使用壓縮。橋頭堡伺服器是從區域網路其他伺服器中自動選項的伺服器。


當廣域網鏈路需要使用活動目錄更新時,每個區域網路的橋頭堡伺服器會與其它橋頭堡伺服器通訊。這會大量減少通過 WAN 鏈路德裡流量。在這種情況下,為了節約帶寬會自動使用壓縮。

3. 活動目錄整合DNS 區域

因為在 Windows 2000 活動目錄和 DDNS 整合,實現活動目錄的安全是實現 DDNS 的安全的第一步。

3.1 文件系統

使用NTFS。

Windows 2000 的版本是 NTFS v5。這個版本允許設定文件和資料夾的安全性、加密文件系統和稽核。NTFS v5 不相容從前的 NTFS。

在安裝了 Service Pack 4 或者更高版本的 NT 4.0上只能讀取NTFS v5。

NTFS 權限可以設定資料夾和文件級別來限制網路或者本機訪問文件。

NTFS 和 共享權限可以被用來非常精確的控制權限和繼承關係。

3.2 註冊表

使用註冊表編輯器編輯 DACL 關係到每一個註冊表Hive。細節可以參考 SANS 出版的 "Windows NT Security, Step-by-Step"。

3.3 Enterprise管理員和Schema管理員組

在 Windows 2000 網路建立之後,限制訪問這兩個管理員組。

這些組出現在域的根並且含有不受限制的管理能力。根據域的結構,管理可以被委派到下面的域結構,因此管理可以被限制到單個域。

3.4 加密文件系統

Windows 2000 NTFS 提供了使用加密文件系統的選項。EFS 使用關於公共密鑰(public key)的技術來進一步限制文件的未授權訪問。

3.5 活動目錄中的DNS

安裝DNS會擴展活動目錄Schema包含DNSUpdateProxy組。這是非常強大的組,允許新增對象,這是不安全的。當這種情況發生,任何認證的用戶可以用這種方式新增屬於自己的那些對象。

在 Windows 2000 DHCP 處理程序中,DNS 會像上面詳細描述的那樣更新客戶端記錄 A 和 PTR。當客戶端和伺服器都是 Windows 2000時,安全動態更新可以完全使用預設安裝。


當其他的客戶端需要支持,除非 DHCP 伺服器增加到 DNSUpdateProxy 組,否則不能使用安全動態更新。這就允許 DHCP 伺服器為早期的客戶端執行動態更新。

如果 DHCP 服務在一個域控制器(Domain Control)上執行的話必須特別考慮。在這種情況下,增加 DHCP 伺服器到 DNSUpdateProxy 組,那麼所有用戶或電腦都可以完全控制相應的域控制器的 DNS 記錄。

3.6 資源記錄的所有權

DHCP 伺服器不能在早期的客戶端上執行安全動態更新,這在 Windows 2000 網路中是很重要的。如果這種情況發生,會出現不能完全更新活動記錄的情況。

舉例而言,一個NT 4.0的客戶端通過 DHCP 伺服器在 DNS 中註冊了一個名字。這台機器昇級到 Windows 2000 客戶端。因為昇級是操作系統的昇級所以名字不變。從它最初註冊這個名字開始,DHCP 伺服器便擁有這個名字的資源記錄所有權。Windows 2000 客戶端不能更新它自己的名字。

3.7 WINS 搜尋

作為 Windows 2000 的最終的告誡,我將說明 WINS 將很有可能是所有 Windows 2000 網路中必須的部分。
為什麼呢?
NetBios 解析仍是所有非 Windows 2000 客戶端所必需的。同樣,所有需要NetBios的程序也需要 WINS 來做名字解析。

WINS 通過兩種專門的資源記錄直接整合到 DNS 中:WINS 和 WINS-R。這分別給 WINS 做正向和反向的記錄搜尋。

4.0 結論

總之,理解 Windows 2000 使用 DNS 的程序是非常重要的。這些考慮在這篇論文的1.0章 安全動態更新和2.0章 區域中有了一個簡述。理解一些 Windows 2000 的"gotcha's"和"caveats"也是非常重要的。

3.0章 活動目錄整合DNS 區域列舉了一些這樣的 列項。



PS:用DNS實現多台伺服器作負載均衡
原理:就是1個主機紀錄對應多個IP Address(不同的多台伺服器或多張網路卡),實現不同DNS客戶的均衡輪詢.

方法:


Windows NT 4.0 Servers
最初的 NT 4.0是不支持這個功能的,需要安裝ServicePack (ServicePack 4以上)來更新dns.exe
安裝好SP後,還要編輯註冊表(這是因為預設情況下這個功能是不能用的,需要先遮閉LocalNetPriority功能)
開啟註冊表的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS快取\Parameters

新增一個新的值:

類型 Name: LocalNetPriority Data Type : REG_DWORD Data : 0 ( 0 = disabled, 1 = enabled) 記住這裡填0 不是1
然後重新啟動DNS服務。。。。OK ^_^

Windows 2000 Servers
在win2k ser 的dns服務裡本身就具有這個功能,但是預設情況下也是被遮閉的
實現方法:開啟DNS管理器,右擊Your DNS ServerName,選項內容
---選項advanced欄---驗證Enable round robin前面打上勾,清除
Enable netmask ordering前面的勾.
重新起動DNS server......OK

實際操作疑問:
有的人問都做好了以上設定,為什麼還不能實現這個功能??!
這是因為你有可能用只用1台電腦來ping,返回的都是同一個IP
因為你ping了第一次後,你的電腦就會做一個dnscache,只要伺服器
端或你的電腦沒做過改變的話,你以後再ping 都是回返回同一個ip的。因此你可以試一下多台電腦來ping,看看返回的是不是不同的IP
,或者在一台電腦上ping 完第一次後,執行一下ipconfig/flushdns
這個指令,看看是不是有不同的結果...
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次