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内のすべてのエントリへのアクセス権が維持されます。