限制匿名用户查询 sudoers ldap 配置的理想方法

限制匿名用户查询 sudoers ldap 配置的理想方法

我使用 sudoers 官方网站提供的说明配置了 sudoers ldap(使用 openldap 作为后端 LDAP)。 (关联

也受到限制/etc/sudo-ldap.conf600根:根权限,以便计算机中的普通用户无法知道他们正在与之通信的 LDAP 服务器。

但 ldap 服务器目前允许匿名访问连接到所有内容,包括 sudoers OU。是否可以以任何方式将 ldap 服务器上的 sudoers OU(例如 ou=sudoers、dc=example、dc=com)限制为特定用户,并保留 ldap 结构的其余部分以进行匿名访问? (我无法找到进行访问控制的正确方法)

配置详情:

slapd.conf:

access to dn.subtree="dc=example,dc=com"
        by * read

sudo-ldap.conf:

uri ldap://LDAP_SERVER
sudoers_base ou=sudoers,dc=example,dc=com

如果您需要更多详细信息,请告诉我。

答案1

我找到了正确的方法:

  • 在 LDAP 中创建一个新用户cn=sudoread,dc=example,dc=com
cat > /tmp/tmplif <<EOF
dn: cn=sudoread,dc=example,dc=com
objectClass: top
objectClass: person
cn: sudoread
sn: read
userPassword: sudoread
EOF
$ ldapadd -H ldap://localhost -f /tmp/tmplif -D 'cn=root,dc=example,dc=com' -W
$ printf "sudoread" | base64
c3Vkb3JlYWQ=

  • ou=sudoers,dc=example,dc=com在授予所有访问权限之前,向上述创建的用户授予访问权限。
access to dn.one="ou=sudoers,dc=example,dc=com"
        by dn="cn=sudoread,dc=example,dc=com" read
access to *
        by * read
  • 在sudo-ldap.conf中使用binddn和bindpw参数:
$ cat >> /etc/sudo-ldap.conf <<EOF
binddn cn=sudoread,dc=example,dc=com
bindpw base64:c3Vkb3JlYWQ=
EOF

这将创建一个可用于查询 ldap 并保留 LDAP 的其余部分对所有内容的访问权限的用户。

相关内容