OpenLDAPで監査ログを使ってみよう!Audit Logging overlay(auditlog)

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

OpenLDAPで監査ログを取得するためのオーバーレイAudit Logging overlay(auditlog)を使ったので、使用方法と注意点を残しておきます。

Audit Logging overlay(auditlog)とは

auditlogは、指定したバックエンドデータベースに加えられた変更記録を保存するオーバーレイです。

DITに対する操作(エントリの追加、変更、削除)のログをLDIF形式で保存できます。

ログは操作者やタイムスタンプなどが追加されて、指定したディレクトリに出力されます。

前提条件

  • CentOS 7.8
  • OpenLDAP 2.4.44
  • 監査対象DIT: fig.1参照
  • rootdn: “cn=Manager,dc=example,dc=com”
  • バックエンドデータベース: hdb

fig.1 監査対象DIT

 

auditlogの設定

auditlogを使用するために設定ツリーを変更します。

以下の3手順で設定します。

  1. ディレクトリの作成
  2. auditlogのロード
  3. auditlogの適用

ディレクトリの作成

監査ログを格納するディレクトリを作成します。

ディレクトリは/var/log直下に作成します。

slapdがディレクトリにログを作成できるように所有者を変更します。

 

auditlogのロード

オーバーレイのロードを管理するエントリ”cn=module{0},cn=config”が存在しているか確認します。

検索結果

  • 存在する -> A.エントリ”cn=module{0},cn=config”の変更へ
  • 存在しない -> B.エントリ”cn=module,cn=config”の作成へ

A.エントリ”cn=module{0},cn=config”の変更

エントリにolcModuleLoad属性を追加します。

B.エントリ”cn=module,cn=config”の作成

 

auditlogの適用

バックデータベースのエントリの下にオーバーレイのエントリを追加します。

olcAuditLogFileには、

 ログを格納するディレクトリのパス(/var/log/openldap)+ ファイル名(auditlog.ldif)

を指定します。

olcAuditLogFileで指定したldifファイルにログが書き込まれます。

※このオーバーレイのエントリは削除することができないので注意しましょう。後述しますが、これを削除するためには設定ツリーごと削除、再構築する必要があります。

私の環境で削除を試みましたが、

ldap_delete: Server is unwilling to perform (53)

というエラーが出て削除できませんでした。(泣)

調べてみたところ、OpenLDAPの公式ページにこのようなスレッドを見つけました。

cn=config does not support delete operations. This will probably be supported in OpenLDAP 2.5.

cn=configは削除操作をサポートしていません。これはOpenLDAP 2.5でサポートされるでしょう。

と書いてあります。

次のバージョンに期待ですね。

ということでオーバーレイを消したいときはどうすれば良いのでしょうか。

先ほどのスレッドにこのような記述がありました。

slapcat -n0, edit LDIF, remove old configDB and reimport.

オーバーレイを消すためには設定ツリーのバックアップをとり、バックアップしたldifを編集、既存の設定ツリーを削除、再構築する必要があります。

詳しく説明すると長くなりそうなので、別の記事として書こうと思います。

 

以上でauditlogの設定は終わりです。

次はDITを操作して、どのようなログが出力されるかを見てみようと思います。

 

ログを見てみよう

fig.1で示したDITに対してエントリを追加、変更、削除し、ログを確認します。

ログのテンプレート

DITを操作(追加、変更、削除)した際、ログは以下のようなテンプレートに従って出力されます。

 

エントリの追加

操作:

ログ:

エントリの追加時は、エントリの追加操作の詳細に加えて、作成者や変更者、変更時間などの属性が付与され記録されます。

 

エントリの変更

操作:

ログ:

エントリの変更時は、エントリの変更操作の詳細に加えて、変更者や変更時間の属性も更新され記録されます。

 

エントリの削除

操作:

ログ:

エントリの削除時は、エントリの削除操作の詳細のみが記録されます。

 

まとめ

今回はOpenLDAPでAudit Logging overlay(auditlog)を使用する方法と注意点をまとめました。

auditlogでは、DITに加えられた変更(エントリの追加、変更、削除)について詳細なログを取得することができました。

しかしながら、auditlogでは、DITに検索をかける場合のログなどを残すことができません。

rsyslogを使って検索などのログを取得する方法についてはこちらから。

 





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



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


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

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

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

コメント投稿

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


*