スマートスタイル TECH BLOG

データベース&クラウド技術情報

syslog 経由で監査ログを記録 – MariaDB Server

本記事は MariaDB Corporation より寄稿された記事となります

はじめに

MariaDB Server のログはデフォルト設定では,@@datadir ディレクトリのファイルに記録されます。

例:
/var/lib/mysql/hostname.err
/var/lib/mysql/server_audit.log

今回は syslog (rsyslog) 経由で監査ログ(audit log)を記録する手順について解説いたします。

テスト環境

  • OS: CentOS 7.6.1810
  • MariaDB Server: 10.4.7 (Community Server)
  • rsyslog: 8.24.0-34

auditプラグインの設定

MariaDB の設定ファイルを以下のように変更します。

/etc/my.cnf.d/server.cnf

mariadb service の再起動

mariadb service を再起動します。

 

MariaDB monitor で MariaDB Server に接続してみます。

/var/log/messages に監査ログが mariadb-audit という ident で記録されていることが確認できます。

rsyslog ommysql モジュールによる MariaDB へのログ保存

rsyslog には様々なモジュールがあり,ommysql モジュールは MariaDB/MySQL へのログ保存を行うことができます。
ommysql モジュールを利用するには,まず rsyslog-mysql パッケージをインストールします。

MariaDB Server 上でログ保存用のデータベース/テーブルを作成します。

/etc/rsyslog.conf に以下の設定を追加します。

ここで,localhost 上の Syslog データベースに ommysql ユーザ,password というパスワードで接続します。
rsyslog service を再起動します。

Syslog データベースの SystemEvents テーブルを確認します。

接続ログが Syslog.SystemEvents テーブルに記録されていることが確認できます。

前回のブログ投稿にて Data-at-Rest Encryption によるテーブルの暗号化を解説しておりますので,暗号化を有効にすることで最終的に監査ログの暗号化を行うことが可能となります。

https://mariadb.com/ja/resources/blog/encryption-with-aws-kms-plugin/

まとめ

今回は監査ログを syslog 経由でOSのログファイル,もしくは MariaDB テーブルに保存する手順について解説させて頂きました。Data-at-Rest Encryption を有効にすれば監査ログを暗号化することも可能ですので,高いセキュリティ要件が求められている場合は参考にして頂ければと存じます。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB CorporationにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top