Server 2008 R2保護DNS數(shù)據(jù)庫安全攻略
隨著即將到來的Ipv6混亂時代,通過DNS名稱訪問計算機將比以往任何時候都更加重要。在過去的Ipv4時代,大家都發(fā)現(xiàn)運用IP網(wǎng)號點分四組機制能夠很容易記住Ipv4地址。然而,Ipv6地址空間如此之大,十六進制格式如此之復(fù)雜,每個Ipv6地址都有128位,這是Ipv4地址長度的四倍,常人完全不可能記住這么長的IP地址。雖然更大的地址空間是為了滿足不斷增加的計算機的需求,但這也讓我們更難以記住地址。
問題:DNS數(shù)據(jù)庫的不安全性
這樣造成的結(jié)果肯定是我們將越來越依賴于DNS,因此我們需要找到一種方法來確保DNS數(shù)據(jù)庫內(nèi)的數(shù)據(jù)總是準(zhǔn)確而可靠,而其中最有效的途徑就是確保DNS數(shù)據(jù)庫的安全性。眾所周知,DNS一直屬于相對不安全的系統(tǒng)。
由于這種不安全本質(zhì),DNS很容易成為攻擊目標(biāo),DNS服務(wù)器曾遭遇過劫持攻擊(將DNS域名解析重定向至流氓DNS服務(wù)器)、DNS記錄欺騙以及DNS緩存中毒,讓用戶相信他們正在連接到合法網(wǎng)站,而實際上是連接到包含惡意內(nèi)容的網(wǎng)站或者網(wǎng)址嫁接(pharming)獲取用戶信息。網(wǎng)址嫁接與網(wǎng)絡(luò)釣魚攻擊類似,二者區(qū)別在于,網(wǎng)絡(luò)釣魚攻擊是通過誘使用戶點擊電子郵件中的鏈接來登錄到惡意網(wǎng)址,而網(wǎng)址嫁接則更加高明,用戶在瀏覽器輸入合法網(wǎng)站的正確網(wǎng)址,然而被更改的DNS記錄則會將合法網(wǎng)址重定向至假的網(wǎng)絡(luò)嫁接網(wǎng)址。
解決方案: Windows Server 2008 R2 DNSSEC
你可以在局域網(wǎng)使用Windows Server 2008 R2 DNSSEC來保護DNS環(huán)境,DNSSEC是能夠提高DNS協(xié)議安全性的擴展集,這些擴展向DNS添加初始權(quán)限、數(shù)據(jù)完整性和認(rèn)證否定存在,該解決方案還可以向DNS添加幾條新記錄,包括DNSKEY、RRSIGN、NSEC和 DS。
DNSSEC如何運作
DNSSEC的作用在于可以對DNS數(shù)據(jù)庫中的所有數(shù)據(jù)都做標(biāo)記,采用的方法與其他數(shù)據(jù)簽名電子通信類似,例如電子郵件。當(dāng)DNS客戶端向DNS服務(wù)器發(fā)出一個請求時,DNS服務(wù)器會返回請求數(shù)據(jù)的數(shù)字簽名,然后擁有DNS數(shù)據(jù)簽名CA的公鑰的客戶端就能夠解密哈希數(shù)值(簽名)然后驗證響應(yīng)。為了實現(xiàn)這個過程,DNS客戶端和服務(wù)器都要配置為使用相同的信任錨(trust anchor),信任錨是與特定DNS區(qū)域相關(guān)的預(yù)先設(shè)定的公鑰。
DNS數(shù)據(jù)庫簽名適用于基于文件(非Active Directory集成)和Active Directory集成區(qū)域,簽名復(fù)制則可以用于這些區(qū)域授權(quán)的其他DNS服務(wù)器。
Windows 2008 R2 和Windows 7 DNS客戶端都默認(rèn)配置為存根解析器。這種情況下,DNS客戶端將允許DNS服務(wù)器代表客戶端執(zhí)行驗證,但是DNS客戶端能夠接收從DNSSEC啟用的DNS服務(wù)器返回的DNSSEC響應(yīng)。DNS客戶端本身被配置為使用名稱解析策略表(NRPT)來確定應(yīng)該如何與DNS聯(lián)系。例如,如果NRPT指明DNS客戶端需要確保DNS客戶端與服務(wù)器間連接的安全,那么就可以對請求執(zhí)行證書驗證。如果安全驗證失敗,就說明域名解析過程中存在信任問題,并且域名查詢請求也將失敗。在默認(rèn)情況下,當(dāng)客戶端向發(fā)出請求的程序返回DNS查詢響應(yīng)時,只有當(dāng)DNS服務(wù)器驗證信息后才會返回該信息。
確保結(jié)果的有效性
主要有兩種方法來確保DNS請求結(jié)果的有效性。首先,你需要確保DNS客戶端連接的DNS服務(wù)器確實是DNS客戶端應(yīng)當(dāng)連接的DNS服務(wù)器,而不是攻擊者部署的DNS服務(wù)器。Ipsec是用于驗證DNS服務(wù)器的有效方式。DNSSEC使用SSL來確保連接的安全性。DNS服務(wù)器通過可信任方(例如私人PKI)簽名的證書來驗證其本身。
請記住,如果你部署了執(zhí)行Ipsec的服務(wù)器和域隔離,那么你必須將TCP和UDP端口53從政策中分離。否則,Ipsec政策將不會被用于基于證書的驗證,這會導(dǎo)致客戶端無法通過DNS服務(wù)器的證書驗證,安全連接也無法建立。
簽名區(qū)域
DNSSEC同樣對區(qū)域簽名,使用的是dnscmd.exe工具離線簽名,結(jié)果會生成簽名區(qū)域文件,該簽名區(qū)域文件包含RRSIG、DNSKEY、DNS和NSEC資源數(shù)據(jù)記錄。如果區(qū)域被簽名,該區(qū)域還必須使用dnscmd.exe工具或者DNS管理器控制臺進行重新加載。
對區(qū)域簽名的一個限制是動態(tài)更新將被禁用。Windows Server 2008 R2僅限D(zhuǎn)NSSEC用于靜態(tài)區(qū)域,只要區(qū)域發(fā)生任何變化,每次都必須重新簽名,這可能會嚴(yán)重影響DNSSEC在很多環(huán)境的應(yīng)用。
信任錨的作用
DNSKEY資源記錄用于支持信任錨,驗證DNS服務(wù)器必須包括至少一個信任錨。信任錨同樣適用于簽名區(qū)域,如果DNS服務(wù)器承載幾個區(qū)域,那么必須使用多個信任錨。
只要區(qū)域中部署了信任錨,DNSSEC就能使DNS服務(wù)器為客戶端請求中的名稱執(zhí)行驗證??蛻舳瞬恍枰肋@種DNSSEC驗證,所以不清楚DNSSEC驗證的客戶端能夠繼續(xù)使用這個DNS服務(wù)器來解析局域網(wǎng)中的名稱。
NSEC和NSEC3
NSEC和NSEC3是可以用于為DNS記錄提供認(rèn)證否定存在的有效方法,NSEC3是原來NSEC的升級版,允許我們防止“區(qū)域走動”,即防止攻擊者重新獲取DNS區(qū)域的所有名稱。這是攻擊者用于偵察網(wǎng)絡(luò)的有力工具,這種功能在Windows Server 2008 R2中不支持,僅支持NSEC。
以下是對NSEC3的有限支持:
Windows Server 2008 R2可以承載有NSEC3代表的NSEC區(qū)域,但NSEC3子區(qū)域并不在windows DNS服務(wù)器上。
Windows Server 2008 R2可以作為非授權(quán)DNS服務(wù)器,為NSEC簽名并有NSEC3子區(qū)的區(qū)域配置了信任錨。
Windows 7可以用于非微軟DNS服務(wù)器(支持NSEC3)來進行域名解析
當(dāng)某區(qū)域被NSEC簽名時,你可以配置NRPT不對該區(qū)進行驗證。這樣做的話,DNS服務(wù)器將不會執(zhí)行驗證,并會直接返回數(shù)據(jù)。
部署 DNSSEC
要部署DNSSEC的,需要按照以下步驟進行:
了解DNSSEC的重要概念
將DNS服務(wù)器升級到Windows Server 2008 R2
審查區(qū)域簽名要求,選擇密鑰滾動機制,并確定計算機和DNSSEC保護區(qū)域的安全性
生成和備份為區(qū)域簽名的密鑰,確保DNS仍在運行,并在簽名區(qū)域后回答查詢請求
將信任錨分發(fā)到使用DNSSEC執(zhí)行DNS驗證的非授權(quán)服務(wù)器
為DNS服務(wù)器部署證書和Ipsec政策
配置NRPT設(shè)置,并向客戶端計算機部署Ipsec政策
總結(jié)
在本文中,我們探討了DNSSEC和保護DNS基礎(chǔ)設(shè)施對企業(yè)的重要性。Windows Server 2008 R2中存在的很多新功能可以幫助企業(yè)保護DNS基礎(chǔ)設(shè)施的安全,這主要通過使用簽名DNS區(qū)域、SSL安全連接到可信DNS服務(wù)器以及Ipsec驗證和加密來實現(xiàn)。
【編輯推薦】