![将我的所有 Windows 服务器都设为域控制器有哪些缺点?](https://linux22.com/image/525748/%E5%B0%86%E6%88%91%E7%9A%84%E6%89%80%E6%9C%89%20Windows%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%83%BD%E8%AE%BE%E4%B8%BA%E5%9F%9F%E6%8E%A7%E5%88%B6%E5%99%A8%E6%9C%89%E5%93%AA%E4%BA%9B%E7%BC%BA%E7%82%B9%EF%BC%9F.png)
正如问题所述,将组织中每台 Windows 2003 或 2008 Server 都设置为域的域控制器有什么缺点?这是否有点过分?许多第三方应用程序是否会因此而爆炸式增长?还有其他我没有想到的吗?
有什么好处吗?
答案1
- 域控制器没有本地帐户。因此,这些机器上运行的所有内容都必须重新配置才能使用域帐户。
- 域控制器绝不应该被快照或恢复到任何形式的先前映像,否则您将遇到 USN 回滚场景。这意味着如果您运行任何类型的映像解决方案或虚拟化,您将无法使用快照功能。
- 域控制器的任何本地管理员都是域管理员。
- 网络和复制流量将大幅增加。
- 位于由交换机 ACL 或防火墙分隔的网络段中的服务器将需要配置许多额外的访问规则以支持足够的复制流量。
- AD 数据库损坏的几率增加
- 你违反了公共安全最小特权原则。
- 当您将来希望升级域功能级别时,您必须将每个服务器升级到适当的版本,而不仅仅是专用的域控制器。
- 您的域的可利用面将成倍增加,因为这些服务器上的任何应用程序都将成为您的域基础架构的潜在攻击媒介(例如,SQL 漏洞随后可能导致您的整个域受到威胁)
- 某些服务将无法运行或强烈建议不要在域控制器上运行(例如终端服务)。
我能给您的最佳建议是尽可能将域控制器作为非常独立的实体运行,即不要将对域控制器运行不重要的服务加载到域控制器上。出于实际/成本原因,小型商店尤其是小型企业服务器通常会忽略这一点,但是一旦您扩展至此,您理想情况下会希望 DC 只是 DC,并且您只运行实际需要的尽可能多的 DC,以实现足够的复制和容错。
答案2
除了 Chris Thorpe 发布的非常好的列表之外,这里还列出了一些说明为什么这样做是个坏主意的原因:
- 然后需要通知每个服务器有关域的变化。
- 长时间停机的服务器都可能导致复制问题。
- 根据你的域的大小,它可能会消耗相当多的内存。
- 然后,每个服务器都将在 DNS 中被解析为可由域 DNS 域解析。如果服务器数量足够多,一些 DNS 客户端将开始因 DNS 响应的大小而感到沮丧。
- 然后,每台服务器将托管所有组策略,这些组策略具有自己的复制流量,因此您将获得不一致的 GPO 覆盖,直到复制收敛,这在大型 DC 网络中可能需要几个小时。
实际上,“复制开销”论点确实很有说服力。如果您拥有少量本地服务器,比如不到 10 台,情况就不会那么糟糕。一旦数量增加,尤其是当它们彼此相距较远时,问题就会开始加剧。AD 站点内的复制是一对多的,站点之间通常配置有桥头主机来汇集更新。不仅 AD 信息需要复制,所有组策略信息(存储在“SYSVOL”中)也需要复制到每个 DC。当您在环境中拥有许多 DC 时,这是一个非常复杂的复制网格,而且更容易出错。
从安全角度来看真的不希望潜在攻击者获得对 DC 的本地访问权限。当您位于 DC 本地时,提取整个域的密码哈希要容易得多,而使用 Rainbow Tables 则几乎可以结束游戏,除非您的密码策略比现在常用的策略严格得多。
答案3
这是个非常糟糕的主意。我真的想不出这样做的理由。许多 MS 服务无法在 DC 上运行或不受支持。此外,您在 DC 上安装的任何软件中的任何错误或漏洞都会危及整个域的安全。