CentOS7にmod_dumpostをインストールする

POSTメソッドのデータ部分もログ出力してくれるApacheのモジュールmod_dumpost。

テスト環境

OS: CentOS7.4
Apache: 2.4.6

準備

# yum install httpd-devel
# yum install gcc

mod_dumpostインストール

# git clone https://github.com/danghvu/mod_dumpost
# cd mod_dumpost
# make
# make install

Apacheの設定ファイル編集と再起動

/etc/httpd/conf/httpd.conf

LogLevel info
# systemctl restart httpd

確認

下の例はローカルホストから実行しているが他ホストから確認しても同様の結果が得られる。
(その場合はもちろんTCP/80ポートを開放すること)

# curl http://127.0.0.1/test -X POST -d "data1" -d "data2"

/var/log/httpd/error_log

[Tue Jan 09 14:09:02.886789 2018] [:info] [pid 4042] [client 127.0.0.1:34154] "POST /test HTTP/1.1" data1&data2

ちゃんとデータ「data1&data2」がログに出力されている。

SSLの場合

SSL化した場合も同じようにPOSTのデータをログ出力できる。

# yum install mod_ssl

/etc/httpd/conf.d/ssl.conf

LogLevel info
# systemctl restart httpd

確認

# curl --insecure https://127.0.0.1/test -X POST -d "data1" -d "data2"

/var/log/httpd/ssl_error_log

[Tue Jan 09 14:19:00.910862 2018] [:info] [pid 7994] [client 127.0.0.1:55982] "POST /test HTTP/1.1" data1&data2

捕捉

画像アップロード等の大容量データを全部ログに書き出すとログファイルがすぐいっぱいになってしまうので、それを防ぐ設定があるみたい(まだ確かめてないけど)。

/etc/httpd/conf/httpd.conf

DumpPostMaxSize 1024

参考URL

https://www.shadan-kun.com/blog/tool/entry-184.html

https://hacknote.jp/archives/25059/