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/

CentOS7.4でポート開放する

いつまでも覚えられないので備忘録に追加

ゾーンの確認

下のコマンドを実行して「(active)」がついているところが現在有効になっているゾーン
通常は「public」

firewall-cmd --list-all

ポートの追加

8888番TCPポートを開放したい場合の例
zoneオプションには現在有効になっているゾーンを指定する

firewall-cmd --add-port=8888/tcp --zone=public --permanent

設定の反映

忘れずに

firewall-cmd --reload