【OpenLDAP基本講座 第2回】インストールと初期設定。RHEL9時代の構築術とslapdの起動

「yum install openldap-servers」でエラーになったあなたへ。

こんにちは!「LINUX工房」管理人の「リナックス先生」です。
前回は、LDAPの基礎理論(DIT、スキーマ、オブジェクトクラス)について学びました。
頭の中でツリー構造のイメージはできましたか?

さて、今回はいよいよ実機での構築に入ります。
しかし、ここで多くのエンジニアが躓く「罠」があります。
最新の RHEL 9 (Red Hat Enterprise Linux) や AlmaLinux 9、Rocky Linux 9 では、OS標準リポジトリから OpenLDAP サーバーパッケージが削除されているのです。

コウ君

先生、まさにそれで困ってました!
ネットの古い記事を見て dnf install openldap-servers って打っても「パッケージが見つかりません」って言われるんです。
ソースコードからコンパイルしないといけないんですか?
僕、make とか gcc とか苦手なんですけど……。

リナックス先生

コウ君、安心して。
本番環境でソースコンパイルは管理が大変だから推奨しないわ。
代わりに、OpenLDAPの開発元メンバーが運営している「Symas OpenLDAP」という信頼できるリポジトリを使うのが、今のプロの定石よ。
これなら dnf で管理できるし、セキュリティパッチも提供されるわ。
今日は、この最新の環境構築手順と、最初の難関である「設定変更」の作法をマスターしましょう!

本記事では、RHEL 9 / AlmaLinux 9 環境を前提に、Symas OpenLDAPのインストール、サービス起動、そして cn=config に対する管理者パスワードの設定手順を、現場レベルのノウハウを含めて徹底解説します。

🐬 OpenLDAP 基本講座 カリキュラム

  • 【第1回】LDAPの基礎理論。DIT、スキーマ、オブジェクトクラスとは?
  • 【第2回】インストールと初期設定。slapdの起動と動作確認
  • 【第3回】cn=configの正体。slapd.conf世代からの脱却
  • 【第4回】データ管理の作法。LDIFファイルとldapコマンド群
  • 【第5回】アクセス制御 (ACL)。olcAcessの読み方・書き方
  • 【第6回】セキュリティ強化。TLS/SSL化と証明書管理
  • 【第7回】レプリケーション。Syncreplによる冗長化構成
  • 【第8回】クライアント連携と運用。SSSD設定とバックアップ

第1章:RHEL9時代の選択肢。Symas OpenLDAPの導入

Red Hat社は、RHEL 8以降、OpenLDAPサーバーパッケージのサポートを終了し、独自の「389 Directory Server (Red Hat Directory Server)」への移行を促しています。
しかし、既存システムの互換性や、Ansibleなどのエコシステムとの親和性から、依然としてOpenLDAPが必要なシーンは多いです。

なぜ Symas OpenLDAP なのか?

サードパーティ製のリポジトリはいくつかありますが、Symas社はOpenLDAPプロジェクトの主要な貢献者であり、彼らが提供するパッケージは以下のメリットがあります。

  • 信頼性: 本家の開発者がビルドしているため、品質が高い。
  • 最新性: OS標準よりも新しいバージョンが使える(バグ修正が早い)。
  • 標準準拠: ディレクトリ構成などが標準的で扱いやすい。

リポジトリの追加手順

AlmaLinux 9 (または RHEL 9 / Rocky Linux 9) のターミナルで以下の作業を行います。

まず、リポジトリ設定ファイルを作成します。

# /etc/yum.repos.d/symas-openldap-rhel9.repo
[symas-openldap-release]
name=Symas OpenLDAP Release Packages for RHEL 9 - $basearch
baseurl=https://repo.symas.com/repo/gd/el9/$basearch
enabled=1
gpgcheck=1
gpgkey=https://repo.symas.com/repo/gd/el9/RPM-GPG-KEY-symas-com-el9

これで、dnf コマンドからSymas版のOpenLDAPが見えるようになります。


第2章:インストールとディレクトリ構造の理解

リポジトリの準備ができたら、パッケージをインストールしましょう。

インストールコマンド

dnf install symas-openldap-servers symas-openldap-clients

依存関係も含めてインストールされます。
※OSによっては openldap-servers という名前ではなく、symas-openldap-servers という名前になっている点に注意してください。

重要なディレクトリとファイル

インストール後、以下のパスを確認しておきましょう。
ディストリビューションやパッケージによって微妙に異なりますが、Symas版は以下のような構成になります。

パス 役割
/opt/symas/etc/openldap/slapd.d/ 設定ディレクトリ (cn=config)。最も重要。この中身を手動で編集してはいけません。
/var/symas/openldap-data/ データベースファイル (MDB) の格納場所。ユーザーデータはここに入ります。
/opt/symas/bin/ ldapsearch などのクライアントコマンド。
/opt/symas/sbin/ slapd 本体や slapadd などの管理者コマンド。

💡 プロの注意点:パスを通す
Symas版は /opt/symas/ 配下にインストールされるため、標準のパス(/usr/binなど)に入りません。
使い勝手を良くするために、環境変数を設定しておきましょう。
echo 'export PATH=$PATH:/opt/symas/bin:/opt/symas/sbin' >> ~/.bash_profile
source ~/.bash_profile


第3章:サービスの起動と動作確認

設定をいじる前に、まずは「素の状態」で起動することを確認します。

サービスの起動

systemdを使って起動します。
サービス名は slapd ではなく symas-openldap-slapd になっている場合があります(パッケージによるので確認してください)。

# サービス名の確認
systemctl list-unit-files | grep ldap

# 起動と自動起動設定
systemctl enable --now slapd  # または symas-openldap-slapd

ポートの確認

LDAPは標準で TCP 389番ポート を使用します。

ss -ltn | grep 389

LISTEN になっていれば起動成功です。

Firewallの設定

外部から接続できるようにポートを開放します。

firewall-cmd --add-service=ldap --permanent
firewall-cmd --reload

初期動作確認 (Root DSE)

サーバーが正しく応答するか、自分自身に対して検索をかけてみます。
ルートDSE(Root DSE)と呼ばれる、サーバー自身の情報を保持する特別なエントリを検索します。

ldapsearch -x -H ldap://localhost -b "" -s base namingContexts
  • -x: 簡易認証(この場合は匿名アクセス)
  • -H: 接続先URI
  • -b "": ベースDNなし(ルートDSE検索のため)
  • -s base: その階層のみ検索

エラーが出ずに namingContexts: dc=my-domain,dc=com (デフォルト値)などが表示されれば、OpenLDAPは正常に稼働しています。


第4章:管理者パスワードの設定。slappasswdとLDIF

ここからが本番です。
インストール直後のOpenLDAPは、管理者パスワードが設定されていないか、デフォルトのままです。
cn=config を操作して、設定変更用のパスワードを設定します。

1. パスワードハッシュの生成

設定ファイルに平文のパスワードを書くのは御法度です。
slappasswd コマンドを使って、ソルト付きハッシュ(SSHA)を生成します。

slappasswd
New password: (強力なパスワードを入力)
Re-enter new password: 
{SSHA}G/8Qx... (長い文字列が出力される)

この {SSHA}... の文字列をコピーしておきます。

2. LDIFファイルの作成

OpenLDAPの設定変更は、「変更内容を記述したLDIFファイル」を「ldapmodifyコマンドで流し込む」という作法で行います。
config_pw.ldif というファイルを作成します。

# config_pw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}G/8Qx... (さっきのハッシュ値)

解説:

  • dn: olcDatabase={0}config,cn=config: 変更対象の設定DBを指定しています。
  • changetype: modify: 修正モードであることを宣言。
  • replace: olcRootPW: olcRootPW(ルートパスワード)属性を置換します。

3. 設定の適用 (ldapmodify)

作成したLDIFを適用します。
この時点ではまだネットワーク経由の認証ができないため、UNIXドメインソケット経由でのOS認証(EXTERNAL認証)を使います。
つまり、「OSのrootユーザーなら、LDAPのパスワードなしで設定変更できる」という仕組みを利用します。

ldapmodify -Y EXTERNAL -H ldapi:/// -f config_pw.ldif

modifying entry "olcDatabase={0}config,cn=config" と表示されれば成功です。
これで、設定変更を行うためのパスワードが設定されました。


第5章:データベース初期設定。サフィックスの変更

次に、実際のユーザーデータを格納するデータベース(バックエンドDB)の設定を行います。
デフォルトでは dc=my-domain,dc=com などになっているサフィックス(ベースDN)を、自分の組織名(例: dc=linuxkoubou,dc=com)に変更します。

1. データベース設定変更用LDIFの作成

mdb.ldif を作成します。
ここでは、管理者DN(RootDN)と、そのパスワードも同時に設定します。

# mdb.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=linuxkoubou,dc=com
-
replace: olcRootDN
olcRootDN: cn=Manager,dc=linuxkoubou,dc=com
-
replace: olcRootPW
olcRootPW: {SSHA}G/8Qx... (データ管理者のパスワードハッシュ)

注意:

  • olcDatabase={1}mdb: 環境によっては {2}mdb の場合もあります。/opt/symas/etc/openldap/slapd.d/cn=config/ls して確認してください。
  • ハイフン -: 1つのエントリに対して複数の変更を行う場合の区切り文字です。

2. 設定の適用

ldapmodify -Y EXTERNAL -H ldapi:/// -f mdb.ldif

3. モニター設定の修正(任意)

OpenLDAPには稼働統計を見るためのモニター機能がありますが、これのアクセス権限も古いDN(my-domain)になっていることがあります。
必要に応じて修正しますが、初期構築ではスキップしても動作に影響はありません。


第6章:ログ出力設定 (rsyslog)

デフォルトでは、OpenLDAPのログは /var/log/messages に他のログと混ざって出力されるか、あるいはほとんど出力されません。
トラブルシューティングのために、専用のログファイルに出力するように設定します。

1. ログレベルの設定 (LDAP側)

LDIFを使ってログレベルを変更します。

# log.ldif
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats

stats レベルにすると、誰がいつ接続して検索したかが記録されます。
ldapmodify で適用します。

2. rsyslogの設定 (OS側)

OpenLDAPはデフォルトで local4 ファシリティを使用します。
/etc/rsyslog.d/slapd.conf を作成します。

local4.* /var/log/slapd.log

3. 設定の反映

systemctl restart rsyslog

これで、/var/log/slapd.log にLDAPの操作ログが記録されるようになります。

💡 プロのノウハウ:ログローテーション
ログファイルを分けたら、必ず logrotate の設定も行いましょう。
LDAPのログはアクセスが多いと数GB単位で肥大化し、ディスクを食いつぶす原因になります。
/etc/logrotate.d/slapd を作成し、毎日圧縮・ローテーションする設定を入れるのが鉄則です。


まとめ:まずは「起動して検索できる」ところまで

お疲れ様でした!
第2回は、Symas OpenLDAPのインストールから、管理者パスワードの設定、DBの初期設定までを行いました。

今回の重要ポイント:

  • RHEL 9系ではOS標準パッケージではなく、Symasなどの信頼できるサードパーティリポジトリを使う。
  • 設定ファイル (cn=config) は直接編集せず、必ずLDIFと ldapmodify で変更する。
  • -Y EXTERNAL -H ldapi:/// は、root権限でパスワードなしで設定変更する時の魔法の呪文。
ウィンドウズ先生

これで「空っぽのLDAPサーバー」が立ち上がりました。
しかしまだ、ユーザーもグループも入っていません。
次回は、この「設定DB (cn=config)」の仕組みをもう少し深掘りしつつ、OpenLDAPの全体像をクリアにしていきましょう。

次回、第3回は「cn=configの正体。slapd.conf世代からの脱却」です。
なぜテキストファイルの設定が廃止されたのか? 動的設定変更(Runtime Configuration)のメリットとは?
この概念を理解すれば、OpenLDAPがもっと面白くなります。お楽しみに!

▼ 実践環境を構築する ▼

AlmaLinux 9が使える
「おすすめVPS」

おすすめVPSを見る

Linuxインフラを極める
「ITエンジニア転職」

転職エージェントを見る

コメント