トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-OpenLDAP 2.3のLDAP経由の設定を使う

技術的雑談-OpenLDAP 2.3のLDAP経由の設定を使う


 環境

  • CentOS 5.2
  • OpenLDAP 2.3.27 (CentOS 5.2標準)

 目的

  • OpenLDAP 2.3のLDAP経由の設定を使えるようにする

  内容


OpenLDAPのInstall


おもいっきり省略。
技術的雑談-OpenLDAPを立ち上げてみるを参照。

設定保存のディレクトリを作成


CentOS5.2の場合、OpenLDAPのデーモン(slapd)の設定ファイルは/etc/openldap/slapd.confにあるが、
同じディレクトリに「slapd.d」というディレクトリを作成する。

このディレクトリがないとLDAP経由で行われた設定がメモリ上でしか反映されず、保存されないらしい。
さらに、slapdのユーザ権限(CentOS5.2の場合は「ldap」ユーザ)でディレクトリ内に書き込み権限がないとダメっぽい。

# mkdir /etc/openldap/slapd.d
# chown ldap:ldap /etc/openldap/slapd.d

設定ファイル編集


/etc/openldap/slapd.confの最後に以下の3行を追加する。

database        config
rootdn          cn=config
rootpw          {SSHA}Um+mHLNo3Wht1TEiVuFzpsKOxxxxxxxx ← slappasswd -s なんとか で作ったパスワードハッシュ

さらに、slapd.confの内容を元にslapd.dディレクトリの中身の初期状態(?)を作る。

# su -c 'slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d' ldap

config file testing succeeded

そうすると、/etc/openldap/slapd.d以下にファイルが作成される。

# ls -la
合計 8
drwxr-x--- 3 root root 4096  4月  8 15:03 cn=config
-rw------- 1 root root  941  4月  8 15:03 cn=config.ldif

これらのファイルのパーミッションをldapユーザで読み書き可能なように変更しておく。
(そうしないと起動時に警告が出る。)

# chown -R ldap:ldap /etc/openldap/slapd.d

さらに、

CentOS(RedHat系?)の場合、service〜でslapdを起動すると、「slapd.d」ディレクトリを使用するコマンドラインオプションがそのままでは使われないので、コマンドライン引数を渡してやる必要がある。

具体的には、/etc/sysconfig/ldapというファイルを作成し、以下の内容を記述する。
(root権限で読めればOK。)

SLAPD_OPTIONS='-f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d'

(これに気がつかずにかなりハマった!!!!!!!!!)

ちなみに、設定が正しく行われていると、service ldap startした後に/var/run/openldap/slapd.argsの内容が、

/usr/sbin/slapd -h ldap:/// -u ldap -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 

になっているが、OS Defaultのまま(=/etc/sysconfig/ldapファイルを作らない)場合、

/usr/sbin/slapd -h ldap:/// -u ldap

になっており、slapdにslapd.dディレクトリの存在が渡っていないことがわかる。

slapd起動


# service ldap start
または
# service ldap restart

接続


コマンドラインから接続してみる。

# ldapsearch -x -D cn=config -w hogehoge -b cn=config

何やらエントリーがたくさん表示されれば正解。

JXplorerからは、

  • Host : <サーバのIPアドレス、又はhostname>
  • Port : 389
  • Protocol : LDAP v3
  • DSML Service : <空欄のまま>
  • Base DN : cn=config (固定?)
  • Security :
    • Level : User + Password
    • User DN : cn=config
    • Password : hogehoge (slappasswdの-sの後に指定した暗号化前のパスワード)

でアクセスできる。

動的変更できることの確認


てっとり早くJXplorerで接続。
で、左のツリーから「config」を選択し、右側のペインのタブで「Table Editor」を選択。

SSHなどでサーバに接続して、変更前の/etc/openldap/slapd.d/cn=config.ldifのタイムスタンプの確認をしておく。

確認できたらJXplorerから何かの値を変更する。

先ほどと同様に/etc/openldap/slapd.d/cn=config.ldifのタイムスタンプを確認し、更新されていればたぶん成功。

ちゃんと動的変更が効いていることを確認するために、slapdのLogLevelを変更してみる。

slapdのログは全てsyslogd経由で「local4」で出るらしいのでまず、syslogd.confの末尾に以下の行を追加する。

# Save slapd log message to slapd.log
local4.*                                                /var/log/slapd.log

次に/var/log/slapd.logを作成しておく。

# touch /var/log/slapd.log

さらに、syslogdに-HUPを送ってsyslog.confの変更を反映させる。

# kill -HUP <syslogdのpid>

「tail -f /var/log/slapd.conf &」 などを実行してslapd.logに変化があったらコンソールに出るようにしておき、その状態でJXplorerから「最新の状態に更新」などを実行する。
すると、コンソールにぶわっとslapdのログが吐かれる。
吐かれれば成功。

これ、後々セキュリティー機能を設定したりレプリケーションを行ったりしたときに非常に便利。

動的変更が保存されていることの確認


上記のLogLevelの変更を行った後でslapdを再起動してみる。

# service ldap restart

(tailを続けたままなら)slapd.logにslapd終了のlogと、その後の再起動と初期処理のログがぶわっと出れば成功。

 履歴


  • 2009/04/08 -- 初版
  • 2009/04/10 -- /etc/sysconfig/ldapのあたりの設定を追記

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2DOpenLDAP+2%2E3%A4%CELDAP%B7%D0%CD%B3%A4%CE%C0%DF%C4%EA%A4%F2%BB%C8%A4%A6

技術的雑談へ戻る

最終更新日時:最終更新時間:2009年04月10日 18時15分29秒
トップページに戻る