在潜在的敌对networking上保护Active Directory域

Active Directory是Windows Server的最佳function之一,但它也是一个很大的发光目标。 如果妥协,它会给攻击者的Windowsnetworking。

在面向外部的Windows服务器(我的情况下是Web服务器)的环境中,需要采取哪些步骤来保护Active Directory免受攻击? 如果一个域名成员受到损害,你如何减less潜在的损失? 最后,如果域控制器受到攻击,有什么方法可以减less潜在的损害?

我正在寻找专门与Active Directory(2003和2008)相关的信息。 通用的最佳实践(阅读您的日志,安全的pipe理员密码等)应该是一个给定的。

  • 不要使用域pipe理员或类似的特权帐户loginnetworking中的任何计算机,但您的数据中心除外。 这样一个受损系统不能窃取您的凭据。

  • 有一个单独的特权帐户pipe理您的面向networking的机器。

  • 如果可能,请在面向计算机的networking上安装严密的networking级防火墙。

  • 如果可能的话,让您的networking面向DMZ中的机器 – 这基本上只是一个子网,与其他内部networking的连接有限。

  • 如果一个域控制器被攻破…严格来说你的域名已经不存在了,需要重build。 实际上更多的取决于妥协的types,你需要根据具体情况进行评估。 我inheritance了严格地说“妥协”的两个领域,我重build了一个,修复了第二个领域。 有很多因素需要考虑。

以下是我使用的一般方法。 希望我可以添加很多这些:

  • 域控制器在他们自己的网段上。 来自或来自域控制器的所有stream量必须通过networking防火墙。

  • 域控制器不运行外部可访问的服务。

  • 所有域控制器/成员上的RPC端口范围都受限于已知的一组端口:

    1. pipe理工具 – >组件服务 – >组件服务 – >计算机
    2. 我的电脑 – >属性 – >默认协议 – >面向连接的TCP / IP – >属性
    3. 设置端口范围(如6051-6071)。 你的networking越大,使用RPC越多,你需要的范围就越广。 对于25-30台Windows机器的networking,我发现20个端口已经足够了。
    4. 将端口范围分配和默认dynamic端口分配都设置为“Internet范围”
    5. 重启
  • 允许域成员只有以下访问域控制器(都在networking防火墙,域控制器的主机防火墙和域成员的主机防火墙 – 使用组策略来执行此操作):

    • TCP / UDP端口53(DNS)
    • TCP / UDP端口88(Kerberos)
    • UDP端口123(NTP)
    • TCP / UDP端口135(RPC终结点映射程序)
    • TCP / UDP端口137(NetBIOS)
    • UDP端口138(NetBIOS)
    • TCP端口139(NetBIOS)
    • TCP / UDP端口389(LDAP)
    • TCP / UDP端口445(SMB-over-IP)
    • TCP端口3268(LDAP全局编录)
    • TCP / UDP端口6051-6071(RPC – 用上面select的范围来replace)
  • 设置IPSec策略,以便所有域控制器到域控制器通信都通过线路encryption

  • 使用组策略来加强主机防火墙的networking防火墙规则。 特别:

    • 限制远程桌面到您的pipe理工作站/networking
    • 限制SNMP到您的pipe理员和监视工作站/networking
    • 限制出站syslog(我使用event-to-syslog)到日志服务器
    • 限制出站SMTP到您的邮件服务器
    • 标准“仅限于所有服务器需要的”策略
  • 将所有networking服务configuration为以Active Directory用户身份运行(IIS应用程序在名为“svc-servicename”的用户下运行)。 这些用户被分配到一个具有削弱特权的组,并从Domain Users组中删除。

  • 将pipe理员帐户重命名为其他内容,添加“pipe理员”作为一个禁用的访客帐户(微不足道的克服,但它可以阻止一些愚蠢的脚本)。

  • 面向外部的服务器与HQ / Office计算机位于不同的域中。 我有一个单向的信任(DMZ信任HQ)来简化一些login,但是我正在考虑逐步淘汰。

我曾经阅读过的一个Microsoft最佳实践文档build议您的面向Internet的服务器(Web,电子邮件等)应该是独立的机器,或者与公司林中的独立Active Directory林中。 这个单独的森林应该完全存在于DMZ中,而您的公司AD森林应该完全存在于您公司防火墙最严格的范围内。 面向互联网的服务器比常规的企业计算资源要less得多,所以用这种方式build立一个系统不应该在用户支持方面带来额外的pipe理开销。 您只需记住每个域的单独用户名和密码。

这是有些相反的观点。 我在一个无线LAN网段上工作,学生(和他们的包里有一到三个设备)可以连接到一个无线LAN网段。 这是在我们的互联网边界防火墙内部,但在一定程度上仍然受到来自更大networking多汁善良的阻碍。 但是,有一些限制。

为了让学生从他们的笔记本电脑打印,我们必须允许域名login,这反过来要求DC的可见性。 networking共享也是如此。 更重要的是,学生笔记本电脑并不存在,我们也没有任何对它们的控制。

当我第一次来到这里时,我感到惊讶的是,这个开放的Windowsnetworking可以存活下来 。 但它确实。 是的,Slammer是一个彻头彻尾的痛苦。 是的,我们确实有偶尔的被黑客入侵的服务器(从互联网端,而不是WLAN端)。 总而言之,我们在无线局域网上看到的恶意软件对发送大量电子邮件比对本地机器上的所有内容进行扫描感兴趣。

我们确实在WLAN和任何有趣的东西之间有一个auth屏障,这有所帮助。

另外,当RIAA向我们发送违规通知时,我们将永远转到WLANlogin日志,以查看谁在IP上。

我build议阅读保护Active Directory安装的最佳实践指南 。

我认为在不受信任的networking上很重要:

  • 用于身份validationstream量的IPSec
  • 使用双因素authentication(智能卡或挑战 – 响应便宜)
  • 禁用NTLM

前两个build议要求您设置一个PKI服务。 实施PKI可能是一个真正的痛苦,但它可以给你很多有趣的function,并允许你在一个不受信任的环境中有效和安全地运行。

一般的规则是DC上唯一的事情就是Active Directory本身。 当然,这并不总是可以实现的,但是这只是减less可能暴露的服务的数量。