説明:
●要旨
Xoops Protector は、XOOPS2 を様々な悪意ある攻撃から守るためのモジュールです。
このモジュールで防げる可能性のある攻撃は、以下の4種類です。
- DoS - 悪意あるクローラー(メール収集ボットなど) - SQL Injection - XSS (といっても、ごく一部のパターンだけですが... - システムグローバル変数汚染 - セッションハイジャック - ヌルバイト攻撃 - ディレクトリ遡り指定 - いくつかの危険なCSRF (XOOPS 2.0.9.2以下に存在するもの)
これらの攻撃からあなたのXOOPSを守り、ログに記録します。
ただし、このモジュールはあくまで、最大公約数的な防御しか行いません。 一部の3rdパーティモジュールに見られるような穴の一部は防げるかもしれませんが、すべての穴を防ぎきるものではなく、過信は禁物です。
その限界は承知の上で、すべてのXOOPSユーザーに対して、インストールを強くお勧めします。
●AntiDoS-P との関係
このモジュールの前身は、AntiDoS-P という名前でしたが、すでにDoS対策だけではなくなっていること、コードも全面的に書き直したことから、新たに Xoops Protector と名付けています。
また、モジュールとしては独立していますが、AntiDoS-P の機能はすべて Xoops Protector が引き継いでいますので、AntiDoS-P はアンインストールなされることをおすすめします。
●利用方法
通常のモジュールと同様にインストールして下さい。
ブロック・グループ管理で、Protector ブロックが左ブロックの一番上(優先順位が0)に表示されるようにしてください。 同じく、その画面で、すべてのユーザーにブロックアクセス権限を設定して下さい。
悪意ある攻撃を本当に防御したければ、mainfile.php からも呼び出すようにすることが絶対必要条件です。
Xoops Protector をインストール後、お使いのXOOPSの mainfile.php の一番下のあたりに
define('XOOPS_GROUP_ADMIN', '1'); define('XOOPS_GROUP_USERS', '2'); define('XOOPS_GROUP_ANONYMOUS', '3'); include( XOOPS_ROOT_PATH . '/modules/protector/include/precheck.inc.php' ) ; if (!isset($xoopsOption['nocommon'])) { include XOOPS_ROOT_PATH."/include/common.php"; } include( XOOPS_ROOT_PATH . '/modules/protector/include/postcheck.inc.php' ) ;
と、2行追加して下さい。 if (!isset($xoopsOption['nocommon'])) { include XOOPS_ROOT_PATH."/include/common.php"; } qという3行を挟み込むようにするのが最善の挿入ポイントです。
なお、mainfile.php に挿入することで追加されるのは、あくまで事前チェックです。より適切な処理のために、ブロックでも表示されるようにして下さい。
将来的には、ブロックは無くす方向です。
悪意ある攻撃を行ってくるようなIPを今後も継続的に排除するためには、 「システム管理」->「一般設定」->「一般設定」->「IPアクセス拒否」 をONにする必要があります。
通常は、このモジュールをインストールするだけで、ここがONになります。インストールしてもOFFのままだった場合、すぐ下の拒否IP一覧に、お使いのクライアントマシンが載ってしまっている可能性があります。
「IPアクセス拒否」を不用意にONにする前に、お使いのクライアントマシンのIPを、拒否IP一覧から削って下さい。
もし、なんらかの理由で、自分自身がIP拒否リストに載ってしまった場合、
http://(your xoops)/modules/protector/admin/rescue.php
にアクセスして、Protectorの一般設定で指定したパスワードを入力することで、一時的に、IP拒否機能をOFFにできます。
ただし、あらかじめこのパスワードを設定していないと、このレスキュー機能も無効になりますので、ご注意下さい。
2.34から、実験的に、.htaccessによるDoS防御というオプションを追加しました。これを利用する場合、XOOPS_ROOT_PATHにある.htaccessを書込可能とする必要があります。導入する際には、.htaccessファイルが書込可能である、というリスクと比較して下さい。
●バージョンアップ
まず、全ファイルを上書きアップロードします 管理画面からモジュール管理に入って、Protectorモジュールをアップデートします
つまり、基本的に、他のモジュールとまったく一緒です。
ただ、アップグレードの状況によっては、モジュール管理画面に入れないこともあり得ます。もしそうなった場合には、mainfile.phpを編集して、precheckおよびpostcheckの行をいったんコメントアウトしてください。
その場合、モジュール管理画面でアップデートを行った後に、再度、mainfile.phpを編集し、precheckおよびpostcheckを有効にする必要があります。
●謝辞 - Kikuchi (繁体中国語ファイル) - Marcelo Yuji Himoro (ブラジルのポルトガル語・スペイン語ファイル) - HMN (フランス語ファイル) - Defkon1 (イタリア語ファイル) - Dirk Louwers (オランダ語ファイル) - Rene (ドイツ語ファイル) - kokko (フィンランド語ファイル) - Tomasz (ポーランド語ファイル)
また、このモジュール作成にあたり、様々なご指導・ご鞭撻をいただいた、zxチームの皆様、とりわけJM2さん、minahitoさんに、心より感謝いたします。
●変更履歴
2.38 (2005/3/18) - DoS対策などで、.htaccess DENYを使う場合、ファイルが壊れた時のロールバック追加 - イタリア語言語ファイルの更新 (thx Defkon1)
2.37 (2005/3/9) - prefix manager でDB名のクオーティング忘れを修正 (thx king76) - Null-byte も、quite で消えるように
2.36 (2005/3/9) - 禁止拡張子に抜けがあったのを修正
2.35 (2005/3/5) - updated myblocksadmin 0.27 & mymenu 0.12 - ログレベルの導入(詳しくはMEMO参照) - 一時的に全体の動作をOffにするオプションをつけた (thx Dave_L) - 繁体中国語ファイルを更新 (thx Kikuchi) - フランス語ファイルを更新 (thx HEMON) 2.35a - ブラジルポルトガル語・スペイン語ファイルを更新 (thx Yuji) 2.35a
2.34 (2005/2/18) - セッションハイジャック対策でゲストの処理を間違っていたのを修正 (thx blues) - 特定パターン防御で強制終了する場合のメッセージを修正 (thx suin) - DoS系防御で、.htaccess に DENY FROM を書き込むというオプションを実験的に追加
2.33 (2005/2/11) - 「疑わしいファイル指定」で無限に .が増えるコードを修正 (thx mayor) - チケットシステムからIPチェックを排除
2.32 (2005/2/1) - 無効化していたMySQL/ブロックデバッグをチェックかけてから通すようにした (thx jseymour)
2.31 (2005/1/30) - モジュール内ファイルをルートコントローラと誤認識する問題の解決 (thx nobunobu) - IIS互換性の改善 (thx okuhiki) - フランス語ファイル更新 (thx HMN) (2.31a) - ドイツ語ファイルを追加 (thx Rene) (2.31b)
2.30 リリース版 (2005/1/30) - いくつかのデフォルト設定値を変更した - イタリア語ファイル更新 (thx Defkon1) - ブラジルポルトガル語・スペイン語ファイルを更新 (thx Marcelo Yuji Himoro) - オランダ語ファイルを追加 (thx Dirk Louwers)
2.30RC4 (2005/1/21) - postcheck.inc.php において、nocommon状態のエラーをFix (thx dendeke) 2.30RC3 (2005/1/21) - ヌルバイト文字列への対策を、強制終了からサニタイズに変更 - PREFIX マネージャの微調整 - フランス語ファイルを追加 (thx HMN) - イタリア語ファイルを追加 (thx Defkon1) 2.30RC2 (2005/1/20) - PREFIX マネージャの修正 2.30RC (2005/1/19) - PREFIX マネージャの作成 - 2.0.9.2固有穴への対応 (Special thx to zx team!) - ヌルバイト文字列への対策 - ディレクトリ遡りチェックが甘かったのを改善 (thx minahito) - セッションハイジャック対策の追加 - postcheck.inc.php の追加 (パッチの当て方が変わっています) - 変数汚染・SQL Injection2種の設定方法を変更 ------------------------------------------------------------ GIJ=CHECKMATE < gij@peak.ne.jp> aka GIJOE in jp.xoops.org 2004,2005 PEAK XOOPS http://www.peak.ne.jp/xoops/
|