オープンソース

サーバー構築のデージーネットTOP > OSS情報 > OSS紹介 > OpenLDAP〜OSSのLDAPサーバ〜 > OpenLDAPサーバ インストール・構築方法

OpenLDAPサーバ インストール・構築方法

RedHat Enterprise Linux、CentOS、Debian、UbuntuなどのLinuxディストリビューションでは、OpenLDAPはパッケージとして提供されています。しかし、最近のOpenLDAPは、各ディストリビューションが採用しているバージョンよりも改良されていて、バックエンドのデータベースもより高速なものに置き換えられています。ここでは、ソースコードからのインストール方法について解説します。

OpenLDAPのソースコードのダウンロード

OpenLDAPのソースコードは、次のURLからダウンロードできます。

http://www.openldap.org/

ソースコードをダウンロードしたら、展開します。

$ tar xvzf openldap-2.4.45.tgz ⏎

LDAPサーバのコンパイルとインストール

展開したディレクトリに移動します。

$ cd openldap-2.4.45 ⏎

configureを実行します。

$ ./configure --with-tls -enable-crypt --with-cyrus-sasl -enable-rwm --enable-monitor=no ⏎

最初にmake dependを実行します。

$ make depend ⏎

コンパイルします。

$ make ⏎

正常にコンパイルできたらインストールします。

# su ⏎
Passowrd: ********** ⏎
# make install ⏎

LDAPサーバの初期設定

slapd.confファイルに初期設定を行います。suffix、rootdnは、実際の組織に合わせて設定します。次は、その設定例です。

/usr/local/etc/openldap/slapd.conf

include         /usr/local/etc/openldap/schema/core.schema

pidfile         /usr/local/var/run/slapd.pid
argsfile        /usr/local/var/run/slapd.args

database        config
rootdn          cn=admin,cn=config
access  to *
        by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage
        by * break

database        mdb
maxsize		1073741824
suffix          "dc=designet,dc=jp"
rootdn          "cn=Manager,dc=designet,dc=jp"
rootpw          {SSHA}A/9vWhXE6Fk7wWI0iwQJDnr8QgOqKayF
directory       /usr/local/var/openldap-data

index   objectClass     eq

rootpwは、slappasswdコマンドで作成します。

# slappasswd ⏎
New password: ******** ⏎
Re-enter new password: ******** ⏎
{SSHA}A/9vWhXE6Fk7wWI0iwQJDnr8QgOqKayF

設定ファイルを元に、初期設定ディレクトリを作成します。

# cd /usr/local/etc/openldap ⏎	← ディレクトリを移動
# mkdir slapd.d ⏎	← 設定ディレクトリを作成
# slaptest -f slapd.conf -F slapd.d -u ⏎	← 設定を変換

LDAPサービス起動設定

systemdからLDAPサービスを起動するためのユニットファイルを作成します。

/usr/lib/systemd/system/slapd.service

[Unit]
Description=OpenLDAP server
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/usr/local/var/run/slapd.pid
ExecStart=/usr/local/libexec/slapd -h "ldap:/// ldapi:///"
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target

ユニットファイルを作成したら、systemdに変更を通知します。

# systemctl daemon-reload ⏎

LDAPサービスの起動

systemctlコマンドを使って、LDAPサーバを起動します。

# systemctl start slapd.service ⏎

パケットフィルタリングの設定

パケットフィルタリングの設定を変更し、LDAPポートへの通信を許可します。

# firewall-cmd --add-service=ldap ⏎

LDAP DITの登録

LDAPサーバに作成するDITに合わせて、基本データを登録します。最低限、rootdnとDITのトップディレクトリの設定が必要です。

init.ldif

dn: dc=designet,dc=jp
objectClass: organization
objectClass: dcObject
o: DesigNET, INC.
dc: designet

dn: cn=Manager,dc=designet,dc=jp
objectClass: organizationalRole
cn: Manager

LDAPユーティリティコマンドを使って、データを登録します。

$ ldapadd -x -D "cn=Manager,dc=designet,dc=jp" -W -f init.ldif ⏎
Enter LDAP Password: ******** ⏎
adding new entry "dc=designet,dc=jp"

adding new entry "cn=Manager,dc=designet,dc=jp"

やっておいた方が良い設定

syslog設定

LDAPサーバのログは、標準ではlocal4のファシリティでsyslogに出力されます。そのため、ログが記録されるようにrsyslogの設定を変更しておきます。

/etc/rsyslog.conf

local4.*                                /var/log/slapd

ログレベルの変更

LDAPサーバ側には、出力するログのレベルを設定します。

loglevel.ldif

dn: cn=config
changetype: modify
replace: olclogLevel
olcLogLevel: filter config ACL stats
# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f loglevel.ldif ⏎
modifying entry "cn=config"

入門LDAP/OpenLDAP 第3版

2017年11月に発売された第3版です。OpenLDAP2.4の入門書としてGUIを使った管理の解説が充実しました。また、Radiusとの連携、LDAPプログラミングの事例、Microsoft Active Directoryなど、さらに内容が充実しています。本ページは、「入門LDAP/OpenLDAP 第3版」に記載した内容の要約です。LDAPは用語や概念が難しく、体系的に学ぶべき技術分野です。より詳しい情報が必要な場合には、ぜひ書籍をご参照下さい。

OSS情報「OpenLDAP」

OpenLDAP〜OSSのLDAPサーバ〜
OpenLDAPは、OSSのLDAPサーバソフトウェアです。ここでは、OpenLDAPに対するデージーネットの取り組みなどを紹介します。
LDAPサーバ(slapd)
LDAPサーバ(slapd)は、OpenLDAPに付属するLDAPサーバのソフトウェアです。インターネット上で広く利用されてます。LDAPプロトコル Version 2、Version 3に対応したLDAPサーバです。
LDAPサーバ(slapd)の冗長化と拡張機能
LDAPサーバ(slapd)は、様々な用途で利用できるLDAPサーバです。ここでは、LDAPサーバ(slapd)のシステム構成や拡張APIについて紹介します。
LDAPユーティリティコマンド
OpenLDAPには、LDAPユーティリティが付属しています。ここでは、主なLDAPユーティリティの概要を紹介します。
LDAPをGUIで管理するツール
OpenLDAPに付属するLDAPサーバ管理コマンドは、非常に柔軟で便利です。ここでは、用途に合わせたGUI管理ツールを紹介します。
LDAPサーバの連携
LDAPサーバは、様々なアプリケーションと連携することができます。ここでは、デージーネットがLDAPサーバと連携した実績のあるアプリケーションを紹介します。
OpenLDAPサーバ インストール・構築方法
RedHat Enterprise Linux、CentOS、Debian、UbuntuなどのLinuxディストリビューションでは、OpenLDAPはパッケージとして提供されています。ここでは、ソースコードからのインストール方法について解説します。
連携アプリケーションの設定
ここでは、連携するアプリケーションのいくつかについて、設定方法の要約を紹介します。
LDAP管理GUIのインストール
ここでは、phpLDAPadminなどのLDAP管理GUIのインストール方法を解説します。

OpenLDAPによるLDAPサーバのマルチマスタ構成

OSSのLDAPサーバ「OpenLDAP」のミラーモードでLDAPサーバを二重化しました。認証システムの冗長構成が求められていましたが、冗長化ソフトウェアの導入はコスト面で問題がありました。OpenLDAPの柔軟性を活用し、OpenLDAP標準機能であるミラーモードを使う事で、特別な冗長化ソフトウェアを使わずに、LDAPサーバを冗長化しました。

OpenLDAPによるLDAPサーバのユーザ統合管理システム

リモートアクセスの管理などで利用しているLDAPサーバをリプレースしました。これまで利用してきた製品のディレクトリサーバから、OSSのLDAPサーバであるOpenLDAPへ移行することでライセンス費用を抑え、代わりにLDAPサーバを冗長化することができました。

LDAPサーバ冗長化

LDAPサーバをサービス無停止で提供するため、PacemakerとDRBDを利用したHAクラスタでLDAPサーバを構築しました。高信頼性、高可用性が求められる大規模メールシステムのユーザ管理用LDAPサーバを、Linuxクラスタにより構築しました。

OpenLDAP最新版のインストールの先頭へ