前に
寄生虫とアタックの跡でも書いたが、このサーバのapacheのログは結構汚い。なぜ汚いのかと言えば
1 ワームのアタックの後がかなりある。
2 このサイトの背景に使っている画像へのアクセスが記録されている。
3 なんといっても、オイラがアクセスしたのまで律儀にLogを取っている。
という理由からだ。
これではアクセス分析もへったくれもあったもんじゃない。と言うことで、まともなログになるようにしてみた。
段階としては3つ。全てhttpd.confにて設定ができるようだ。この設定ファイルは、Vineの場合/etc/httpd/conf/にある。まず、ログに記録しない為の設定をする。これはまず
CustomLog /var/log/httpd/access_log combined
↓
CustomLog /var/log/httpd/access_log combined env=!no_log
と、no_logに該当した部分をログに記録しないように設定し、次に、自分のアクセスをLogに記録しないよう設定する。これはmoduleの設定以降に
SetEnvIf Remote_Addr 192.168.0. no_log
等と記入してやればOK。同じように画像ファイルアクセスのログもスキップする。
SetEnvIf Request_URI "\.(gif)|(jpg)|(jpeg)|(png)$" no_log
さて、わずらわしいなワームの足跡は、通常のログにはのこさず、別のログファイルに保存するようにした。
#ワームのログを通常のログには残さず、別ファイルに記録
SetEnvIf Request_URI "^/_mem_bin/" worm no_log
SetEnvIf Request_URI "^/_vti_bin/" worm no_log
SetEnvIf Request_URI "^/c/" worm no_log
SetEnvIf Request_URI "^/d/" worm no_log
SetEnvIf Request_URI "^/msadc/" worm no_log
SetEnvIf Request_URI "^/MSADC/" worm no_log
SetEnvIf Request_URI "^/scripts/" worm no_log
SetEnvIf Request_URI "^/default.ida" worm no_log
SetEnvIf Request_URI "root\.exe" worm no_log
SetEnvIf Request_URI "cmd\.exe" worm no_log
SetEnvIf Request_URI "NULL\.IDA" worm no_log
#wormに該当するものをworm_logに記録
CustomLog /var/log/httpd/worm_log combined env=worm
以上を追加し、ワーム用のログファイルを設定する。
あと、上記では非常にログを見づらくしてくれる
W32.HLLW.Gaobot.gen対策がされていない。このワームに対しては、バーチャルホストを用いる方法もあるようだが、見たくもないので単にログに残さないように設定した。これは
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
↓
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
としてやることで対応できるようだ。
後はワーム用のログファイルのログローテーションを設定してやる。これはVineでは/etc/logrotate.d/apache に、以下を追加してやればいい。
/var/log/httpd/worm_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
あ~、これでログがすっきりするぞ!!
参考サイト
Apache のカスタムログ設定(Linuxで自宅サーバ)
SEARCHメソッドの不正ログ対策(株式会社 ネットスパイス)