当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] DNS 最佳实践:权威指南

作者:精品下载站 日期:2024-12-14 17:37:28 浏览:13 分类:玩电脑

DNS 最佳实践:权威指南


这是全球最全面的 DNS 最佳实践和技巧列表。

在本指南中,我将分享我在 DNS 安全、设计、性能等方面的最佳实践。

目录:

  • 至少有两个内部 DNS 服务器
  • 使用 Active Directory 集成区域
  • 域控制器上的最佳 DNS 顺序
  • 加入域的计算机应仅使用内部 DNS 服务器
  • 将客户端指向最近的 DNS 服务器
  • 配置 DNS 记录的老化和清理
  • 设置 PTR 记录
  • 根提示与转发(哪一个最好)
  • 启用调试日志记录
  • 使用 CNAME 记录作为别名(而不是 A 记录)
  • DNS 最佳实践分析器
  • Bones:DNS 安全提示

警告:我不建议在未经测试并获得组织批准的情况下对 DNS 等关键服务进行更改。您应该遵循针对这些类型的变更的变更管理流程。

至少有两个内部 DNS 服务器

在从小到大的环境中,您应该至少有两个 DNS 服务器以实现冗余。 DNS 和 Active Directory 是关键服务,如果它们失败,您将遇到重大问题。拥有两台服务器将确保 DNS 在另一台出现故障时仍能正常工作。

在 Active Directory 域中,一切都依赖于 DNS 才能正常运行。甚至浏览互联网和访问云应用程序也依赖于 DNS。

我经历过一次完整的域控制器/DNS 故障,当我说几乎所有东西都停止工作时,我不是在开玩笑。

[玩转系统] DNS 最佳实践:权威指南

在上图中,我的站点有两个域控制器和 DNS 服务器。客户端配置为使用 DHCP,DHCP 服务器将自动为客户端配置主 DNS 服务器和辅助 DNS 服务器。如果 DC1/DNS 出现故障,客户端将自动使用其辅助 DNS 来解析主机名。如果 DC1 发生故障并且没有内部辅助 DNS,客户端将无法访问电子邮件、应用程序、互联网等资源。

底线:通过拥有多个 DNS/Active Directory 服务器来确保冗余。

推荐工具:使用 SolarWinds IP Address Manager Tool 自动跟踪 IP 地址并扫描您的子网。该工具将节省您的时间,并且无需手动更新电子表格。它还将与您的 DNS 和 DHCP 服务器集成,以进行集中管理和报告。自定义仪表板以显示您需要的 IP 地址详细信息,例如 IP 状态、MAC 地址、上次响应时间、位置供应商等。

[玩转系统] DNS 最佳实践:权威指南

使用 Active Directory 集成区域

为了更轻松地部署多个 DNS 服务器,您应该使用 Active Directory 集成区域。如果您在域控制器上配置了 DNS,则只能使用 AD 集成区域。

AD集成区具有以下优点:

  • 复制:AD 集成区域将数据作为容器对象存储在 AD 数据库中。这允许区域信息自动复制到其他域控制器。区域信息经过压缩,允许将数据快速、安全地复制到其他服务器。
  • 冗余:由于区域信息会自动复制,因此可以防止 DNS 出现单点故障。如果一台 DNS 服务器发生故障,另一台服务器将拥有 DNS 信息的完整副本,并且可以解析客户端的名称。
  • 简单:AD 集成区域会自动更新,无需配置区域传输。这简化了配置,同时确保冗余到位。
  • 安全:如果您启用安全动态更新,则只有授权客户端才能更新其在 DNS 区域中的记录。简而言之,这意味着只有 DNS 域的成员才能向 DNS 服务器注册自己。 DNS 服务器拒绝来自不属于域的计算机的请求。

域控制器上的最佳 DNS 顺序

我看到很多关于这个话题的讨论。域控制器上 DNS 顺序的最佳实践是什么?

如果您自己进行搜索,您会遇到各种答案,但大多数人推荐以下配置。

这也是微软的建议。

  • 主 DNS:设置为站点中的另一个 DC
  • 辅助 DNS:使用环回地址设置为自身

让我们看一个现实世界的例子。

[玩转系统] DNS 最佳实践:权威指南

在上图中,我在纽约站点有两个域控制器/DNS。我将 DC1 主 DNS 设置为其复制伙伴 DC2。然后使用环回地址将辅助 DNS 设置为其自身。然后,DC2 主 DNS 设置为 DC1,并使用环回地址将其辅助 DNS 设置为自身。

微软声称此配置提高了 DNS 服务器的性能并提高了可用性。如果您首先将主 DNS 指向其自身,可能会导致延迟。

来源:https://technet.microsoft.com/en-us/library/ff807362(v=ws.10).aspx

加入域的计算机应仅使用内部 DNS 服务器

加入域的计算机应将主 DNS 和辅助 DNS 设置为内部 DNS 服务器。外部 DNS 服务器无法解析内部主机名,因此这可能会导致连接问题并阻止计算机访问内部资源。

让我们看一个例子来说明为什么这是一个糟糕的设置。

[玩转系统] DNS 最佳实践:权威指南

  1. 客户端向名为 VEGAS 的内部服务器发出请求。
  2. 客户端决定联系其辅助 DNS 服务器,即 8.8.8.8。它询问服务器主机 VEGAS 的 IP 地址是什么。
  3. 外部 DNS 对该主机一无所知,因此无法提供 IP 地址。
  4. 这会导致客户端无法访问 VEGAS 文件服务器。

通常,如果主 DNS 服务器可用,则会首先使用它,但它可能会无响应,从而导致使用辅助 DNS。可能需要重新启动计算机才能切换回主 DNS,这可能会导致用户感到沮丧并致电帮助台。

推荐的解决方案是拥有两个内部 DNS 服务器,并始终将客户端指向它们而不是外部服务器。

将客户端指向最近的 DNS 服务器

这将最大限度地减少 WAN 链路上的流量,并为客户端提供更快的 DNS 查询。

[玩转系统] DNS 最佳实践:权威指南

在上图中,客户端计算机配置为使用位于其站点的 DNS 服务器。如果纽约的客户端被错误配置为使用伦敦的 DNS 服务器,这将导致 DNS 性能降低。这会影响用户的应用程序、互联网访问等。我保证用户会抱怨一切都很慢。

自动配置正确 DNS 服务器的最佳方法是使用 DHCP。您应该为每个站点设置不同的 DHCP 范围,其中包括该站点的主 DNS 服务器和辅助 DNS 服务器。

配置 DNS 记录的老化和清理

DNS 老化和清理允许自动删除旧的未使用的 DNS 记录。这是一个由两部分组成的过程:

老化:新创建的 DNS 记录会应用时间戳。

清理:根据配置的时间删除具有过时时间戳的 DNS 记录。

为什么需要这个?

有时计算机会使用不同的 IP 地址注册多个 DNS 条目。这可能是由于计算机移动到不同位置、计算机被重新映像、计算机被删除并添加回域而引起的。

拥有多个 DNS 条目将导致名称解析问题,从而导致连接问题。 DNS 老化和清理将通过自动删除未使用的 DNS 记录来解决此问题。

老化和清理仅适用于动态添加的 DNS 资源记录。

资源:

如何配置 DNS 老化和清理(清理陈旧的 DNS 记录)

为 DNS 区域设置 PTR 记录

PTR 记录将 IP 地址解析为主机名。除非您运行自己的邮件服务器,否则可能不需要 PTR 记录。

但是……它们对于故障排除和提高安全性非常有帮助。

某些系统(例如防火墙、路由器和交换机)仅记录 IP 地址。以 Windows 防火墙日志为例。

[玩转系统] DNS 最佳实践:权威指南

在此示例中,帮助台正在对打印机问题进行故障排除,并认为 10.1.2.88 是被防火墙阻止的打印机。因为我有 PTR 记录设置,所以我能够使用 nslookup 命令快速查找它。

[玩转系统] DNS 最佳实践:权威指南

10.1.2.88 解析为 nodaway.ad.activedirectorypro.com,我知道这是服务器而不是打印机。如果我没有 PTR 记录设置,我就会深入库存,试图找到有关该 IP 的更多信息。

确实没有理由不设置 PTR 记录,它很容易设置,并且不会在服务器上产生额外的资源。请参阅我关于设置反向查找区域和 ptr 记录的完整指南。

其他资源:

NSLookup 检查 DNS 记录

根提示与 DNS 转发器(哪一个最好)

默认情况下,Windows DNS 服务器配置为使用根提示服务器进行外部查找。外部查找的另一个选择是使用转发器。

基本上,这两个选项都是解析内部服务器无法解析的主机名的方法。

那么哪一个是最好的呢?

通过我自己的经验和研究,这确实取决于个人喜好。

以下是一些可帮助您做出决定的一般准则:

  • 如果您主要关心的是可靠性,请使用根提示(Windows 默认)
  • 转发器可能会提供更快的 DNS 查找。您可以使用基准测试工具来测试查找响应时间,链接包含在资源部分中。
  • 货运代理还可以提供安全增强功能(更多内容见下文)
  • 必须在每个 DC 上手动配置转发器

多年来我一直使用默认设置(根提示),然后在一次安全会议上向我介绍了 Quad9。 Quad9 是一个免费、递归、任播 DNS 平台,为最终用户提供强大的安全保护、高性能和隐私。简而言之,Quad9 会根据坏域列表检查 DNS 查找,如果客户端向列表中的域发出请求,则该请求将被丢弃。

我已经使用这项服务一年多了,而且遇到的问题为零。由于安全性一直是我非常关心的问题,因此我个人倾向于从根提示切换到 Quad9 转发器。它提供快速可靠的查找,并具有额外的安全性。

[玩转系统] DNS 最佳实践:权威指南

Quad9 不提供任何报告或分析。被阻止的请求会记录在 Windows Server DNS 调试日志中,因此请务必阅读下一节,了解如何启用它。这些掉落将使用 NXDomain 进行记录,以便您可以通过在日志中查找来构建报告。

其他资源:

OpenDNS - 是另一家提供此服务的公司,它的成本很高,但包括附加功能和报告。

Quad9 的工作原理 - 此页面显示如何在单台计算机上设置 Quad9,如果您有自己的 DNS 服务器,请勿执行此操作。您将需要使用 DNS 服务器并将quad9 添加为转发器。此页面提供了一些额外的详细信息,也是我添加它的主要原因。您可以将这些步骤用于您的家用计算机或只需要互联网访问的设备。

DNS 基准工具 - 免费工具,可让您测试任何名称服务器的响应时间。这可以帮助您确定是否要坚持使用根提示或使用转发器。

根服务器列表

启用 DNS 调试日志记录

DNS 调试日志可用于跟踪 DNS 查询、更新和其他 DNS 错误的问题。它还可用于跟踪客户活动。

使用 splunk 等日志记录工具,您可以创建有关热门域名、热门客户端的报告并查找潜在的恶意网络流量。

Microsoft 有一个日志解析器工具,可以生成以下输出:

[玩转系统] DNS 最佳实践:权威指南

您应该能够将调试日志提取到任何日志记录工具或脚本中以创建您自己的报告。

如何启用 DNS 调试日志

第 1 步:在 DNS 控制台上右键单击您的 DNS 服务器并选择属性

[玩转系统] DNS 最佳实践:权威指南

第 2 步:单击“调试日志记录”选项卡

[玩转系统] DNS 最佳实践:权威指南

如果需要,更改默认路径和最大大小。

其他资源:

解析 DNS 服务器日志以跟踪活动客户端

使用 CNAME 记录作为别名(而不是 A 记录)

  • 记录将名称映射到 IP 地址。
  • CNAME 记录将一个名称映射到另一个名称。

如果您使用 A 记录来创建别名,您最终会得到多个记录,随着时间的推移,这将变得一团糟。如果您配置了 PTR 记录,这也会在该区域中创建额外的记录,这会增加混乱并产生更大的问题。

如果您需要创建别名,最好使用 CNAME 记录,这样更容易管理并防止创建多个 DNS 记录。

如何创建别名 CNAME 记录

我的文件服务器有一个 A 记录设置,名为 file1,解析为 IP 192.168.0.201

[玩转系统] DNS 最佳实践:权威指南

我们的开发团队希望将服务器重命名为 Paris,以使其更加用户友好。我只需创建一条 CNAME 记录,而不是重新命名服务器。

右键单击该区域,然后单击“新建别名 (CNAME)”

[玩转系统] DNS 最佳实践:权威指南

对于别名,我将输入 Paris

别名解析为 file1,因此我将其添加到目标主机框:

单击“确定”即可完成!

[玩转系统] DNS 最佳实践:权威指南

现在我可以通过解析为 file1 的主机名访问巴黎

[玩转系统] DNS 最佳实践:权威指南

容易吧?

这可以保持 DNS 干净并有助于防止 DNS 查找问题。

使用 DNS 最佳实践分析器

Microsoft 最佳实践分析器是一种扫描服务器角色以根据 Microsoft 指南检查您的配置的工具。这是解决和发现潜在问题配置问题的快速方法。

BPA 可以使用 GUI 或 PowerShell 运行,两者的说明如下。

如何使用 GUI 运行 BPA DNS

打开服务器管理器,然后单击 DNS

[玩转系统] DNS 最佳实践:权威指南

现在向下滚动到最佳实践分析器部分,单击任务,然后选择“启动 BPA 扫描”

[玩转系统] DNS 最佳实践:权威指南

扫描完成后,将显示结果。

[玩转系统] DNS 最佳实践:权威指南

如何使用 PowerShell 运行 BPA DNS

您首先需要角色的 ID。运行此命令以获取 ID

Get-BPaModel

[玩转系统] DNS 最佳实践:权威指南

我知道 DNS 的 ID 是 Microsoft/Windows/DNSServer。我获取该 ID 并使用此命令运行 DNS 的 BPA。

Invoke-BPAModel “Microsoft/Windows/DNSSerer”

您可能会遇到一些错误,这是正常的

[玩转系统] DNS 最佳实践:权威指南

上述命令仅运行分析器,它不会自动显示结果。

要显示结果,请运行以下命令:

Get-BpaResult Microsoft/Windows/DNSServer

[玩转系统] DNS 最佳实践:权威指南

奖励:DNS 安全提示

我想我们都同意 DNS 是一项重要的服务。如果没有的话,一切将如何运作?现在让我们看一下保护此服务的几种方法,其中一些功能在 Windows 服务器上默认启用。

  • 过滤 DNS 请求(阻止坏域)
  • 安全 DNS 转发器
  • DNS 缓存锁定
  • DNS 套接字池
  • DNSSecFilter DNS 请求(阻止坏域)

过滤 DNS 请求(阻止坏域)

防止病毒、间谍软件和其他恶意流量的最佳方法之一是在流量到达您的网络之前将其阻止。

这可以通过安全设备过滤 DNS 流量来完成,该安全设备根据坏域列表检查域名。如果该域位于列表中,则流量将被丢弃,从而阻止坏域与客户端之间的任何进一步通信。这是下一代防火墙、IPS 系统(入侵防御系统)和其他安全设备的常见功能。

我一直在使用提供此服务的 Cisco FirePower 防火墙。思科提供定期自动更新的源(坏域列表)。此外,我可以添加其他源或手动将坏域添加到列表中。自从我开始过滤 DNS 请求以来,我发现病毒和勒索软件类型的威胁大幅减少。我对它检测和阻止的不良流量之多感到惊讶,令人惊讶的是误报很少!

其他资源:

思科下一代防火墙官方网站
https://www.cisco.com/c/en/us/products/security/firewalls/index.html

Paloalto - 另一种流行的防火墙/IPS 系统
https://www.paloaltonetworks.com/products/secure-the-network/next- Generation-firewall

安全 DNS 转发器

安全 DNS 转发器是过滤和阻止 DNS 查询的另一种方法。

除了阻止恶意域之外,一些转发服务还提供 Web 内容过滤。这允许您根据成人内容、游戏、毒品等类别来阻止请求。与防火墙等本地设备相比,它的一大优势是可以在设备脱离网络时为设备提供保护。它可能需要在设备上安装客户端,但如果设备位于内部或外部网络上,它将通过安全 DNS 转发器引导所有 DNS 流量。

DNS 转发过滤器列表:

四方9

开放DNS

DNS过滤器

DNS 缓存锁定

DNS 缓存锁定允许您控制何时可以覆盖 DNS 缓存。

当 DNS 服务器对客户端执行查找时,它会将查找结果存储在缓存中一段时间。这使得 DNS 服务器以后能够更快地响应相同的查找。如果我访问 espn.com,DNS 服务器会缓存该查找,因此如果有人稍后访问它,它已经被缓存,以便更快地查找。

一种类型的攻击是使用虚假记录来进行缓存查找。例如,我们的缓存中有 espn.com,攻击者可以更改此记录以重定向到恶意站点。下次有人访问 espn.com 时,它会将他们发送到恶意网站。

DNS 缓存锁定会阻止缓存中的记录被更改。 Windows Server 2016 默认启用此功能。

其他资源

https://nedimmehic.org/2017/04/25/how-to-deploy-and-configure-dns-2016-part6/

DNS 套接字池

DNS 套接字池允许 DNS 服务器使用源端口随机化进行 DNS 查找。通过使用随机端口,DNS 服务器将从可用套接字池中随机选择一个源端口。它不会反复使用相同的端口,而是从池中随机选择一个端口,这使得攻击者很难猜测 DNS 查询的源端口。

Windows Server 2016 上也默认启用此功能

其他资源

Microsoft 配置套接字池

DNSSEC

DNSSEC 添加了一个安全层,允许客户端验证 DNS 响应。此验证过程有助于防止 DNS 欺骗和缓存破坏。

DNSSec 通过使用数字签名来验证响应的真实性。当客户端执行 DNS 查询时,DNS 服务器会将数字签名附加到响应中,这允许客户端验证响应并证明其未被篡改。

其他资源:

DNSSec 概述

逐步实施

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯