[mlimg]
[xlang:en]
= SUMMARY =

Xoops Protector is a module to defend XOOPS2 from various and malicious attacks.

This module can protect a various kind of attacks like:

- DoS
- Bad Crawlers (like bots collecting e-mails...)
- SQL Injection
- XSS (Just only a little kind of ...)
- System globals pollution
- Session hi-jacking
- Null-bytes
- Directory Traversal
- Some kind of CSRF (fatal in XOOPS <= 2.0.9.2)
- Brute Force
- Camouflaged Image File Uploading (== IE Content-Type XSS)
- Executable File Uploading Attack
- XMLRPC's eval() and SQL Injection Attacks

Xoops Protector defends you XOOPS from these attacks, and it records into its log. 

Of course, all vulnerablities can't be prevented.
Be not overconfident, please.

However, I [color=ff0000][b]strongly[/b][/color] recommend installing this module to all XOOPS sites with any versions.



= RELATION to AntiDoS-P =

The antecedent of Xoops Protector was AntiDoS-P.

Since all functions of AntiDoS-P has been succeeded in Xoops Protector, you'd better to uninstall AntiDoS-P.



= USAGE =

Please install it as well as a usual module. 

After Xoops Protector is installed, edit your mainfile.php like this:
[code]
	define('XOOPS_GROUP_ADMIN', '1');
	define('XOOPS_GROUP_USERS', '2');
	define('XOOPS_GROUP_ANONYMOUS', '3');

	[color=ff0000]include( XOOPS_ROOT_PATH . '/modules/protector/include/precheck.inc.php' ) ;[/color]
	if (!isset($xoopsOption['nocommon']) [color=0000ff]&& XOOPS_ROOT_PATH != ''[/color] ) {
		include XOOPS_ROOT_PATH."/include/common.php";
	}
	[color=ff0000]include( XOOPS_ROOT_PATH . '/modules/protector/include/postcheck.inc.php' ) ;[/color]
[/code]
If the blue colored part is different from your mainfile.php, don't mind it.

Both pre-check and post-check are needed.

When you turn this on, you have to check if your IP is included in
"Enter IP addresses that should be banned from the site".

If unfortunately you as an administrator are banned by some unexpected erros, you can directly access

http://(your xoops)/modules/protector/admin/rescue.php

but be sure to set the password in preferences of XoopsProtector in advance.


An option "DENY by .htaccess" is added on version 2.34.
If you try this option, set writable XOOPS_ROOT_PATH/.htaccess
Before installing this, you should compare it to the security risks which .htaccess is writable.


= UPGRADE =

- overwrite them
- "upgrade" Protector in module's admin

If you can't go to admin's area, edit mainfile.php to temporarily remove the precheck/postcheck. (After "update", add the precheck/postcheck again)



= THANKS =
 - Kikuchi  (Traditional Chinese language files)
 - Marcelo Yuji Himoro (Brazilian Portuguese and Spanish language files)
 - HMN (French language files)
 - Defkon1 (Italian language files)
 - Dirk Louwers (Dutch language files)
 - Rene (German language files)
 - kokko (Finnish language files)
 - Tomasz (Polski language files)
 - Sergey (Russian language files)
 - Bezoops (Spanish language files)

Moreover, I thank to JM2 and minahito -zx team- about having taught me kindly.
You are very great programmers!



p.s.

If you've created or modified language files for this module, contact to me.
I will register it in Protector archive.


[/xlang:en][xlang:ja]

●要旨

Xoops Protector は、XOOPS2 を様々な悪意ある攻撃から守るためのモジュールです。

このモジュールでは、以下の攻撃を防ぎます。

- DoS
- 悪意あるクローラー（メール収集ボットなど）
- SQL Injection
- XSS （といっても、ごく一部のパターンだけですが...）
- システムグローバル変数汚染
- セッションハイジャック
- ヌルバイト攻撃
- ディレクトリ遡り攻撃
- いくつかの危険なCSRF (XOOPS 2.0.9.2以下に存在するもの)
- Brute Force （パスワード総当たり）
- 拡張子偽装画像ファイルアップロード (すなわち、IE Content-Type XSS)
- 実行可能なファイルをアップロードする攻撃
- XMLRPC関連

これらの攻撃からあなたのXOOPSを守り、ログに記録します。

ただし、このモジュールはあくまで、最大公約数的な防御しか行いません。
一部の3rdパーティモジュールに見られるような穴の一部は防げるかもしれませんが、すべての穴を防ぎきるものではなく、過信は禁物です。

その限界は承知の上で、すべてのXOOPSユーザーに対して、インストールを[color=ff0000][b]強く[/b][/color]お勧めします。



●AntiDoS-P との関係

このモジュールの前身は、AntiDoS-P という名前でしたが、すでにDoS対策だけではなくなっていること、コードも全面的に書き直したことから、新たに Xoops Protector と名付けています。

また、モジュールとしては独立していますが、AntiDoS-P の機能はすべて Xoops Protector が引き継いでいますので、AntiDoS-P はアンインストールなされることをおすすめします。



●利用方法

通常のモジュールと同様にインストールして下さい。

それだけではまったく動作していませんので、mainfile.php からも呼び出すようにすることが絶対必要条件です。

Xoops Protector をインストール後、お使いのXOOPSの mainfile.php の一番下のあたりに
[code]
	define('XOOPS_GROUP_ADMIN', '1');
	define('XOOPS_GROUP_USERS', '2');
	define('XOOPS_GROUP_ANONYMOUS', '3');

	[color=ff0000]include( XOOPS_ROOT_PATH . '/modules/protector/include/precheck.inc.php' ) ;[/color]
	if (!isset($xoopsOption['nocommon']) [color=0000ff]&& XOOPS_ROOT_PATH != ''[/color] ) {
		include XOOPS_ROOT_PATH."/include/common.php";
	}
	[color=ff0000]include( XOOPS_ROOT_PATH . '/modules/protector/include/postcheck.inc.php' ) ;[/color]
[/code]
と、２行追加して下さい。

青色の部分は、最初にインストールした時のバージョンによって異なりますが、違っていても気にしなくて結構です。

悪意ある攻撃を行ってくるような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 (ポーランド語ファイル)
 - Sergey (ロシア語ファイル)
 - Bezoops (スペイン語ファイル)

また、このモジュール作成にあたり、様々なご指導・ご鞭撻をいただいた、zxチームの皆様、とりわけJM2さん、minahitoさんに、心より感謝いたします。



[/xlang:ja]

------------------------------------------------------------

GIJ=CHECKMATE <gij@peak.ne.jp>   aka GIJOE in jp.xoops.org
2004,2005

PEAK XOOPS  http://www.peak.ne.jp/xoops/

