【modsecurity】auditログにmod_remoteipで取ったipアドレスを記録する

apacheのコードを書き換えます。

方法は2種類あります。とりあえず問題なければ1がおすすめ。

1) ログを書くところで修正

ログに書くところだけ変更するので手軽
apache2/msc_logging.c の1647行目に下記のように変更をかけます。

$ diff modsecurity-2.9.1/apache2/msc_logging.c ../modsecurity-2.9.1/apache2/msc_logging.c
1647c1647
<         current_logtime(msr->mp), msr->txid, msr->remote_addr, msr->remote_port,
---
>         current_logtime(msr->mp), msr->txid, msr->useragent_ip ? msr->useragent_ip : msr->remote_addr, msr->remote_port,

2) remote_addr 変数を取ってくるところで修正

全体に変更がかかるので、検証が必要、かも。ちょっとリスキー。
apache2/mod_security2.c の537行目に下記のように変更をかけます。

$ diff modsecurity-2.9.1/apache2/mod_security2.c ../modsecurity-2.9.1/apache2/mod_security2.c
537c537
<     msr->remote_addr = r->connection->client_ip;
---
>     msr->remote_addr = r->useragent_ip ? r->useragent_ip : r->connection->client_ip;