2008-11-20 78 views
19

这个问题的存在是因为它具有 历史意义,但它不是 考虑好,切合主题的问题 这个网站,所以请不要使用它 作为证据,你可以在这里问类似 问题。是否有可能找到给定域名的所有DNS子域名?

更多信息:https://stackoverflow.com/faq

任何人都知道,如果它有可能找到所有A记录,CNAME或配置一个域名分区记录?

例如,domain.com:

www IN CNAME domain.com. 
subdomain1 IN CNAME domain.com. 
subdomain2 IN CNAME domain.com. 

subdomain1 IN A 123.4.56.78. 
subdomain2 IN A 123.4.56.79. 

我想保持一个子域的私人那里我会运行一个管理应用程序(它将被密码保护和特殊的端口上,但我会宁愿尽可能保密)。

回答

4

像其他人一样,你想要的是所谓的区域转移。如果它是你自己的域名,你可以配置DNS服务器给你。如果是针对某个其他域,您可能不会得到它,因为大多数DNS管理员认为它是安全威胁。

即使单个记录不是问题(因此它是什么DNS),如果一个邪恶的人获得所有记录的列表,它可能是一个问题:它可以简化攻击。

1

它曾经是可能的:

host -a -l domain.com 
+8

不,它是'主机-a -l domain.com' – Alnitak 2008-11-26 15:46:15

+0

@Alnitak:谢谢,我已更新答案。 – csl 2013-12-11 09:56:51

4

使用区域传输,即: (在NSLOOKUP)

LS -d google.com

如果你有自己的DNS服务器,会有区域转移安全设置(通常通过IP)。否则,只需尝试一下,看看它是否有效。

+0

我试图用nslookup来获取记录,但似乎我的DNS服务器正在做它的工作正确: ***无法列出域domain.com:查询被拒绝 DNS服务器拒绝传输区域domain.com到你的电脑。 .... – smartins 2008-11-20 15:33:16

1

防止区域传输是服务器管理的一个功能,而且正如其他人所说的那样,出于安全原因,这些日子通常被禁用。

当需要添加DNSSEC时,请确保使用新的NSEC3格式记录(来自RFC 5155),而不是原始的NSEC格式,因为后者允许区域枚举。

请注意,防止区域枚举确实只是安全通过隐藏。如果有人发现你的子域,你仍然需要在应用层增加安全性。

至于你的例子记录:

www IN CNAME domain.com. 
subdomain1 IN CNAME domain.com. 
subdomain2 IN CNAME domain.com. 
subdomain1 IN A 123.4.56.78. 
subdomain2 IN A 123.4.56.79. 
  1. 不能混合CNAME记录等RRtypes在同一实体
  2. 在A记录的小圆点是无效
  3. 这是最好的不要使用CNAME回到域的WWW记录

您需要:

$ORIGIN domain.com 
@  IN SOA ... 
     IN A 123.4.56.78 
www IN A 123.4.56.78 
sub1 IN A 123.4.56.79 

(其中sub1.domain.com是隐藏的网站)

+0

我指出的例子是从一篇文章中提取的,目的只是为了说明我想问什么。我实际上从Windows 2003 Server使用DNS服务器。另外,感谢DNSSEC上的指针。 – smartins 2008-11-27 15:36:28