logrotate の設定メモ
ログを圧縮する
/etc/logrotate.conf
# uncomment this if you want your log files compressed #compress
を
# uncomment this if you want your log files compressed compress
とすると、ローテートするときにログを自動的に圧縮してくれる
空のログのときにはローテートしない
ssl_request_log が空の場合ローテートしない設定 /etc/logrotate.d/apache 内の
/var/log/httpd/ssl_request_log { missingok notifempty postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript }
notifempty を追加しておくと、/var/log/httpd/ssl_request_log が空の時にはローテートされない。
ローテート対象の追加
例えば apache で Nimda のアクセスを別のログファイルに書き出すようにしたり combined_log を取るようにした時などは /etc/logrotate.d/apache などに新しいlogファイル用の設定を記述します
/var/log/httpd/worm_log { missingok postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript }
/etc/logrotate.d には色々とアプリケーション別にログのローテートの設定がありますが、そこに無さそうな時には /etc/logrotate.conf に直接追加する事も出来ます。
Nimda CodeRed のログを別ファイルにする
logrotateの話とは関係無いですがNimdaのお話が出たので・・ 今でも続くNimda CodeRed のアクセスですがこのアクセス記録をworm_logに記録して通常のアクセスとは別にしたいと思う。 apache のコンフィギレーションファイル中でログ関連の設定部分を見つけその後ろの部分に以下を追加します。またこの時ログファイル名をworm_logとするので # touch /var/log/httpd/worm_log として空のログファイルを作成して下さい。
追加部分↓
SetEnvIf Request_URI "default\.ida" warmlog SetEnvIf Request_URI "cmd\.exe" warmlog SetEnvIf Request_URI "root\.exe" warmlog SetEnvIf Request_URI "Admin\.dll" warmlog CustomLog /var/log/httpd/worm_log combined env=warmlog CustomLog /var/log/httpd/access_log combined env=!warmlog
apache を再起動して Nimda が釣れるのを待ちましょう。
↓こんなのが釣れるはずです。
211.97.156.41 - - [30/Jun/2002:08:37:04 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" 404 576 "-" "-" 211.97.156.41 - - [30/Jun/2002:08:37:05 +0900] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 404 576 "-" "-" 211.97.156.41 - - [30/Jun/2002:08:37:14 +0900] "GET /scripts/..%252f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 576 "-" "-"
created: