Apache2とZOPE
Apache2をZOPEのフロントエンドサーバーとして設定。
- 設定ポリシーとその前提条件
- DDNS(ダイナミックDNSサービス)に登録済みのドメイン名は、papasan.org。
- エイリアスとして、www.papasan.orgと*.papasan.org("*"は、ワイルドカード)。
- バーチャルホストはネームベースのバーチャルホストとする。
- www.papasan.orgは、サーバーの管理やスタティックなページ用、Apache2のデフォルトサーバー。
- papasan.orgは、ZOPE,Ploneなどのサイト用、メインサイト。
- Apache2のアクセスログは、papasan.orgなどのバーチャルホスト毎にまた日付毎に作成する。
- ワームなどのアクセスはApache2にて阻止しZOPEサーバーへは渡さない、また、ワームログファイルに吐き出し、ログファイルには出力しない。
- アクセスログに残すHTTPメソッドを限定する。
- 画像ファイル、CSSファイルへのアクセスはログとして残さない。
- LAN内部からのアクセスログは残さない。
- 設定ファイルの編集
Apache2の設定ファイルは、
/etc/apache2/conf/httpd.conf。viなどで以下のように編集し、その他の項目はデフォルトのまま。- 次のロードモジュールが有効になっているか確認。:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule rewrite_module modules/mod_rewrite.so ServerAdmin papasan@papasan.orgServerName www.papasan.orgCustomLog logs/access_log combinedをコメントアウト、CustomLogの設定は最後の方で設定する。AddDefaultCharset ISO-8859-1文字化けするので、offにする。- ログ出力設定
- ワームのアクセスはアクセスログとは別のワーム専用のログに出力する。:
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 - 画像ファイルのアクセス記録は残さない。:
SetEnvIf Request_URI "(\.gif|\.jpe?g|\.png|\.css|\.js)$" !log - LAN内からのアクセス記録は残さない。:
SetEnvIf Remote_Addr "^192\.168\." !log SetEnvIf Remote_Addr "^127\.0\." !log
- ワームのアクセスはアクセスログとは別のワーム専用のログに出力する。:
- ネームベースのバーチャルホストを設定する。
www.papasan.orgデフォルトサーバーで、管理用に使用。papasan.org公開用サーバー(Ploneサイト)。- その他のサーバー(必要なときに追加する)。
- 次のロードモジュールが有効になっているか確認。:
- Apache2の再起動:
# /etc/init.d/apache2 configtest # /etc/init.d/apache2 reload
- 備考
- ログファイルが生成されるタイミング
バーチャルホスト毎にアクセスログを持つように設定したのですがApache2を再起動させてもログファイルは生成されませんでした。
私は定義したログファイルの生成タイミングを
Apache2が起動/再起動したときだと思い込んでおりましたので設定ファイルを何度も見直すはめに。ログファイルは、ログを出力しようとして無かった場合生成されます。Apache2を起動/再起動させたタイミングでは生成されません。
バーチャルホスト毎にアクセスログを定義したときは、該当する
バーチャルホストにアクセスしたときログファイルが生成されログレコードが書き込まれます。
- ログファイルが生成されるタイミング