この記事を書いた頃は,apacheを使っていたが,今では使っていない.「apache のエラーログを真面目に読んでみた | hadacchi blog」
存在しないURLを適当に入れたら出てしまうから書いちゃうけど,このウェブサイトは,nginxを使って運営している.
で,まぁそのログを眺めようという前回に引き続いての企画.
思いも寄らぬエラーが出てたりするので,勉強になると思うよ.
- access.log
-
- 標準だと,多分/var/log/nginx/access.logあたりだと思う.
生で見てもいいんだけど,アタックによく使われるphpmyadminあたりへのアクセスをひっかけるため,こんなコマンドでまずはIPとリクエストURL,サーバのレスポンスコード,ユーザエージェントを一覧する.# cut -d' ' -f1,7,9,12- nginx/access.log | grep dmin | less
そもそも,ここで200になっていたら,phpmyadminのログとか見た方がいいと思う.
私は使ったことがないから知らない. - 次は,そこでひっかかったIPアドレスをひっかけて,他にヤバそうなアクセスを受けていないか確認する.
# cut -d' ' -f1,7,9,12- nginx/access.log | grep xxx.xxx.xxx.xxx | less
そうすると,例えばこんなURLへのリクエストが飛びまくっていたので,この辺りに脆弱性のあるプログラムがあるんだろーなー,とか分かる.
/w00tw00t.at.blackhats.romanian.anti-sec:) /muieblackcat /components/com_jinc/classes/graphics/php-ofc-library/ofc_upload_image.php?name=magic.php
ぐぐってみると,1つ目と2つ目はよくひっかかる.
3つ目は,なんかopen flash chartとかいうのが出てくる.
あと,明らかにSMTPを狙ったログも出てきた.CONNECT 126mx00.mxmail.netease.com:25 HTTP/1.0
ぐぐってみると,中国語っぽいサイトが出てくる.
アクセス元IPアドレスをIP-HOST変換かけてドメインでぐぐると,台湾からのアクセスらしいという情報も出てくる.
- 標準だと,多分/var/log/nginx/access.logあたりだと思う.
- error.log
- 基本は,access.logと同じだが,nginxの場合はphpへのアクセスを全てphp-fpmへ流していると,php-fpmからのエラーも全部記録される.
設置していないURLでの*.phpへのアクセスは,別にさばいてログを分けた方がいい…のかな?まだ考え中.
他には,設置をミスった証明書のエラーとかも出てくる.# grep -v 'No such file or directory' nginx/error.log | less
- php-fpm.logとか,unicorn.logとか
- phpとかrubyとか使ってると,この辺りもチェックすることになると思う.pythonならuwsgi.logとかかしら.
この辺りを動かしている人は,自分の環境に併せて調べてみてね.