LDAPで、アカウント情報の一元管理をしてみる。~ ここでは、マスタ・スレーブ構成で、slurpdで同期をし、TLSはローカル認証局(CA)で認証させる。 ここでは、マスタ・スレーブ構成で、slurpdで同期をし、TLSはローカル認証局(CA)で認証させる。~ マスタのホスト名はmaster.local、スレーブのホスト名はslave.localとする。 #contents *パッケージのインストール [#z06d9bc4] まずは、必要なパッケージをマスタとスレーブにインストールする。 master# apt-get install openssl ldap-utils slapd slave# apt-get install openssl ldap-utils slapd *ローカル認証局の構築と鍵の作成 [#bdc54549] 認証局と鍵の有効期限を20年(7200日)にする。 master# cp -p /usr/lib/ssl/misc/CA.pl /usr/local/sbin/ master# vi /usr/local/sbin/CA.pl $CADAYS="-days 7200"; # 20 years master# cp -p /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.org master# vi /etc/ssl/openssl.cnf default_days = 7200 ~ ローカル認証局を作る。 master# cd /etc/ssl master# /usr/local/sbin/CA.pl -newca // 不要かもしれない。 // master# cd demoCA // master# ln -s /etc/ssl/demoCA/cacert.pem /etc/ssl/demoCA/`openssl x509 -noout -hash < ./cacert.pem`.0 ~ マスタLDAPで使用する鍵を作成し、中身を確認する。CNには、アクセスするときのfqdnを指定すること。 master# cd /etc/ldap/ master# mkdir cert master# cd cert master# openssl req -new -nodes -keyout key.pem -out newreq.pem master# openssl req -in newreq.pem -text ~ マスタLDAP用の鍵をローカル認証局で認証し、中身を確認する。 master# cd /etc/ssl master# openssl ca -policy policy_match -out newcert.pem -infiles /etc/ldap/cert/newreq.pem master# openssl x509 -in newcert.pem -text ~ 認証した鍵をマスタLDAP用のディレクトリへ移動し、正当性の確認をする。 master# mv newcert.pem /etc/ldap/cert master# openssl verify -CAfile /etc/ssl/demoCA/cacert.pem /etc/ldap/cert/newcert.pem ~ スレーブLDAPで使用する鍵を作成し、中身を確認する。CNには、アクセスするときのfqdnを指定すること。 slave# cd /etc/ldap/ slave# mkdir cert slave# cd cert slave# openssl req -new -nodes -keyout key.pem -out newreq.pem slave# openssl req -in newreq.pem -text ~ スレーブLDAP用の鍵をローカル認証局で認証し、中身を確認する。 slave# scp -p /etc/ldap/cert/newreq.pem master.local: master# cd /etc/ssl master# openssl ca -policy policy_match -out slavecert.pem -infiles ~/newreq.pem master# openssl x509 -in slavecert.pem -text master# rm ~/newreq.pem ~ 認証した鍵をマスタLDAP用のディレクトリへ移動する。 master# scp -p slavecert.pem slave.local: master# rm slavecert.pem slave# mv ~/slavecert.pem /etc/ldap/cert *マスタLDAPの構築 [#m2cc0df3] 設定ファイルを更新する。 -/etc/ldap/slapd.conf (更新、追加) index entryCSN,entryUUID eq index objectClass eq,pres overlay syncprov TLSCertificateFile /etc/ldap/cert/newcert.pem TLSCertificateKeyFile /etc/ldap/cert/key.pem TLSCACertificateFile /etc/ssl/demoCA/cacert.pem -/etc/ldap/ldap.conf (追加) BASE dc=local URI ldaps://master.local TLS_CACERT /etc/ssl/demoCA/cacert.pem -/etc/default/slapd (更新) SLAPD_SERVICES="ldaps:///" *スレーブLDAPの構築 [#l16f0e12] 設定ファイルを更新する。accessディレクティブは下記のもののみとした。~ マスタからの差分は、replogfile,replicaがなくなり、updatedn,updaterefが追加となったことだけ。 -/etc/ldap/slapd.conf (更新、追加) index objectClass eq,pres index entryCSN,entryUUID eq syncrepl rid=100 provider=ldaps://master.local type=refreshOnly interval=00:00:05:00 searchbase="dc=local" bindmethod=simple binddn="cn=backup,dc=solar,dc=local" credentials=secret updateref ldaps://master.local TLSCertificateFile /etc/ldap/cert/slavecert.pem TLSCertificateKeyFile /etc/ldap/cert/key.pem TLSCACertificateFile /etc/ssl/demoCA/cacert.pem -/etc/ldap/ldap.conf (追加) BASE dc=local URI ldaps://slave.local TLS_CACERT /etc/ssl/demoCA/cacert.pem -/etc/default/slapd (更新) SLAPD_SERVICES="ldaps:///" *最後の設定 [#d2b240db] スレーブのデータはすべて削除しておいたほうが、気分的に安心。 slave# rm /var/lib/ldap/* ~ slapdの標準のファシリティはlocal4なので、これのログをとるようにしておく。 -/etc/ldap/slapd.conf (変更) loglevel 768 -/etc/rsyslog.conf (追加) local4.* /var/log/local4.log ~ いよいよ起動。マスタとスレーブのどちらから起動しても問題ないが、気分的にマスタから起動する。 master# /etc/init.d/slapd start slave# /etc/init.d/slapd start *参考 [#d7f2c4d0] http://gihyo.jp/admin/serial/01/ldap/0011~ http://www5f.biglobe.ne.jp/~inachi/openldap/admin23/index-ja.html~ http://www.atmarkit.co.jp/flinux/rensai/root02/root02a.html~ http://ukai.jp/Articles/2002/uu-ldap/account-net.html~ http://www.tom.sfc.keio.ac.jp/~torry/ldap/ldap.html~ http://d.hatena.ne.jp/Voluntas/20071001/1191214779~