![]() |
|
| ウェブログの設定とか、鯖の設定の記録とか、あと個人的なコトとか、そんなゴミな日記つーか記録帳 |
webalizerがアクセス解析している時、たまに
のようなエラーを吐き出すコトがあります。アクセスログの1行が異常に長くてwebalizerが解析出来ないのが理由です。
どうしてアクセスログの1行が異常に長くなるかというと、『GET /NULL.IDA?CCCCCCCCCCCCCCCCCC..中略』などが記録されてるから。
そうです、ワームです。Apacheでこういうログを記録させなければOKなのでAapcheのhttpd.confを書き換えて対処しました。
# ステータス414の時は記録しないように書き換え
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
# .gif、.jpg、.png の呼び出し記録をログに書き込まない
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)$" nolog
# ワームからの呼び出し記録をログに書き込まない
# 新種対応の為に単独で指定し続けてく
SetEnvIfNoCase Request_URI "default\.ida" worm
SetEnvIfNoCase Request_URI "cmd\.exe" worm
SetEnvIfNoCase Request_URI "root\.exe" worm
SetEnvIfNoCase Request_URI "NULL\.IDA"worm
# アクセスログを保存するパス名と行のフォーマット(前項で定義したもの)を
# 指定します。
# もし、 内にこのディレクティブを指定しなければ、そのホスト
# へのアクセスログはここに保存されますが、記述されているのならば、ここ
# には保存されません。
#
CustomLog /var/log/httpd/access_log combined env=!nolog
CustomLog /var/log/httpd/worm_log combined env=worm
ワームからのアクセスはaccess_logに記録しないでworm_logへと記録するようにしました。/etc/logrotate.d/apacheも書き換えて、worm_logもローテートする様に設定してあります。
/var/log/httpd/access_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/agent_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/error_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/referer_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/ssl_request_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/worm_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
あとはApacheを再起動して終わりです。
補足
1.nminoruさんから指摘を受けたのでSetEnvIfをSetEnvIfNoCaseに訂正しました。SetEnvIfNoCaseは正規表現のマッチングを大文字小文字を区別しないコマンドです。どうもありがとうございました。
2.WebDAVの脆弱性を突いたウィルスのログを記録しないように加筆。
IIS のスクリプト名は大文字と小文字の両方を許しているようなので、default.ida と DEFAULT.IDA の両パターンが見られます。
SetEnvIf は SetEnvIfNoCase の方がよろしいかと。
指摘どうもありがとうございます。特定パターンのワームしか記録されてないから気がつきませんでした。確かにSetEnvIfNoCaseの方が良いですよね。
Posted by: @モナー : 2004年06月04日 22:51