我在 Windows 2012R2 计算机上设置了 Active Directory。我一直在尝试禁用匿名绑定绑定到 AD,但尚未弄清楚如何操作。因此,我能够仅使用 IP 地址和 LDAP 浏览器等程序绑定到 AD。
如何禁用匿名绑定?
答案1
默认情况下,Active Directory(Windows 2000 之前的版本)不允许除rootDSE
搜索之外的匿名操作。因此,如果您能够匿名绑定到 Active Directory,则意味着以下两种情况之一。要么
- 您正在连接到 RootDSE,其匿名绑定应该设计允许。
- 您已修改 Active Directory 以允许非 rootDSE 操作的匿名绑定,现在您需要恢复该配置。
匿名者与 RootDSE 绑定应该允许,因为大多数应用程序都是通过 RootDSE 获取目录信息以完成进一步绑定的,例如各种分区的可分辨名称等。RootDSE 中不包含任何敏感信息,匿名绑定到 RootDSE 是其设计工作方式。如果应用程序无法匿名绑定到 RootDSE,事情就会变得糟糕。
例如,如果应用程序想知道支持哪些身份验证机制以便绑定到您的 AD,它可以从中supportedSASLMechanisms
的属性中获取该信息RootDSE
,但当然这必须在任何身份验证发生之前进行,因为您甚至不知道您被允许使用哪些身份验证机制。
读: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) 允许的任何操作。如果已设置该属性,请不要修改 dsHeuristics 字符串中除第七位以外的任何位。如果未设置该值,请确保提供直到第七位的前导零。您可以使用 Adsiedit.msc 对 dsHeuristics 属性进行更改。
进一步澄清一下,目前决不禁用匿名绑定到 RootDSE。这不是 Active Directory 特有的。这是 LDAP v3 规范的一部分。
读:https://technet.microsoft.com/en-us/library/cc755809%28v=ws.10%29.aspx