如何防止在同一DNS服务器上的子域“劫持”?

我试图了解DNS服务器如何(或者如果)区分作为区域的子域设置和作为同一服务器上的域区域中的logging的一个设置。

假设我要在域名(例如example.com)的DNS服务器上创build一个DNS区域。

什么是阻止某人在同一台服务器上创build另一个区域test.example.com,并“劫持”该域的子域?

当向test.example.com的名称服务器发出DNS请求时,DNS服务器将返回:

  • test.example.com区域的主要logging
  • test.example.com example.com区域中的logging

(如果test.example.com的Alogging在example.com中不存在,它将不会返回这样的logging或继续到test.example.com的区域)

有没有办法阻止子域的响应,而不移动域名到他们自己的唯一名称服务器? ZoneEdit和Amazon的Route53如何处理这个问题?

(如果一个子域是在一个单独的服务器上托pipe的,那么example.com的主域将不得不将该子域委托给该单独的服务器,那么正确吗?(按照本Technet文章 )。

不知道有关绑定,但Windows DNSboost(首先评估example.com),因为该区域不重新传递test.example.com – 这是结束(即test.example.com永远不会被问到)。

“什么是阻止某人在同一台服务器上创build另一个区域test.example.com,然后”劫持“该域的子域?

那么,如果他们能这样做,他们也可以改变原来的区域文件; 一般来说,如果有人访问您的DNS服务器,他们可以将DNS更改为任何他们想要的。

“当向test.example.com的名称服务器发出DNS请求时,DNS服务器将返回:

The main A record of the test.example.com zone or The test.example.com A record in the example.com zone" 

与往常一样,答案是“这取决于你如何设置”。 如果服务器对于example.com是权威的,并且没有委托test.example.com,它将响应,但是它被configuration为响应; 从协议的angular度来看,zone.test.example.com有一个@logging和Zone.com有一个test Alogging没有区别。 如果你问如果发生冲突会发生什么情况(例如,你已经在example.com区域文件中定义了test.example.com,而你的恶意闯入者已经定义了一个test.example.com区域文件,那么他必须能够编写named.conf来让BIND读取它,然后在这一点上,他可以做任何他想做的事情)。 IIRC Windows DNS会拒绝加载冲突,而BIND将会以最后加载的方式运行(不过我可能会倒过来)。 但是在任何情况下,为了让他的区域定义成为一个正在运行的域名服务器,他必须有足够的访问权限,以便他可以对DNS执行任何他想做的事情。

这样的控制需要在BIND外部,因为BIND本身没有这样的访问控制。

我正在寻找官方文档,但我相信绑定匹配named.conf中定义的最具体的区域。

所以区域将以最小到特定的顺序进行处理。 如果你有以下每个独特的区域:

 host.sub.domain.com sub.domain.com domain.com 

然后,对a.host.sub.domain.com的查询将优先于其他区域使用。

因此,要回答您的问题,您需要将此类安全性构build到区域编辑器中或限制访问权限,以便用户只能编辑自己的区域文件。

我在cPanel / WHM系统上工作,他们使用每个子域的区域文件。 WHM面板强制执行所需的安全措施,以防止用户对另一个用户区进行高枕无忧。