LDAPで、アカウント情報の一元管理をしてみる。
ここでは、マスタ・スレーブ構成で、slurpdで同期をし、TLSはローカル認証局(CA)で認証させる。
マスタのホスト名はmaster.local、スレーブのホスト名はslave.localとする。
まずは、必要なパッケージをマスタとスレーブにインストールする。
master# apt-get install openssl ldap-utils slapd slave# apt-get install openssl ldap-utils slapd
認証局と鍵の有効期限を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
マスタ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
設定ファイルを更新する。
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
BASE dc=local URI ldaps://master.local TLS_CACERT /etc/ssl/demoCA/cacert.pem
SLAPD_SERVICES="ldaps:///"
設定ファイルを更新する。accessディレクティブは下記のもののみとした。
マスタからの差分は、replogfile,replicaがなくなり、updatedn,updaterefが追加となったことだけ。
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
BASE dc=local URI ldaps://slave.local TLS_CACERT /etc/ssl/demoCA/cacert.pem
SLAPD_SERVICES="ldaps:///"
スレーブのデータはすべて削除しておいたほうが、気分的に安心。
slave# rm /var/lib/ldap/*
slapdの標準のファシリティはlocal4なので、これのログをとるようにしておく。
loglevel 768
local4.* /var/log/local4.log
いよいよ起動。マスタとスレーブのどちらから起動しても問題ないが、気分的にマスタから起動する。
master# /etc/init.d/slapd start slave# /etc/init.d/slapd start
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