投稿

ラベル(LDAP)が付いた投稿を表示しています

OpenLDAP の DB の設定

さて、 ログも見れるようになった ところで。 ldap のログを見ると slapd 起動時にこんな warning が出ているはずです。 Aug 29 11:21:48 localhost slapd[1069]: bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).#012Expect poor performance for suffix "dc=example,dc=com". 要は、「slapd を快適に動かすためには DB_CONFIG というファイルを作ってね」という内容です。 ほっといてもいいんですが、 warning 出っぱなしは気持ち悪いので対処します。 OpenLDAP に含まれている DB_CONFIG のサンプルファイルを ldap の DB のディレクトリにコピーします。 # cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG 検証目的での利用であればデフォルトの DB_CONFIG.example のデフォルトの設定に(赤字の行を)一行追記してやれば問題ないかと。 set_cachesize 0 268435456 1 set_lg_regionmax 262144 set_lg_bsize 2097152 set_flags DB_LOG_AUTOREMOVE DB_LOG_AUTOREMOVE は Berkeley DB のログファイルを自動で削除してくれるようになります。 (例えば slapcat でバックアップを取った時に、不要となったトランザクションログファイル /var/lib/ldap/log.?????????? を自動削除してくれます) これで DB_CONFIG ファイルもできたんで slapd 再起動後には warning は出なくなります。 さて、メモリ関連のパラメータのチューニングについて。 OpenLDAP が内部で利用している DB は Berkeley DB というものですが、これのステータスを見るコマンドがあります。 # db_stat -m ...

OpenLDAP のログ周りの設定をする

OpenLDAP のログをファイルに出力するようにします。ついでにログのローテートも設定します。 【前提】 OS: Scientific Linux 6 ログ出力 rsyslog じゃなくて syslog だった頃は /etc/syslog.conf に直接設定を追記していたんですが、 rsyslog だと IncludeConfig というものがデフォルトで設定されてるんですね、知らなかった。 # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf というわけで、 /etc/rsyslog.d/ に設定ファイルを作ります。 # vi /etc/rsyslog.d/ldap.conf ファイルの中身はこのようにします。 # LDAP logs local4.* -/var/log/ldap 利用頻度の高い LDAP サーバだと、ログの出力がボトルネックになる可能性があるので、ログファイル名の指定の前に - (ハイフン)をつけて非同期書き込みにするのを忘れずに。 設定が完了したら rsyslog を再起動します。 # service rsyslog restart 再起動後 /var/log/ldap というファイルができているはずです。 ログローテート logrotate の設定を変更します。 rsyslog 経由で出力しているログファイル達のローテート設定 (/etc/logrotate.d/syslog) に ldap のログも追記するだけです。 # vi /etc/logrotate.d/syslog 赤字の部分を追記します。 /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/ldap { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscri...

Apache Directory Studio を使って LDAP データを登録する

イメージ
前回 でとりあえず LDAP サーバは立ち上がったので、データを流し込みたいと思います。 LDIF 作ってコマンドで流してもいいんですが、データ量が増えてくると CUI での管理が大変になるので、専用の LDAP クライアント使います。フリーで使いやすい LDAP クライアントとなると Apache Directory Studio 一択と考えてもらって問題ないです。 LDAP サーバへの接続 インストールして起動するとこんな画面が立ち上がります。 画面上部のタブから [LDAP] - [New Connection...] をクリックすると LDAP サーバへの接続の設定ウィザードが立ち上がります。 [Connection Name] [Hostname] を入力して [Next] をクリック。([Connection Name] は適当にわかりやすい名前を入れればOK) [Bind DN or user] に slapd.conf で設定した rootdn 、 [Bind password] に同じく rootpw を入れて [Finish] をクリック。 これで完了です。接続できれば下のように画面の左下にコネクション情報、左側に LDAP ツリー情報が表示されます。 LDAP データの投入 まだデータが全く空の状態なので、とりあえず DIT (Directory Information Tree) のトップの情報 (dc=example,dc=com) を入れます。 画面左の [DIT] の部分を右クリックして、 [New] - [New Context Entry...] をクリックするとデータの作成画面が表示されますので、 [Create entry from scratch] のままで [Next] をクリック。 オブジェクトクラスを選択する画面になるので、必要なオブジェクトクラスを追加していきます。 dc=example,dc=com だと dcObject が必須です。 さらに、 dcObject だけだと「No structural objectClass」と怒られるので organization を追加しました。 選択が終わったら [Next] をクリック。 DN 入力画面になる...

OpenLDAP で LDAP サーバを構築する

OpenLDAP を使って LDAP サーバを構築する機会があったのでメモを残しておこうかと。 【前提】 OS: Scientific Linux 6.3 パッケージの導入 openldap 構築に必要なパッケージををインストールします。 # yum install openldap-servers openldap-clients インストールすると /etc に openldap の設定ファイルが入ったディレクトリが作成されます。 中身はこうなっています。 # cd /etc/openldap # ls -l total 16 drwxr-xr-x. 2 root root 4096 Aug 27 13:15 certs -rw-r--r--. 1 root root 280 Aug 9 04:57 ldap.conf drwxr-xr-x. 2 root root 4096 Aug 27 14:28 schema drwx------. 3 ldap ldap 4096 Aug 27 14:28 slapd.d 以下、簡単に説明。 certs/ ldap.conf このマシン自身が ldap クライアントとして動作するときの設定ファイル (ldap.conf) と証明書置き場 (certs) schema openldap にデフォルトで入っているスキーマファイル slapd.d openldap の設定データベース openldap は 2.3 からは slapd.d という設定データベースが使えるようになり、設定も slapd.conf ではなく slapd.d を使うよう推奨されているんですが、 slapd.d は操作が面倒くさいので今回は slapd.conf を使って構築します。 LDAP サーバの初期設定 slapd.d ディレクトリが存在すると、そちらが優先的に読み込まれてしまうので退避します。 # cd /etc/openldap # mv slapd.d slapd.d.org 設定ファイル (slapd.conf) のひな形を持ってきましょう。 # cp /usr/share/openldap-se...