- 389 Directory Server
〜OSSのLDAPサーバ〜 - 389 Directory Serverは、オープンソースソフトウェアのLDAPサーバです。ここでは、特徴や機能などについてご紹介いたします。
- 389 Directory Serverのインストール
- ここでは、CentOS 8での389 Directory Serverのインストール方法を解説します。
389 Direcotry Serverは、CentOS8では389-dsという名称でパッケージが提供されています。ここでは、389 Directory Serverのインストール方法から、389 Directory Serverの初期セットアップの方法までを解説します。
CentOS 8では、389 Directory ServerをAppStreamのモジュールとして提供しています。ただし、389 Directory Serverのモジュールは、標準では有効になっていないため、最初にモジュールを有効にする必要があります。
# dnf module enable 389-ds⏎
389 Directory Serverのモジュールを有効にしたら、次のようにモジュールの状態を表示することができます。
# dnf module list 389-ds⏎ メタデータの期限切れの最終確認: 0:03:15 時間前の 2020年04月23日 15時45分56秒 に実施しました。 CentOS-8 - AppStream Name Stream Profiles Summary 389-ds 1.4 [e] 389 Directory Server (base) ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
モジュールを有効にしても、389-dsにはモジュールプロファイルが用意されていません。そのため、389 Directory Serverをインストールするためには、次のように個別にパッケージ名を指定してインストールを行う必要があります。
# dnf install 389-ds-base⏎
モジュールをインストールしたら、最初に389 Directory Serverの初期セットアップを行います。389 Directory Serverでは、設定を簡易化するためにdscreateコマンドが用意されています。以下のようにdscrate interactiveを実行すると、対話型の質問形式でセットアップを行うことができ、自動的に389 Directory Serverのインスタンスが動作するのに必要な設定ファイルが作成されます。各質問には、デフォルト値が用意されているので、特に問題なければ、そのままEnterを入力していきます。
# dscreate interactive⏎ Install Directory Server (interactive mode) =========================================== Enter system's hostname [centos81.nscg.jp]: ⏎ ← ホスト名 Use strict hostname verification (set to "no" if using GSSAPI behind a load balancer) [yes]: yes Enter the instance name [centos81w]: designet ⏎ ← インスタンス名 Enter port number [389]: ⏎ ← ポート番号 Create self-signed certificate database [yes]:⏎ ← TLS自己署名証明書を作成するか Enter secure port number [636]: ⏎ ← TLS用ポート番号 Enter Directory Manager DN [cn=Directory Manager]: ⏎ ← ディレクトリ管理者のDN Enter the Directory Manager password: ******** ← ディレクトリ管理者のパスワード Confirm the Directory Manager Password: ******** ← パスワードの再入力 Enter the database suffix (or enter "none" to skip) [dc=centos81w,dc=designet,dc=jp]: dc=designet,dc=jp ← ルートDN Create sample entries in the suffix [no]:⏎ ← サンプルのエントリを作成するか? Create just the top suffix entry [no]: yes ⏎ ← ルートDNのエントリを作成するか? Do you want to start the instance after the installation? [yes]: ⏎ ← インストール後サービスを起動するか? Are you ready to install? [no]: yes ⏎ ← インストールを行うか? Starting installation... Created symlink /etc/systemd/system/multi-user.target.wants/dirsrv@designet.service → /usr/lib/systemd/system/dirsrv@.service. ← 自動起動設定 Completed installation for designet ← インストール成功
この例では、「designet」という名称の389 Directory Serverのインスタンスを作成しました。複数のインスタンスを作成したい場合には、同じ手順でインスタンスを追加することが可能です。
systemctlコマンドを使って、389 Directory Serverを起動します。389 Directory Serverのサービス名は、dirsrv@<instance>.serviceとなります。
# systemctl start dirsrv@designet.service⏎
CentOS版の389 Directory Serverには、GUI管理画面が付属していません。そのため、OpenLDAPなどと同様にリモートからLDAPサーバにアクセスして、データの追加、更新、削除、検索を行います。データ管理には、ldapadd、ldapmodify、ldapdelete、ldapsearchなどのLDAPツールを使います。CentOSでは、LDAPツールにはOpenLDAPを採用しています。次のように、LDAPクライアントをインストールします。
# dnf install openldap-client⏎
389 Directory Serverは、OpenLDAPと同様にLDAP手順を使って、リモートから接続して設定を変更することができます。設定は、cn=configというエントリに保管されています。
$ ldapsearch -LLL -x -D "cn=Directory Manager" -b cn=config -s base -W⏎ Enter LDAP Password: ********* ⏎ ← ディレクトリ管理者のパスワード dn: cn=config cn: config objectClass: top objectClass: extensibleObject objectClass: nsslapdConfig nsslapd-backendconfig: cn=config,cn=userroot,cn=ldbm database,cn=plugins,cn=co nfig nsslapd-betype: ldbm database nsslapd-privatenamespaces: cn=schema :
例えばアクセスログのログレベルを調整する場合には、次のようなLDIFファイルを用意します。
loglevel.ldif
dn: cn=config changetype: modify replace: nsslapd-accesslog-level nsslapd-accesslog-level: 512
次のようにldapmodifyを使って設定を変更することができます。
$ ldapmodify -D "cn=Directory Manager" -W -f accesslog-level.ldif⏎
デージーネットは、秀和システムから発行されているサーバ構築ガイドシリーズの執筆に参加しています。「入門LDAP/OpenLDAP ディレクトリサービス導入・運用ガイド」では、389 Direcotry Serverを使ったLDAPサーバの構築方法や管理方法について、詳しく解説しています。
389 Directory Serverはオープンソースのディレクトリサーバです。OpenLDAPサーバに替わるLDAPソフトウェアとして注目されています。本書では、389 Directory Serverのインストールや基本的な管理方法を紹介しています。
LDAPとは、ディレクトリサービスのための標準プロトコルです。LDAPを使い、ディレクトリサービスを提供するソフトウェアやシステムを、LDAPサーバと呼びます。本書は、OSSのLDAPサーバの管理UIの現状についてまとめたものです。
デージーネットでケーブルテレビの契約ユーザ向けのLDAPサーバのリプレースを行いました。これまで使用してきた389 Directory ServerからOpenLDAPへリプレースしようとしましたが、設定上、うまくいかないことがあり、新サーバでも389 Directory Serverを採用することになりました。旧389 Directory Serverで利用していたLDAPのデータもすべて移行しました。
389 Directory Serverは非常に多機能ですが、その分設定が複雑で難しいです。Linuxシステムのサーバ管理用WebインタフェースのCockpitと連携させることで、389dsサーバの管理をWeb UIから行えるようになります。もともと日本語には対応していませんでしたが、デージーネットでは、日本語化を行いました。
OpenLDAPは、多くの企業でユーザデータの管理などに広く利用されています。389 Directory Serverと共通点が多く機能的に似ている部分もあります。しかしOpenLDAPは英語にしか対応しておらず、管理ツールがないといった違いがあります。
LDAPサーバは、企業内では特にユーザ情報の管理や認証の基盤として使用されています。しかし、OSSのLDAPサーバのソフトウェアには、LDAPのデータを管理するためのGUIが付属しておらず、標準ではコマンドラインの操作が必要です。ここでは、LDAPサーバのデータを管理するためのOSSを紹介します。