日々のあれやこれやの詰め合わせ

mod_securityのログをrsyslogで転送してみた話

初めに

mod_securityのログをrsyslogで転送する方法です。
検索してもあまり出てこなかったのでメモ程度に書いておきます。
mod_securityのインストールと設定、syslogの設定はできていることを前提とします。

環境

  • CentOS 7.5.1804 64bit Minimal
  • mod_security.x86_64 0:2.9.2-1
  • mod_security_crs.noarch 0:2.2.9-1
  • Apache/2.4.6

設定-mod_security

WAFの話とかインストール方法とかは省略します。
コンフィグファイルを編集しloggerにログを渡すような設定をします。

vi /etc/httpd/conf.d/mod_security.conf
#変更前
SecAuditLog /var/log/httpd/modsec_audit.log
#変更後
SecAuditLog "|/usr/bin/logger -p local1.info -t mod_security"

syslogにはlocal0~7までの比較的自由に使えるファシリティがあるので、今回はlocal1に設定しています。
これでsyslogにログを渡すことができます。

設定-syslog

syslogにログを渡せるようになったので、rsyslogでログを転送する設定を行います。

vi /etc/rsyslog.conf
#追記(local7がデフォで設定されてるので、その前くらいがわかりやすい?)
local1.*                                  @@[宛先ホスト]

@@の後に書いた宛先ホストの設定に従ってログが収集されるはずです。