我很好奇。 我一直在阅读我们的互联网服务提供商和互联网中间人如何logging和跟踪所有的DNS请求,基本上在许多日志中留下痕迹痕迹,还允许DNS劫持出于广告目的(我在看你Cox通信!
无论其他隐私/安全方法如何,我都想知道是否可以在自己的本地networking上运行DNS服务器,实际上它具有根DNS服务器的区域信息(对于.com,.net ,. org)域。
我知道你可以设置DNS,基本上只是映射你的域的机器,但基本上可以请求复制/传输根DNS信息存储在你自己的DNS服务器,所以你可以绕过去互联网的DNS信息在所有的网页浏览?
我希望我清楚。 我不希望我的DNS服务器只有我的内部networking的信息 – 我希望它有大型互联网DNS服务器有重复的信息,但我想在我的DNS服务器上的本地信息。
有没有像BGP区域传输,但DNS?
更新:是否有任何产品/ OSS软件可以基本上从外部DNS链中大量“抓取”这些信息到本地caching中,以便在需要时准备好,而不是在您明确请求域logging时caching它们?
DNSdevise不能使所有区域具有权威性的副本,因为它使用分层命名系统。
根服务器对于识别负责顶级域名 (TLD)的服务器具有权威性。 例如,parsingwww.example.net
将首先查询根服务器以标识.net
的权威名称服务器。 .net
名称服务器将标识example.net
的权威名称服务器,然后它将返回www.example.net
的logging。
您无法下载所有区域的副本。 但是,您可以运行本地caching域名服务器。 caching域名服务器将提供已parsing的所有logging的本地副本,该logging将使用为logging指定的生存时间(TTL)过期。 请记住,我的解释是对DNS协议的简单描述,可以通过阅读Request For Comments中的定义来详细探讨。
虽然可以通过运行本地caching来避免NXDOMAIN劫持 ,但请记住,所有DNSparsingstream量仍将通过未encryption的Internet连接传输。 您的ISP可能会监视该stream量,并仍然可以看到通信。 您与ISP的合同以及您当地的法律将成为您确定沟通方式的最佳方式。 您的ISP的合同将包括服务条款,隐私政策和您可能与您的ISP有任何其他合同。
使用encryption协议是确保数据在传输过程中不被窃听的最佳方法之一。 但是,即使这样也不能保证匿名。 还有其他的协议,比如Tor和Freenet ,它们试图向互联网引入匿名,因为它从来没有被devise成真正的匿名。
一些东西:
如果你configuration你的服务器使用根提示,而不是使用转发器,那么你不必担心MITM问题(至less从ISP和DNS劫持者)。 对于所有外部DNSparsing,您的服务器将查询根提示,这会提示您访问顶级域名(.com等)的通用顶级域名(gTLD)服务器,然后将您引用到相关域的NS服务器。
如果你真的想创build你自己的根服务器,你当然可以,但是我不明白这对你有什么好处。 以下是在Windows DNS服务器上的操作方法:
下载DNS根区域文件并将其作为root.dns保存在Windows DNS服务器上的%systemroot%\ system32 \ dns目录中,使用DNS区域创build向导创build名为“。”的新主要正向查找区域。 (不带引号),取消select创buildAD集成区域的选项,input“。”。 对于区域名称(不带引号),请select使用现有文件的选项,并且区域文件名称字段将自动填入名称root.dns(如果没有键入),请将该选项保留为允许dynamic更新,在完成向导的每个步骤后,单击完成button。 您现在有一台具有所有gTLD服务器区域和区域logging的根服务器。
请注意,这将禁用服务器上的转发和根提示选项(因为您的服务器现在是根服务器),同时请注意,如果通用顶级域名(gTLD)信息发生更改,您的服务器无法获知有关更改的通知。
对于密切相关的服务器,有区域传输。 这些function很像BGP公告。 出于安全原因,这些服务器通常被阻塞。
如果你运行一个caching名字服务器,它将复制根服务器列表,并很快拥有.com,.net等的根。有一个很好的理由,即DNS是分布式的。 否则,每个人都将使用过时的数据。 数据库的大小会相当大,大部分数据对你来说都不感兴趣。
有一些选项可以降低DNS中毒的风险,好的软件可以解决这些问题。 有提供消毒数据的组织可以作为上游供应商使用。 这些会滤除一些中毒的企图。 看看使用OpenDNS或谷歌作为上游提供商。
根DNS区域现在已经签名,并且越来越多地看到我的邮件服务器报告DNS数据已被签名。 据报道,DNS的签署是对IPV6的一项要求。 签名的DNS使caching中毒非常困难,但增加了pipe理DNS的难度。
你当然可以build立你自己的服务器,并使其对根具有权威性,但我不知道你可以预先填充根服务器的区域文件。 你不能简单地请求一个zonetransfer,所以我想你必须通过保持caching来填充它。
修改其他名称服务器上的root.hints,将它们指向您的私有根服务器,然后开始testing。
但请记住,根服务器只知道哪些服务器是TLD的授权,没有别的。 你基本上需要重新创build整个服务器层次结构,这似乎是一个不可能完成的任务。
是的,DNS服务器的一个特点是频繁请求查询的本地caching,经常绕过指定的ttl。
你当然可以运行你自己的DNS,没问题。 但是根服务器和顶级域名服务器,你将不得不问叔叔。
logging所有的DNS请求是可能的,但会是疯了。
如果你喜欢,你可以运行你自己的根服务器,但它们并不是你所想的那样。 看看这个http://en.wikipedia.org/wiki/Alternative_DNS_root