CentOS-6.xのLDAP認証環境のSSL/TLS化 [CentOS]
(LDAP 環境の構築手順は、こちらを参照。)
LDAP クライアントの設定に予想外の時間を要してしまったが、どうにか実現できた。
以下は、実施した手順をまとめたものである。
なお、使用するソフトウェアのバージョンは、下記の通りである。
【ソフトウェアのバージョン】
・OS: CentOS 6.4
・apr-util-ldap-1.3.9-3.el6_0.1.i686
・nss-pam-ldapd-0.7.5-18.1.el6_4.i686
・openldap-2.4.23-32.el6_4.1.i686
・openldap-clients-2.4.23-32.el6_4.1.i686
・openldap-servers-2.4.23-32.el6_4.1.i686
・pam_ldap-185-11.el6.i686
1. CA の構築、およびサーバー証明書の作成
プライベート CA を構築し、LDAP サーバー用のサーバー証明書を作成する。
(プライベート CA でのサーバー証明書の発行手順は、こちらを参照。)
また、作成された各ファイルを、下記にコピーする。
(ldap ユーザーが参照できること。)
CA のルート証明書: /etc/openldap/cacerts/cacert.pem LDAP サーバーのサーバー証明書: /etc/openldap/certs/server.crt LDAP サーバーの秘密鍵: /etc/openldap/certs/server.key
2. LDAP サーバーの設定
(1) /etc/sysconfig/ldap の編集
(編集前) SLAPD_LDAP=yes SLAPD_LDAPS=no (編集後) SLAPD_LDAP=no SLAPD_LDAPS=yes
(2) /etc/openldap/slapd.conf の編集
下記の設定を行う。
TLSCACertificatePath /etc/openldap/cacerts TLSCertificateFile /etc/openldap/certs/server.crt TLSCertificateKeyFile /etc/openldap/certs/server.key
(3) /etc/openldap/slapd.conf のチェック
# slaptest -u -f /etc/openldap/slapd.conf -v
(4) /etc/openldap/slapd.d の更新
/etc/openldap/slapd.conf の設定を反映するため、下記の手順を実行する。
# cd /etc/openldap # rm -fr slapd.d/* # slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d # chown -R ldap:ldap /etc/openldap/slapd.d
(5) /etc/openldap/ldap.conf の編集
(a) 下記の設定を追加する。
TLS_REQCERT allow
(b) 下記の変更を行う。
URI の指定で使用するプロトコルを ldap から ldaps に変更する。
(6) LDAP サーバーの再起動
# /etc/init.d/slapd restart
3. LDAP クライアントの設定
(1) /etc/openldap/ldap.conf の編集
(a) 下記の設定を追加する。
TLS_REQCERT allow
(b) 下記の変更を行う。
URI の指定で使用するプロトコルを ldap から ldaps に変更する。
(2) authconfig-tui コマンドの実行
# authconfig-tui 【認証の設定】 ・[Use LDAP] にチェックを入れる。 ・[Use LDAP Authentication] にチェックを入れる。 ・[Next] を選択する。 【LDAP設定】 ・[Use TLS] にチェックを入れない。 … (注1) ・Server: の項のプロトコルを ldaps に変更する。 ・[OK] を選択する。 (注1) チェックを入れると、LDAP サーバーに接続できない状態となってしまう。 チェックの有無による /etc/nslcd.conf の差違は、下記の通りである。 ・有の場合: ssl start_tls ・無の場合: ssl no
(3) /etc/nslcd.conf の編集
下記の設定を追加する。
tls_reqcert allow
(4) nslcd の再起動
# /etc/init.d/nslcd restart
4. TLS/SSL 化されたことの確認
(1) tcpdump で受信ポートを指定して受信データの有無を確認する。
(a) 下記の条件を満たすデータが存在することを確認する。
# tcpdump port ldaps -i lo -X -s 1024 または # tcpdump port ldaps -i eth0 -X -s 1024
(b) 下記の条件を満たすデータが存在しないことを確認する。
# tcpdump port ldap -i lo -X -s 1024 または # tcpdump port ldap -i eth0 -X -s 1024
5. 備考
(1) slapd と nslcd の起動/停止の順序
slapd、nslcd の順に起動する。
停止は、その逆順で行う。
コメント 0