389 Directory Server 構築手順 ~初級編~
schedule 2020/06/05 refresh 2023/11/08
はじめに
長らく業界標準だったLDAPサーバーだったOpenLDAPはRHEL 8では正式サポートされず、代わりに389 Directory Server(以下389-ds)がフリーのLDAPサーバーとしてRHEL 8に搭載されるようになりました。
今回は389-dsの構築手順を記述したいと思います。
環境
OS: CentOS Linux 8.1.1911
389-dsのインストール
RHEL 8 では Modularity というモジュール管理が採用されていて、通常のOSアップデートとアプリケーションのライフサイクルが独立しています。
Modularity で管理しているモジュールとそのバージョンは、以下のようにして表示します。
# dnf module list CentOS-8 - AppStream Name Stream Profiles Summary 389-ds 1.4 [d] 389 Directory Server (base) ant 1.10 [d] common [d] Java build tool :: :: |
389-dsをインストールするにはまず、まず有効化する必要があります。
通常はバージョンを指定して有効化するのですが、389-ds は現状 1.4 のみ提供しているのでバージョン指定を省略できます。
# dnf module enable 389-ds |
有効化した後は普通にdnfを使って389-dsのインストールを行います。
# dnf install 389-ds-base |
次に 389-ds 管理ツールをインストールします。
# dnf install 389-ds-base-legacy-tools |
389-dsの設定
389-dsの初期設定を行います。
# setup-ds.pl |
============================================================================== This program will set up the 389 Directory Server. It is recommended that you have "root" privilege to set up the software. Tips for using this program: - Press "Enter" to choose the default and go to the next screen - Type "Control-B" or the word "back" then "Enter" to go back to the previous screen - Type "Control-C" to cancel the setup program Would you like to continue with set up? [yes]: |
[yes]を入力し初期設定を継続します。
============================================================================== Choose a setup type: 1. Express Allows you to quickly set up the servers using the most common options and pre-defined defaults. Useful for quick evaluation of the products. 2. Typical Allows you to specify common defaults and options. 3. Custom Allows you to specify more advanced options. This is recommended for experienced server administrators only. To accept the default shown in brackets, press the Enter key. Choose a setup type [2]: |
デフォルトの[2]を選択します。
============================================================================== |
コンピューター名を設定します。今回はデフォルトのまま設定します。
============================================================================== |
389-dsデーモンの実行ユーザーとグループを指定します。こちらもデフォルトのまま設定します。
============================================================================== |
ポートを設定します。デフォルトのまま設定します。
============================================================================== |
389-dsのIDを指定します。ここも特に問題がないのでデフォルトのまま設定します。
============================================================================== |
LDAPサーバーのベースDNを設定します。
============================================================================== |
LDAPサーバーの管理者ユーザを設定します。
Password: |
LDAPサーバーの管理者ユーザのパスワードを設定します。
389-dsを起動します。
dirsrv@389ds の@より後ろには、上記で設定した Directory server identifier を指定します。
# systemctl start dirsrv@389ds |
起動に成功したなら、以下のコマンドで接続テストを行います。
# ldapsearch -x -H ldap://localhost -D cn=Manager,dc=secioss,dc=co,dc=jp -W -b dc=secioss,dc=co,dc=jp |
TLS/SSLの設定
ldaps通信が行えるように設定します。
まずサーバー証明書(PKCS12)を作成します。
ここでは自己署名証明書を使用します。
# openssl genrsa 2048 > server.key |
PKCS12ファイルのExport Passwordには適当な値を設定します。
389-dsの証明書ストアに作成したサーバー証明書をインポートします。
# pk12util -i server.p12 -d /etc/dirsrv/slapd-389ds |
初回接続時は証明書ストアのPINを登録する必要があります。
Enter a password which will be used to encrypt your keys. |
そのままPKCS12ファイルのExport Passwordを入力し、証明書の登録を行います。
Enter password for PKCS12 file: |
証明書ストアに無事登録出来ているか確認をおこないます。
certutil -d /etc/dirsrv/slapd-389ds -L |
正しく登録できたのなら、以下のように表示されるはずです。
Certificate Nickname Trust Attributes |
次に、証明書ストアのPINファイルを作成します。
このPINファイルを作っておかないと、デーモン起動時に証明書ストアのPINを入力しなければなりません。
vi /etc/dirsrv/slapd-389ds/pin.txt |
Internal (Software) Token:password |
次に ldaps を有効化するためのldifファイルを作成します。
ldaps.ldif |
dn: cn=config |
ldapmodifyコマンドを使用し、作成したldifを反映させます。
ldapmodify -x -H ldap://localhost -D cn=Manager,dc=secioss,dc=co,dc=jp -W -f ldaps.ldif |
389-dsを再起動します。
# systemctl restart dirsrv@389ds |
ldapsでの接続確認をします。
# ldapsearch -x -H ldaps://localhost -D cn=Manager,dc=secioss,dc=co,dc=jp -W -b dc=secioss,dc=co,dc=jp |
Idapsearchに成功したなら、構築は正常に終了しています。
※ ldapsearch で TLS/SSL が行えないなら /etc/openldap/ldap.conf ファイルに TLS_REQCERT never を追加して証明書の検証を無効化してください。
以上で、389-dsの構築~初級編~は終了です。