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

作成日: 2014/09/25

OSSでLinuxサーバ構築

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

トップページOSSでLinuxサーバ構築 > OpenLDAP 2.4のCentOS 6.5へのインストールと初期設定
このエントリーをはてなブックマークに追加

構成

サーバ構成

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でハッシュ化します。

(1) パスワードのハッシュ化

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

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

(2) 設定ファイルの修正

 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== ←ハッシュ化したパスワードを転記

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

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

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

(4) 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

動作テスト

(1) プロセスの起動確認

 『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

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

 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)

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

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■