科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道征服AD的内在限制:AD的尺寸限制

征服AD的内在限制:AD的尺寸限制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

为了保护AD免受拒绝服务攻击(Denial of Service,DoS)和过渡搜索的负面性能影响,在返回LDAP搜索结果时,AD设置了一个最大不超过1000的限制。

来源:IT试验室 2008年4月2日

关键字: 活动目录 微软 操作系统 Windows

  • 评论
  • 分享微博
  • 分享邮件
    LDAP最大页面大小
  
  也许你知道AD支持轻量目录访问协议(LDAP) 3.0。AD支持LDAP所以你可以使用LDAP客户端对AD进行搜索。为了保护AD免受拒绝服务攻击(Denial of Service,DoS)和过渡搜索的负面性能影响,在返回LDAP搜索结果时,AD设置了一个最大不超过1000的限制。换而言之,在AD返回一个 LDAP搜索时不会超过1000条记录。例如,如果你向一个有着上千个用户的AD域,发送一个列出所有域用户的LDAP搜索,结果将返回1000条记录和一个报告超过限制大小的错误消息。
  
  有两个办法可以解决这个问题。第一是修改客户端的最大页面大小;第二是在域控制器(DC)上修改LDAP策略MaxPageSize。根据最佳操作原则,建议采用第一种,而不去修改LDAP策略。但是如果任凭用户和客户端自行修改设置并访问AD,就很有可能影响AD的正常运行,尤其是在处理那些低效率的LDAP查询时。最大页面大小设置实际上是为了保护AD免受那些低效率LDAP查询的骚扰。最危险的情况就是由于LDAP查询严重影响DC的性能。要了解更多关于LDAP策略的信息,请参阅微软文章“HOW TO: View and Set Lightweight Directory Access Protocol Policies by Using Ntdsutil.exe in Windows 2000”(http://support.microsoft.com/?kbid=315071)。
  
  在LDAP客户端上修改最大页面大小的办法之一,就是使用来自Windows 2003或Windows 2000支持工具中的LDAP客户端ldp.exe。要使用该方法,请参考下列命令:
  
  1.首先运行ldp.exe。
  
  2.然后,与目录服务进行连接并绑定。选择菜单栏中的“连接”,再点击“连接”。在窗口中输入要连接的域控制器的完整域名(FQDN,例如: dc1.mydomain.com)。如果要与默认本地域的目录服务连接,无需输入域名直接点击“确定”即可。要与DC建立LDAP绑定,在“连接”菜单栏中选择“绑定”,输入拥有相应权限的域用户名、密码和域信息,然后点击“确定”。选择“浏览”,单击“搜索”。
  
  3.点击“选项”如图一所示,根据需要修改所需的最大页面大小。
  
  图1:LDAP的搜索选项
  
 征服AD的内在限制:AD的尺寸限制

  如图一中显示了我将Search Call Type设置从默认的Sync.更改为Paged.。这个修改将指示DC在处理任何包含了Page size设置的查询时,返回所有结果,这样1000条记录的限制便得到解决。还记得DC上的LDAP策略被称为MaxPageSize吗?该策略与 LDAP客户端的Page size设置完全没有任何关联。MaxPageSize策略只对服务器返回的最大记录数作限制。而在本例中ldp.exe要求服务器返回结果记录16(默认设置)。你无需修改此默认设置。我将Timeout (s)设置为60。根据我的经验,这将有效防止超时。我还将Attributes设置为1.1。该设置指示DC不返回属性。(默认情况下,DC将在结果中返回对象的DN名称。)
  
  如果你是一个LDAP领域的专家,或者希望了解更底层的内容,那么我可以告诉你ldp.exe实际是通过pagedResultsControl实现对 LDAP查询页面大小的控制。更多关于控制LDAP的信息请参考Internet Engineering Task Force(IETF)Request for Comments(RFC)2696(http://www.ietf.org/rfc/rfc2696.txt)。
  
  还有另一种通过在VBScript脚本中使用ActiveX Data Objects(ADO)设置页面大小的方法。Listing 1中的脚本用于列举一个域中所有用户的账号。如果在一个超过1000个用户的域中,运行没有带Page size的脚本,那么脚本运行将会出错。就像上面设置ldp.exe同样的方式,在脚本中设置特定的页面大小将指示服务器按需要返回查询结果,这样就能够克服1000条记录的限制。要运行脚本,首先新建文件(例如:PageSize.vbs)修改Listing 1中Callout A部分的代码,然后保存即可。在命令行窗口中,将当前目录指向脚本存放位置,然后输入下列命令:
  
  Listing 1
  
征服AD的内在限制:AD的尺寸限制

  cscript PageSize.vbs
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章