「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)を生成します。
![]() |
ゼロからわかるLinuxサーバー超入門 Ubuntu対応版 (かんたんIT基礎講座) 新品価格 |
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」
Linuxインフラを極める
「ITエンジニア転職」


コメント