使用私有 DNS 与公共 DNS 的优缺点

信息安全 网络 dns
2021-08-28 16:55:54

我想知道为什么公司应该使用私有 DNS。

与公共 DNS 相比,私有 DNS 有哪些优势,公共 DNS 可以为公司带来哪些问题?

我对这些网络安全概念不熟悉,所以也许这是一个非常基本的问题。

4个回答

DNS 是一个非常广泛的主题,即使您将其缩小以关注安全性,但我将尝试以对您最有意义的方式解决这个问题。如果您正在寻找对 DNS 的高级介绍,我建议您阅读. 有关更多详细信息,请查看此内容。

首先,您可能想知道,私有 DNS 与公共 DNS 可以解释为多方面的含义。我首先想到的是水平分割 DNS,您在内部和外部使用相同的 DNS 名称,但根据 DNS 请求的来源提供不同的信息。但是,还有其他选项,例如选择在内部和外部使用完全不同的名称(例如 example.com public 和 example.local 私有)。我已经看到这两种方法都在公司中实现,但是从安全的角度来看,最好使用完全独立的内部和外部 DNS 服务器和命名空间。

您通常希望仅将您的RFC1918 地址保留在您的私有 DNS 中,以及可通过 Internet 访问的私有地址。这对于 IPv4 不太重要,但对于 IPv6,拥有可访问 Internet 的 IP 地址更为普遍(尽管不是必需的)。

从本质上讲,它归结为这样一个事实,即您需要一个私有 DNS 基础设施来为员工提供服务,这样他们就不需要记住每项服务的 IP(或VIP)。您不希望这些 DNS 条目可用于 Internet,因为它可以用于枚举或发现(请参阅第 2.6 节)以及许多其他原因。据说系统的安全性归结为一些基本概念,您必须记住,如果您发布某些信息,它是否允许任何人破坏 CIA 三合会。

还可以选择外网DNS 基础设施,供合作伙伴公司或您定期与之开展业务的公司使用。

最后,公共 DNS 再次作为服务提供给您的客户,以便他们能够联系到您提供的任何内容。使用 DNS 时要牢记的几个安全概念包括:

在讨论 DNS 时,还有很多很多类型的攻击,但我觉得前面的几个是一个很好的起点。如果您对 DNS 安全性感兴趣,我也会向您推荐这篇文章,以及DNSSEC

请注意,拥有公共 DNS 服务器并不意味着它知道网络中的所有域名。DNS 的设计并不意味着您拥有所有区域的权威副本,而是使用分层命名系统。

出于安全和隐私原因,公共和私有 DNS 服务器被分开。如果您宣传所有内部域名(例如,由您的活动目录域使用),您可能会无意中宣传这些机器的本地 IP。虽然这并不意味着外部主机可以访问这些机器,但它会为攻击者泄露有价值的信息。

因此,您可以选择为您的公共域设置一个单独的 DNS 服务器,该 DNS 服务器对内部域一无所知,因此无法宣传内部使用的域名。每个人都可以查询您的公共 DNS 服务器。确保:

  • 在您的公共 DNS 上禁用递归,以便它仅响应其权威域的 DNS 请求。(如果您将防火墙配置为不允许来自 Internet 的外部 IP 进入您的内部网络,则可以防止 DNS 缓存中毒,这在欺骗时使用)

然后,您还运行一个私有 DNS 服务器(它应该只能从内部 IP 访问,并且应该只响应内部 IP)。此 DNS 服务器包含有关您的内部域的信息。这个可以配置递归,以便它也能够解析它不具有权威性的域。确保:

  • 我不能强调它只回答内部域上的 IP 的重要性。这也将在很大程度上降低外部 DNS 成功的机会
  • 您还可以将此 DNS 服务器配置为仅使用根提示而不使用转发器(这可以在很大程度上减轻 MITM 攻击)。
  • 有一个本地缓存名称服务器(以防止 NXDOMAIN 劫持)
  • 只要您确保将第一点考虑在内,就允许在私有 DNS 服务器上进行递归。

还有水平分割DNS选项

在计算机网络中,水平分割 DNS、分割视图 DNS 或分割 DNS 是域名系统 (DNS) 实现的工具,用于提供不同的 DNS 信息集,通常由 DNS 请求的源地址选择。该工具可以通过逻辑或物理分离 DNS 信息来提供安全和隐私管理机制,用于网络内部访问(在管理域内,例如公司)和来自不安全的公共网络(例如 Internet)的访问。水平分割 DNS 的实现可以通过基于硬件的分离或软件解决方案来完成。基于硬件的实现运行不同的 DNS 服务器设备,以在所涉及的网络中实现所需的访问粒度。软件解决方案使用同一硬件上的多个 DNS 服务器进程或具有内置区分访问 DNS 区域记录的能力的特殊服务器软件。后者是 DNS 协议的许多服务器软件实现的共同特征(参见 DNS 服务器软件的比较),并且有时是术语水平分割 DNS 的隐含含义,因为所有其他形式的实现都可以通过任何 DNS 实现服务器软件。

您还应该看看DNSSEC

域名系统安全扩展 (DNSSEC) 是一套互联网工程任务组 (IETF) 规范,用于保护互联网协议 (IP) 网络上使用的域名系统 (DNS) 提供的某些类型的信息。它是 DNS 的一组扩展,向 DNS 客户端(解析器)提供 DNS 数据的原始身份验证、经过身份验证的拒绝存在和数据完整性,但不提供可用性或机密性。

我建议您花时间熟悉所有这些协议。

好吧,如果您正在使用 DNS 服务器注册您的计算机,您可能不希望互联网上的任何人都能够查询您 CEO 的笔记本电脑的地址。同样,您不希望公开开发服务器、未宣布服务的服务器等。

至于向 DNS 服务器查询其他站点的公共地址,您可能希望通过代理重定向其中一些站点请求,或者您可能希望将您的用户重定向到远离恶意站点的位置。也许您只是想减少您的网络和 Internet 之间的 DNS 流量,或者确保您的所有用户都使用已知的良好 DNS 服务器。除了从指定的 DNS 服务器之外,不让 DNS 进入 Internet 意味着您的用户的计算机不会在每次查找时查询未知且可能被劫持的 DNS 服务器。

对于系统管理员来说,私有 DNS 服务器有几个优点:

  • 由于专用 DNS 仅在专用网络中可用,因此该 DNS 服务器可以解析仅在网络中有效的域。例如,您可以将“greatplains.accounting.int”解析为公司的主 ERP 服务器。同样,你可以给每个人的机器一个域名,比如brandon.smith.laptop,并让DNS服务器与DHCP同步以保持IP地址是最新的(如果IP地址经常变化不是一个好主意,因为本地机器会缓存DNS不再有效的请求和响应)
  • 同样,DNS 也可以用作穷人的黑名单。您不希望网络中的人浏览的任何域(色情网站、已知的恶意软件网站、其他非工作网站)都可以在您的私有 DNS 中列出,路由到一个内部页面,告诉他们“停止胡闹,重新开始工作”。有更好的工具,例如流量分析器,并且总是有解决方法,但它确实有效。
  • 粗略的负载平衡也可以通过将不同的客户端指向不同的内部 DNS 服务器来完成,这些服务器会将它们路由到不同的服务端点 IP。同样,可以使用更好的工具,但这很有效。
  • 私有 DNS 服务器允许您实时控制网络的权威父 DNS 服务器(知道如何解析您自己的服务器无法解析的任何地址的服务器)。如果您的 ISP 打电话说“我们的 DNS 被黑了,请改用这个备用 DNS,直到另行通知”,您所要做的就是更新您的私有 DNS 以将新的 DNS 引用为您的权威父级,然后指示您的用户打开一个命令提示符和类型ipconfig /flushdns,而不是更改网络域控制器中的 DNS 设置(DHCP、组策略),并要求每个人重新启动计算机或以其他方式重新获取其网络地址信息。