URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

「389 Directory Server」のインストール

 仕事で久々にLDAPサーバを構築することになりました。
 ただ、最近のRed Hat Enterprise Linuxでは使い慣れたOpenLDAPがサポートされていないという事情もあり、業務上サポートは必須なのでRed Hat Directory Serverを使うことに。
 一応、OSS版の389 Directory Serverは使ったことがあるのですが、こちらも触るのはかなり久しぶりなので、リハビリ兼ねてお勉強中です。

 長いので何回かに分けて、まずは基本的なインストールからインスタンスの作成まで。

環境

 前提として、OSは「Red Hat Enterprise Linux 9(RHEL 9)」を使います。
 RHEL9のライフサイクルポリシーだと偶数のマイナーリリースだとExtended Update Supportがあるので、今回は"9.2"とします。

 続いて「Red Hat Directory Server(RHDS)」のリースノートを見ると、RHELのリリースと1対1の関係になっているようなので、RHEL 9.2に合わせて"12.2"とします。

 RHDSは2台でレプリケーション構成にするので、サーバ2台を準備します。
 ここでは以下のようにしました。

ホスト名FQDNIPアドレス
ds-1ds-1.example.com172.16.11.51
ds-2ds-2.example.com172.16.11.52

インストール

 RHELのインストールと初期設定は省略。テスト環境では最小構成でインストールして、いくつかパッケージを追加しています。

 ここから少しRHELやRHDS固有の手順。AlmaLinux等のフリーなものなら無視してください。
 RHEL環境だとレポジトリへアクセスするためサブスクリプションへの登録が必要なので、これをやっておきます(手順省略)。当然ですが、RHDSのサブスクリプションも購入して使えるようになっている必要があります。

 前述のようにRHELのリリースは"9.2"にするので、"dnf update"の時にリリースが最新にならないよう固定しておきます。

# subscription-manager release --set=9.2

 続いてRHDSのレポジトリを有効にしますが、レポジトリ名にリリース番号が入っているので注意します。
 これも前述の通り"12.2"とします。

# subscription-manager repos --enable=dirsrv-12.2-for-rhel-9-x86_64-rpms

 レポジトリが有効になったら"dnf"でパッケージをインストールします。
 RHDSは"redhat-ds"といモジュールにまとめられています。

# dnf module install redhat-ds:12

 これでパッケージのインストールは完了です。
 ちなみに、インストールされた"389-ds-base"のバージョンは"2.2.7"でした。
 RHEL/RHDS固有の内容はここまで。OSS版なら"389-ds"という名称で提供されているので、それをインストールすればよい。

インスタンスの作成

 2台ともパッケージを入れたらインスタンスの作成を実施します。
 いくつかやり方はあるのですが、ここでは設定ファイルから作成する方法を取ります。

 まず、設定ファイルのテンプレートを次のコマンドで作成します。

# dscreate create-template /root/instance_name.inf

 テンプレートファイル"instance_name.inf"が作成されたら、このファイルを編集します。
 変更するパラメータの行頭にある";"を削除し、必要に応じてパラメータを修正します。
 後でレプリケーションするため、固有の値が必要な箇所以外はパラメータを揃えておきます。
 以下は今回変更した箇所のみ記載しています。

full_machine_name = ds-1.example.com instance_name = localhost port = 389 root_password = password secure_port = 636 self_sign_cert = True self_sign_cert_valid_months = 120 create_suffix_entry = True enable_replication = True replica_binddn = cn=replication manager,cn=config replica_bindpw = secret replica_id = 1 replica_role = supplier suffix = dc=example,dc=com
パラメータ説明備考
full_machine_nameホスト名(FQDN)サーバごとに固有の値
instance_nameインスタンス名
portLDAPのTCPポート
root_password"Directory Manager"のパスワード
secure_portLDAPSのTCPポート
self_sign_cert自己署名証明書を使うか
self_sign_cert_valid_months自己署名証明書の有効期間単位は月
create_suffix_entry接尾辞のルートエントリーを作成するか
enable_replicationレプリケーションを有効にするか
replica_binddnレプリケーション用DN
replica_bindpwレプリケーション用DNのパスワード
replica_idレプリケーションIDサーバごとに固有の値
replica_roleレプリケーションの役割
suffix接尾辞

 LDAPSは自己署名証明書を使って有効にします。
 また、最近のバージョンではここでレプリケーション機能も有効にしておけるので、関連パラメータも含めて有効にしています。

 設定ファイルの準備ができたら、次のコマンドでインスタンスを作成します。

# dscreate from-file /root/instance_name.inf

 エラーにならずインスタンスの作成が完了したら、ファイアウォールや自動起動の設定をしておきます。

# firewall-cmd --permanent --add-service={ldap,ldaps}
# firewall-cmd --reload
# systemctl enable dirsrv.target

 2台ともここまでできたらインスタンスの作成は完了です。

Cockpitの有効化

 RHDS/389-dsではCockpitに統合されたWeb UIが提供されています。
 必須ではないですが、ちょっとした操作をしたい時や運用者がCLIに不慣れだったりする場合に便利です。
 "cockpit-389-ds"パッケージがインストール済みであれば、以下のコマンドでCockpitを有効にして利用が可能です。

# systemctl start cockpit.socket
# systemctl enable cockpit.socket

cockpit-389-ds

 Cockpitへのアクセスは"https://<サーバのIPアドレス/ホスト名>:9090"です。
 RHEL 9.2だとデフォルトでは"root"ユーザーでCockpitにログインできないので、おすすめはしませんがどうしてもという場合は"/etc/cockpit/disallowed-users"ファイルから"root"を削除してください。

 今回はここまで。(次へ続く)