Sudo

限制匿名使用者查詢 sudoers ldap 配置的理想方法

  • March 16, 2020

我使用官方 sudoers 網站提供的說明配置了 sudoers ldap(使用 openldap 作為後端 LDAP)。(連結

還將 /etc/sudo-ldap.conf限制為600 root:root權限,這樣機器中的普通使用者將無法知道他們正在與之交談的 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

須藤-ldap.conf:

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

如果您需要更多詳細資訊,請告訴我。

我想出了正確的方法:

  • 在 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 訪問所有內容。

引用自:https://unix.stackexchange.com/questions/549131