18.15. 在目录管理器上设置访问控制

从维护角度而言,具有不受限制的管理用户有意义。目录管理器需要高级别的访问权限来执行维护任务并响应事件。
但是,由于 Directory Manager 用户的强大功能,建议某些级别的访问控制来防止未经授权的访问或攻击以 root 用户身份执行。
常规访问控制规则应用到目录树,目录管理器不是常规用户条目,因此不能(常规) ACI 应用到 Directory Manager 用户。ACI 通过特殊的插件配置条目应用。

18.15.1. 关于目录管理器帐户上的访问控制

普通访问控制规则不适用于 Directory Manager 用户。Directory Manager 用户的权限在目录服务器中硬编码,无法在绑定规则中使用。
目录管理器的访问控制是通过 RootDN 访问控制插件 实现的。此插件适用于目录服务器配置,因此可将一些访问控制规则应用到 Directory Manager 条目。
该插件不定义标准 ACL。有些信息已经代表,包括目标(目录管理器条目)和允许的权限(全部)。RootDN 访问控制插件的目的是不限制目录管理器可以 做什么 ;其目的是通过限制谁以目录管理器(即使使用有效凭证)登录,从而根据其位置或时间提供级别的安全性。
因此,Directory Manager 的 ACI 只设置绑定规则:
与其他访问控制规则一样,拒绝规则监管规则。
重要
确保 Directory Manager 始终具有允许的访问级别。Directory Manager 可能需要在非小时内执行维护操作(当用户负载非常轻便)或响应故障。在这种情况下,设置基于字符串的时间或日常访问控制规则可能会阻止 Directory Manager 能够适当地管理该目录。

18.15.2. 配置 RootDN 访问控制插件

默认禁用 root DN 访问控制规则。启用 RootDN Access Control 插件,然后设置适当的访问控制规则。
注意
在插件条目中,只能为 Directory Manager 设置一个访问控制规则,它适用于所有访问整个目录。
  1. 启用 RootDN 访问控制 插件:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin root-dn enable
    Plugin 'RootDN Access Control' enabled
    ...
    
  2. 为访问控制指令设置绑定规则。例如:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin root-dn set --open-time=0600 --close-time=2100 --allow-host="*.example.com" --deny-host="*.remote.example.com"
    您可以设置以下参数:
    • --open-time--close-time 用于基于时间的访问控制。
    • --days-allowed 用于基于日常访问控制。
    • --allow-host--deny-host--allow-ip--deny-ip 用于基于主机的访问控制。这些是所有多值属性,您可以使用通配符来允许或拒绝 IP 范围或域。
      重要
      拒绝规则具有更高的优先级,然后允许规则。例如,如果 --allow-host 参数设为 192.168.1.0/24 example.com,并且 --deny-host 设置为 192.168.1.0/24 front-office.example.com,则阻止从 front-office.example.com 子域中的所有主机访问,因为目录管理器会被阻止。
  3. 重启 Directory 服务器:
    # dsctl instance_name restart