Linux應用環境下九大DNS安全保障技巧 (1) |
發布時間: 2012/8/19 16:22:49 |
(1)限制名字服務器遞歸查詢功能 關閉遞歸查詢可以使名字服務器進入被動模式,它再向外部的DNS發送查詢請求時,只會回答自己授權域的查詢請求,而不會緩存任何外部的數據,所以不可能遭受緩存中毒攻擊,但是這樣做也有負面的效果,降低了DNS的域名解析速度和效率。 以下語句僅允許172.168.10網段的主機進行遞歸查詢: allow-recusion {172.168.10.3/24; } (2)限制區傳送(zone transfer) 如果沒有限制區傳送,那么DNS服務器允許對任何人都進行區域傳輸,因此網絡架構中的主機名、主機IP列表、路由器名和路由IP列表,甚至包括各主機所在的位置和硬件配置等情況都很容易被入侵者得到在DNS配置文件中通過設置來限制允許區傳送的主機,從一定程度上能減輕信息泄漏。但是,需要提醒用戶注意的是:即使封鎖整個區傳送也不能從根本上解決問題,因為攻擊者可以利用DNS工具自動查詢域名空間中的每一個IP地址,從而得知哪些IP地址還沒有分配出去,利用這些閑置的IP地址,攻擊者可以通過IP欺騙偽裝成系統信任網絡中的一臺主機來請求區傳送。 以下語句僅允許IP地址為172.168.10.1和172.168.10.2的主機能夠同DNS服務器進行區域傳輸: acl list { 221.3.131.5; 221.3.131.6; zone "test.com" { type master; file "test.com "; allow-transfer { list; }; }; }; (3)限制查詢(query) 如果任何人都可以對DNS服務器發出請求,那么這是不能接受的。限制DNS服務器的服務范圍很重要,可以把許多入侵者據之門外。修改BIND的配置文件:/etc/named.conf加入以下內容即可限制只有210.10.0.0/8和211.10.0.0/8網段的查詢本地服務器的所有區信息,可以在options語句里使用如下的allow-query子句: options { allow-query { 210.10.0.0/8; 211.10.0.0/8;}; }; (4)分離DNS(split DNS) 采用split DNS(分離DNS)技術把DNS系統劃分為內部和外部兩部分,外部DNS系統位于公共服務區,負責正常對外解析工作;內部DNS系統則專門負責解析內部網絡的主機,當內部要查詢Internet上的域名時,就把查詢任務轉發到外部DNS服務器上,然后由外部DNS服務器完成查詢任務。把DNS系統分成內外兩個部分的好處在于Internet上其它用戶只能看到外部DNS系統中的服務器,而看不見內部的服務器,而且只有內外DNS服務器之間才交換DNS查詢信息,從而保證了系統的安全性。并且,采用這種技術可以有效地防止信息泄漏。 在BIND 9中可以使用view語句進行配置分離DNS。view語句的語法為: view view_name { match-clients { address_match_list }; [ view_option; ...] zone_statement; ... }; 其中: match-clients:該子句非常重要,它用于指定誰能看到本view。可以在view語句中使用一些選項; zone_statement:該子句指定在當前view中可見的區聲明。如果在配置文件中使用了view語句,則所有的zone語句都必須在view中出現。對同一個zone而言,配置內網的view應該置于外網的view之前。 下面是一個使用view語句的例子,它來自于BIND9的標準說明文檔: view "internal" { match-clients { our-nets; }; // 匹配內網客戶的訪問 recursion yes; // 對內網客戶允許執行遞歸查詢 zone "example.com" { // 定義內網客戶可見的區聲明 type master; file "example.com.hosts.internal"; }; }; view "external" { match-clients { any; }; // 匹配 Internet 客戶的訪問 recursion no; // 對 Internet 客戶不允許執行遞歸查詢 zone "example.com" { // 定義 Internet 客戶可見的區聲明 type master; file "exa
本文出自:億恩科技【www.laynepeng.cn】 |