sudoers 공식 웹사이트에서 제공하는 지침을 사용하여 sudoers ldap(openldap을 백엔드 LDAP으로 사용)을 구성했습니다. (협회)
또한 제한됨/etc/sudo-ldap.conf그리고600뿌리 : 뿌리컴퓨터의 일반 사용자가 어떤 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에서 바인딩 및 바인딩 매개변수를 사용하십시오.
$ cat >> /etc/sudo-ldap.conf <<EOF
binddn cn=sudoread,dc=example,dc=com
bindpw base64:c3Vkb3JlYWQ=
EOF
그러면 LDAP를 쿼리하는 데 사용할 수 있는 사용자가 생성되고 나머지 LDAP의 모든 항목에 대한 액세스 권한이 유지됩니다.