手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 389 Directory Server #4 – BIND ユーザーとアクセス制御

389 Directory Server のアクセス制御を整理します。LDAP では、誰がどの属性を読めるのか、誰が書き込めるのかを明確にしないと、内部基盤として危険な状態になります。

389 Directory Server シリーズ

前の記事: Ubuntu 22.04 389 Directory Server #3 – ベースエントリーの登録

次の記事: Ubuntu 22.04 389 Directory Server #5 – グループとユーザーの登録

匿名 BIND の扱い

内部 LDAP でも、匿名 BIND を許可するかどうかは明確に決めます。認証基盤として使う場合は、基本的に匿名 BIND を無効化し、参照用 BIND ユーザーを作る方が扱いやすいです。

sudo dsconf ldap01 config replace nsslapd-allow-anonymous-access=off
sudo dsctl ldap01 restart

BIND ユーザー

読み取り専用の cn=ro と、書き込み用の cn=rw を分けます。Samba や Postfix が参照する場合、必要な権限だけを持つ BIND ユーザーを使います。

cat <<'EOF' > /tmp/bind-users.ldif
dn: cn=ro,ou=service,dc=example,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: ro
userPassword: change-me-ro

dn: cn=rw,ou=service,dc=example,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: rw
userPassword: change-me-rw
EOF

ldapadd -x -H ldaps://ldap.example.local   -D 'cn=Directory Manager'   -W   -f /tmp/bind-users.ldif

ACI の考え方

ACI は、LDAP ツリーに対するアクセス制御です。ここでは例として、cn=ro に読み取り、cn=rw に書き込みを許可する考え方を示します。

ldapmodify -x -H ldaps://ldap.example.local   -D 'cn=Directory Manager'   -W <<'EOF'
dn: dc=example,dc=local
changetype: modify
add: aci
aci: (target="ldap:///dc=example,dc=local")(targetattr="*")(version 3.0; acl "read access for ro"; allow (read,search,compare) userdn="ldap:///cn=ro,ou=service,dc=example,dc=local";)
aci: (target="ldap:///dc=example,dc=local")(targetattr="*")(version 3.0; acl "write access for rw"; allow (all) userdn="ldap:///cn=rw,ou=service,dc=example,dc=local";)
EOF

確認

ldapsearch -x -H ldaps://ldap.example.local   -D 'cn=ro,ou=service,dc=example,dc=local'   -W   -b dc=example,dc=local dn

ldapsearch -x -H ldaps://ldap.example.local   -b dc=example,dc=local dn

まとめ

LDAP のアクセス制御は、匿名 BIND、読み取り専用 BIND、書き込み BIND を分けて考えると整理しやすくなります。Samba や Postfix から参照する場合も、必要最小限の権限を持つ BIND ユーザーを使います。

Ubuntu 22.04 389 Directory Server #4 – BIND ユーザーとアクセス制御

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る