一些機構想隱藏DNS名,不讓外界知道。許多專家認為隱藏DNS名沒有什麼價值,但是,如果站點或企業的政策強制要求隱藏域名,它也不失為一種已知可行的辦法。你可能必須隱藏域名的另一條理由是你的內部網路上是否有非標準的定址方案。不要自欺欺人的認為,如果隱藏了你的DNS名,在攻擊者打入你的防火牆時,會給攻擊者增加困難。有關你的網路的資訊可以很容易地從網路層獲得。假如你有興趣證實這點的話,不妨在LAN上“ping”一下子網廣播地址,然後再執行“arp -a”。還需要說明的是,隱藏DNS中的域名不能解決從郵件頭、新聞文章等中“洩露”主機名的問題。
這種方法是許多方法中的一個,它對於希望向Internet隱瞞自己的主機名的機構很有用。這種辦法的成功取決於這樣一個事實:即一臺機器上的DNS客戶機不必與在同一臺機器上的DNS伺服器對話。換句話說,正是由於在一臺機器上有一個DNS伺服器,因此,將這部機器的DNS客戶機活動重定向到另一臺機器上的DNS伺服器沒有任何不妥(並且經常有好處)。
首先,你在可以與外部世界通訊的橋頭堡主機上建立DNS伺服器。你建立這臺伺服器使它宣佈對你的域名具有訪問的權力。事實上,這臺伺服器所瞭解的就是你想讓外部世界所瞭解的:你閘道器的名稱和地址、你的萬用字元MX記錄等等。這臺伺服器就是“公共”伺服器。
然後,在內部機器上建立一臺DNS伺服器。這臺伺服器也宣佈對你的域名具有權力;與公共伺服器不同,這臺伺服器“講的是真話”。它是你的“正常”的命名伺服器,你可以在這臺伺服器中放入你所有的“正常”DNS名。你再設定這臺伺服器,使它可以將它不能解決的查詢轉發到公共伺服器(例如,使用Unix機上的/etc/ named.boot中的“轉發器”行――forwarder line)。
最後,設定你所有的 DNS客戶機(例如,Unix機上的/etc/resolv.conf檔案)使用內部伺服器,這些DNS客戶機包括公共伺服器所在機器上的DNS客戶機。這是關鍵。(www.3lian.com)
詢問有關一臺內部主機資訊的內部客戶機向內部伺服器提出問題,並得到回答;詢問有關一部外部主機資訊的內部客戶機向內部伺服器查詢,內部客戶機再向公共伺服器進行查詢,公共伺服器再向Internet查詢,然後將得到的答案再一步一步傳回來。公共伺服器上的客戶機也以相同的方式工作。但是,一臺詢問關於一臺內部主機資訊的外部客戶機,只能從公共伺服器上得到“限制性”的答案。
這種方式假定在這兩臺伺服器之間有一個包過濾防火牆,這個防火牆允許伺服器相互傳遞DNS,但除此之外,限制其它主機之間的DNS.
這種方式中的另一項有用的技巧是利用你的IN-ADDR.AROA域名中萬用字元PTR記錄。這將引起對任何非公共主機的“地址到名稱”(address-to-name)的查詢返回像 “unknown.YOUR.DOMAIN”這樣的資訊,而非返回一個錯誤。這就滿足了像匿名FTP站點的要求。這類站點要求得到與它們通訊的計算機的名字。當與進行DNS交叉檢查的站點通訊時,這種方法就不靈了。在交叉檢查中,主機名要與它的地址匹配,地址也要與主機名匹配。