OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

OpenLDAP 2.4のCentOS 6.5へのインストールと初期設定

カテゴリ:OSSセットアップ | ソフトウェア:OpenLDAP | タグ:
最終更新日:2020/11/27 | 公開日:2014/09/25

目次

構成

サーバ構成

OSバージョン

CentOS 6.5 x86_64

パッケージ一覧

portreserve-0.0.4-9.el6.x86_64.rpm ・・・openldap-serversが依存
openldap-servers-2.4.23-32.el6_4.1.x86_64.rpm ・・・OpenLDAPサーバ本体
openldap-clients-2.4.23-32.el6_4.1.x86_64.rpm ・・・ldapsearch等のコマンドを提供

環境構築

インストール

 OpenLDAPサーバに必要なパッケージ2つをインストールします。 また、LDAPを操作(検索、追加、削除など)するためのコマンドラインユーティリティ (クライアント)のパッケージ1つをインストールします。 DVDドライブにCentOS 6.5のDVD-ROMをセットし、以下のコマンドを実行します。

# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/Packages/
# rpm -ihv portreserve-0.0.4-9.el6.x86_64.rpm
準備中...                ########################################### [100%]
   1:portreserve            ########################################### [100%]
# rpm -ihv openldap-servers-2.4.23-32.el6_4.1.x86_64.rpm
準備中...                ########################################### [100%]
   1:openldap-servers       ########################################### [100%]
# rpm -ihv openldap-clients-2.4.23-32.el6_4.1.x86_64.rpm
準備中...                ########################################### [100%]
   1:openldap-clients       ########################################### [100%]
# cd /
# umount /media/cdrom

設定

 インストール後に最低限必要な設定としてデータベースの設定を行います。 データベースにはデフォルトのbdbを利用します。 データベース管理者のDN(識別名)は『dc=ranonet,dc=net』とし、 検索のベースとなるルートDNは『cn=Manager,dn=ranonet,dn=net』とします。 また、管理者のパスワードは『password』とし、MD5でハッシュ化します。

パスワードのハッシュ化

 まずはパスワードをハッシュ化します。標準出力に表示されたハッシュ化された文字列は 設定ファイルに転記するのでコピーしておきます。

# slappasswd -s password -h {MD5}
{MD5}X03MO1qnZdYdgyfeuILPmQ==

設定ファイルの修正

 OpenLDAP 2.3からConfiguration Backendという機能がサポートされ、 これまでslapd.confに書いていた設定をデータベースに格納して 管理できるようになりました。 この機能により設定変更後のOpenLDAPサーバの再起動が必要なくなったり、 リモートから設定を変更できるようになりました。 ただし、Configuration Backend機能を利用せず、従来のslapd.confファイルに 設定を記述して管理することも可能です。

 Configuration Backend機能はサーバメンテナンスで停止することが許容されないシステムにおいては 便利だと思うのですが、私がまだ設定方法をマスターできていないので、 今回はslapd.confで設定を行うことにします。 CentOS 6.5のOpenLDAP 2.4ではslapd.confファイルが標準でインストールされなくなりました。 そこでサンプルファイルをコピーして作成します。 サンプルファイルは「/usr/share/openldap-servers/slapd.conf.obsolete」です。 ファイル名に「obsolete」が付いていますが、これは「すたれた、もはや用いられない」という意味があります。

# cd /etc/openldap/
# cp -piv /usr/share/openldap-servers/slapd.conf.obsolete ./slapd.conf
`/usr/share/openldap-servers/slapd.conf.obsolete' -> `./slapd.conf'
# vi slapd.conf
ファイル名:/etc/openldap/slapd.conf
※コメントは省略しています※
※以下、ファイル内に追記※
TLSCACertificatePath /etc/openldap/certs
TLSCertificateFile "\"OpenLDAP Server\""
TLSCertificateKeyFile /etc/openldap/certs/password
access to attrs=userPassword
        by self write
        by anonymous auth
        by * none
access to *
        by self write
        by * read
database config

※以下、該当箇所のみ変更※
suffix          "dc=my-domain,dc=com"
checkpoint      1024 15
rootdn          "cn=Manager,dc=my-domain,dc=com"
   ↓変更
suffix          "dc=ranonet,dc=net"
checkpoint      1024 15
rootdn          "cn=Manager,dc=ranonet,dc=net"
rootpw          {MD5}X03MO1qnZdYdgyfeuILPmQ== ←ハッシュ化したパスワードを転記

LDAPサーバの起動オプション

 インストール後の状態では slapd.conf を読み込んで起動する設定になっていないので、 起動オプションとして設定します。

# cd /etc/sysconfig/
# vi ldap
ファイル名:/etc/sysconfig/ldap
※該当箇所を修正※
#SLAPD_OPTIONS=
   ↓変更
SLAPD_OPTIONS="-f /etc/openldap/slapd.conf"

LDAPサーバの自動起動設定

 インストール後の状態ではOpenLDAPサーバが自動起動する設定になっていないので、 Linuxの起動時にslapdデーモン(OpenLDAPサーバのデーモン)を自動起動するように変更します。

# chkconfig --list slapd
slapd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
# chkconfig slapd on
# chkconfig --list slapd
slapd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

 設定が完了したのでLDAPサーバを起動します。

# service slapd start
slapd を起動中:                                            [  OK  ]

設定ファイル

 /etc/openldap/slapd.conf
 /etc/sysconfig/ldap

動作テスト

プロセスの起動確認

 『slapd』プロセスが起動していることを確認します。

# ps -ef | grep slapd
ldap      8796     1  0 03:43 ?        00:00:00 /usr/sbin/slapd -h  ldap:/// ldapi:/// -u ldap -f /etc/openldap/slapd.conf
root      8811  7302  0 03:45 pts/1    00:00:00 grep slapd

クライアントからの接続確認

 ldapsearch コマンドを利用して簡易認証でアクセスできることを確認します。

# ldapsearch -x -LLL -D 'cn=Manager,dc=ranonet,dc=net' -W -b 'dc=ranonet,dc=net' '(objectClass=*)'
Enter LDAP Password:  ←パスワードを入力(表示されない)
No such object (32)

 現時点ではまだエントリを登録していないため、一致するオブジェクトは表示されません。