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:

Back to top