禁用Windows Server 2012 R2上的Active Directory的匿名绑定

我在Windows 2012R2机器上设置了Active Directory。 我一直试图禁用匿名绑定到AD,但还没有想出如何做到这一点。 因此,我可以使用IP地址和LDAP浏览器等程序绑定到AD。

我怎样才能禁用匿名绑定?

Active Directory(过去的Windows 2000)默认情况下不允许除rootDSEsearch以外的匿名操作。 所以,如果您能够匿名绑定到Active Directory,那意味着两件事情之一。 或

  • 您正在连接到RootDSE,为此,devise允许匿名绑定。
  • 您已经修改Active Directory以允许对非rootDSE操作进行匿名绑定,现在您需要恢复该configuration。

应该允许匿名绑定到RootDSE,因为RootDSE是大多数应用程序获得有关目录的信息以完成进一步绑定的方式,例如各种分区的可分辨名称等。RootDSE中不包含敏感信息,匿名绑定到RootDSE是它是如何devise的。 如果应用程序无法匿名绑定到RootDSE,事情将会中断。

例如,如果应用程序想知道绑定到AD的支持哪种身份validation机制,它可以从RootDSEsupportedSASLMechanisms属性获取该信息,但是当然这必须在进行任何身份validation之前进行,因为你甚至不知道你允许使用哪种authentication机制。

阅读: https : //msdn.microsoft.com/en-us/library/ms677945(v=vs.85).aspx

现在在第二种情况下,假设您已经为非RootDSE操作启用了对AD的匿名绑定,则通过更改以下目录对象上dsHeuristics属性的第七个字符来禁用该属性:

 CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,Root domain in forest 

dsHeuristics属性的有效值为0和2.默认情况下,dsHeuristics属性不存在,但其内部默认值为0.如果将第七个字符设置为2,则匿名客户端可以执行访问控制所允许的任何操作列表(ACL)。 如果属性已经设置,请不要修改第七位以外的dsHeuristicsstring中的任何位。 如果没有设置该值,请确保提供前七个位的前导零。 您可以使用Adsiedit.msc对dsHeuristics属性进行更改。


为了进一步澄清,目前没有办法禁用匿名绑定到RootDSE。 这不是一个Active Directory特定的事情。 这是LDAP v3规范的一部分。

阅读: https : //technet.microsoft.com/en-us/library/cc755809%28v=ws.10%29.aspx

阅读: http : //www.selfadsi.org/bind.htm