Apache 2のログ出力設定
Apache 2とZopeサーバを連携させた場合に、より安全で便利に運用を行なうための設定について説明します。内容的にはワームをはじく設定、ログをバーチャルホストごとに出力設定などです。
目次
ワームをはじく設定[worm]
Webサーバを外部に公開すると、いろいろなワームがやってきます。そのようなワームからのメッセージをはじいて、アクセスログに出力しないようにする設定について説明します。
setenvif_moduleの有効化wormをはじく設定を記述できるようにするために、
setenvif_moduleを有効にします。以下の行がコメントアウトされていたら有効にします。:LoadModule setenvif_module modules/mod_setenvif.so- ワームの設定
ワームとなるURIのパターンを
SetEnvIfを使用して指定します。:SetEnvIf Request_URI "default\.ida" worm !log SetEnvIf Request_URI "cmd\.exe" worm !log SetEnvIf Request_URI "root\.exe" worm !log SetEnvIf Request_URI "Admin\.dll" worm !log SetEnvIf Request_URI "NULL\.IDA" worm !log - アクセスログログの設定
アクセスログとして保存するHTTPのメソッドを指定します。:
SetEnvIf Request_Method "(GET)|(POST)|(PUT)|(DELETE)|(HEAD)" log画像ファイルやCSS等をログとして保存しないように設定します。:
SetEnvIf Request_URI "(\.gif|\.jpe?g|\.png|\.css|\.js)$" !logまた、内部のネットワークからのアクセスはログとして保存しないように設定します。:
SetEnvIf Remote_Addr "^192\.168\." !log SetEnvIf Remote_Addr "^127\.0\." !log - ワームログ出力の設定
アクセスログとワームログに振り分けて保存するために、以下のように記述します。:
CustomLog /var/log/httpd/access_log combined env=log CustomLog /var/log/httpd/worm_log combined env=worm
設定が終了したらApache 2を再起動し、ログが分離して保存されていることを確認します。
バーチャルホストごとのログ出力設定[log]
Apache 2とZopeの組み合わせで、簡単に複数のバーチャルホストを運用することが出来ます。アクセスログ解析をするときに、それらのログがホストごとに分かれていた方が後々都合がよいので、そのような設定をします。
バーチャルホストの設定に、以下のように CustomLog の記述を追加します。:
NameVirtualHost *
<VirtualHost *>
ServerName www.example.com
RewriteEngine On
RewriteRule ^/Zope(.*) http://localhost:8080/VirtualHostBase/http/www.example.com:80/VirtualHostRoot/_vh_Zope/$1 [L,P]
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example_log.%Y%m%d 86400 +540" combined env=log
</VirtualHost>
<VirtualHost *>
ServerName blog.example.com
RewriteEngine On
RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/blog.example.com:80/blog/VirtualHostRoot/$1 [L,P]
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/blog_log.%Y%m%d 86400 +540" combined env=log
</VirtualHost>
また、ここでは rotatelogs コマンドを使用して、ログファイルを日付が付いたファイル名で作成するように設定しています。
設定が終了したらApache 2を再起動し、バーチャルホストごとのアクセスログが出力されていることを確認します。