手当たり次第に書くんだ

飽きっぽいのは本能

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

389 Directory Server では、suffix を作成しただけでは実際の運用には進めません。ユーザー、グループ、サービス用 BIND DN などを置くための base entry と OU を登録し、後続の SSSD、Samba、Postfix、アプリケーション認証が参照しやすい検索ベースを作ります。

この記事は、Ubuntu 22.04 の既存環境で 389 Directory Server のベースエントリーを読み直すための記事です。新規構築では Ubuntu 26.04 側の記事を優先しつつ、22.04 環境の設定確認や古い構築記録の読み替えに使ってください。

関連する記事
この記事で確認すること
  • base entry と OU の役割
  • ユーザー、グループ、サービスアカウントの配置先
  • LDIF ファイルの作成と登録
  • ldapsearch による登録確認
  • 後続サービスが参照しやすい DN 設計
参考
書籍
参考書籍

LDAP – 設定・管理・プログラミング

LDAP の基礎、ディレクトリ設計、検索、認証連携を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

base entry の考え方

base entry は、ディレクトリツリーの土台です。suffix を作ったあと、実際にユーザーやグループを入れるための OU を作ります。ここでは、ユーザー用、グループ用、サービスアカウント用の 3 つを例にします。

DN用途
dc=example,dc=localLDAP ツリーの基点
ou=users,dc=example,dc=localユーザーを格納する
ou=groups,dc=example,dc=localグループを格納する
ou=service,dc=example,dc=localBIND ユーザーなどを格納する

OU の名前は一度決めると、検索ベースやアプリケーション設定に出てきます。後から変更できないわけではありませんが、後続設定への影響が大きいため、最初に用途を分けて決めます。

LDIF を作成する

ベースエントリーと OU を登録する LDIF ファイルを作成します。

コマンド
cat <<'EOF' > /tmp/base-entry.ldif
dn: dc=example,dc=local
objectClass: top
objectClass: domain
dc: example

dn: ou=users,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: groups

dn: ou=service,dc=example,dc=local
objectClass: top
objectClass: organizationalUnit
ou: service
EOF

dc=example,dc=local は環境の suffix に合わせます。既存環境では、先に dsconfldapsearch で実際の suffix を確認してから作業します。

LDIF を登録する

作成した LDIF を ldapadd で登録します。ここでは Directory Manager を使う例にしていますが、通常運用では権限を分けた BIND ユーザーを使う設計に進めます。

コマンド
ldapadd -x \
  -H ldaps://ldap.example.local \
  -D 'cn=Directory Manager' \
  -W \
  -f /tmp/base-entry.ldif

LDAPS で接続する場合、クライアント側が CA 証明書を信頼している必要があります。証明書エラーが出る場合は、先に TLS / LDAPS の設定を見直します。

登録内容を確認する

登録した OU が検索できるか確認します。

コマンド
ldapsearch -x \
  -H ldaps://ldap.example.local \
  -b dc=example,dc=local \
  '(objectClass=organizationalUnit)' dn

検索結果に ou=usersou=groupsou=service が出れば、ベースの入れ物は作成できています。

OU をどう分けるか

base entry を作るときは、単に OU を作るだけでなく、後続サービスがどの単位で検索するかを考えます。Linux 認証、Samba、メール、アプリケーション認証で同じユーザーを参照する場合、DN の階層を複雑にしすぎない方が扱いやすくなります。

  • ユーザーは ou=users に集約する
  • POSIX グループは ou=groups に置く
  • サービスアカウントや BIND ユーザーは通常ユーザーと分ける
  • 部門別 OU は、検索ベースや権限管理が複雑になる場合だけ使う
  • SSSD、Samba、Postfix から参照する DN を先に想定する

Directory Manager に頼りすぎない

ベースエントリーの初期登録では cn=Directory Manager を使うことがあります。ただし、これは管理者 DN です。後続の BIND ユーザー、アプリケーション連携、日常確認では、読み取り用や書き込み用の BIND DN を分けます。

この段階では、ベースの OU を作り、次に BIND ユーザーとアクセス制御を設計できる状態にすることが目的です。

まとめ

base entry は LDAP 設計の骨格です。Samba、Postfix、SSSD などから参照する前に、ユーザー、グループ、サービスアカウントの置き場所を明確にしておくと後続の設定が読みやすくなります。

22.04 の既存環境を見直すときは、suffix と OU の対応、検索ベース、Directory Manager を使っている箇所、後続サービスの参照 DN を分けて確認します。

関連する記事
Ubuntu 22.04 389 Directory Server #3 – ベースエントリーの登録

コメントを残す

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

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

トップへ戻る