rsyslogでOpenLDAPのログを見よう!CentOS

こんにちは、サイオステクノロジーの藤原です。

今回はCentOSに標準インストールされているrsyslogを使ってOpenLDAPのログを取得する方法についてまとめます。

 

以前、OpenLDAPで監査ログ(auditlog)を取得する方法について、記事を書きました。

auditlogはバックエンドデータベースに対する操作(エントリの追加、変更、削除)のログを取得できましたが、検索などのログを取得できませんでした。

rsyslogを使う方法では、この検索などのログを取得することができます。

前提条件

  • CentOS 7.8
  • OpenLDAP 2.4.44
  • ログを取得するDIT: fig.1参照
  • rootdn: “cn=Manager,dc=example,dc=com”

fig.1 DIT

rsyslogとは

公式ホームページより、

RSYSLOG is the rocket-fast system for log processing.

とあるように、rsyslogはローカルやリモートのログを高速に処理するデーモンです。

fig.2に示すように、様々なソースからの入力を、処理し、多様な送り先へ出力することができます。


fig.2 rsyslogの入出力先

今回はOpenLDAPからの入力をlogファイルとして出力する設定を行います。

 

rsyslogの設定

以下の3手順で設定を行います。

  1. rsyslog.confに追記
  2. ログレベル設定
  3. デーモンの再起動

rsyslog.confに追記

46行目あたりに#### RULES ####とあるので、このセクションに以下を追記します。

slapdがlocal4ファシリティにログを出力をするので、rsyslogはこれを入力として受け取り、/var/log/slapd.logファイルに出力します。

local4.*というのはログを取得するフィルターでlocal4がファシリティ、アスタリスク(*)はプライオリティを表しています。

詳細については、RedHatのカスタマーポータルに載っています。

 

ログレベル設定

12行目SLAPD_OPTIONSのコメントアウトを外し、以下のように書き換えます。

256という数字はログレベルを表しています。

ログレベルはどれくらいの粒度でログを記録するかを設定する値です。

ログレベルと粒度の関係をtable.1に示します。(OpenLDAPの公式ページ6.2.1.5. loglevelより

 

table.1 ログレベルと粒度の関係

Level description
1 trace function calls
2 debug packet handling
4 heavy trace debugging
8 connection management
16 print out packets sent and received
32 search filter processing
64 configuration processing
128 access control list processing
256 stats log connections/operations/results
512 stats log entries sent
1024 print communication with shell backends
2048 print entry parsing debugging
16384 syncrepl consumer processing
32768 only messages that get logged whatever log level is set

今回は検索の操作と結果のログを取得したいのでログレベルは256に設定しました。

自分が知りたい情報の粒度に合わせて適切に設定しましょう。

 

デーモンの再起動

rsyslogを再起動してrsyslog.confに追記した内容を反映します。

slapdを再起動してログレベルの設定を反映します。

ログレベルを変更した場合にはslapdを再起動します。

 

以上で、rsyslogを使ってOpenLDAPのログを取得するための設定は終わりです。

次はログを見ていきます。

ログを見てみる

fig.1のDITに対して、ある操作を行った場合のログを見てみます。

connはコネクションの番号です。コネクションの確立から解放までを1つの塊として番号が割り当てられています。

opは1回のコネクション中に行われた操作を表します。今回の場合、全部で3回操作が行われており、op=0はバインド、op=1は検索、op=2はアンバインドです。

 

このログを見ることで、

ローカルホストのipアドレス(::1)からポート389でコネクションが確立され、

バインドdn=”cn=Manager,dc=example,dc=com”でシンプル認証を行い、

ベースdn=”ou=user,dc=example,dc=com”に対して検索をかけ、4エントリがヒットし、

アンバインドし、コネクションが解放されたことが分かります。

 

どのようなコマンドが実行されたのか、なんとなく想像できますね。

正解はこれです。

色々なコマンドを実行してログを確認することで、より理解が深まっていきますね。

 

まとめ

今回はrsyslogを使ったOpenLDAPのログの取り方についてまとめました。

手順は簡単で以下の3ステップで設定できます。

  1. rsyslog.confに追記
  2. ログレベル設定
  3. デーモンの再起動

適切なログレベルを設定しないと、情報が多すぎて読むのが大変でした。

データベースに加わった変更点だけを見たいときは、以前、使い方を説明したauditlogを使った方が読みやすいと思います。

使い分けが大事ですね。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

2人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*