Sudo
限制匿名使用者查詢 sudoers ldap 配置的理想方法
我使用官方 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 訪問所有內容。