0

同じ物理専用サーバー上に複数のWebサイトを持つクライアントがいます。多くの場合、ブルートフォース攻撃は、あるWebサイトで無効なURLにアクセスしようとし、その後、他のWebサイトで続行します。

1つのWebサイトで無効なURL要求をキャプチャし、同じサーバー上のすべてのサイトの共有ブロックリストを更新する方法はありますか?

私はこれを読みました:PHP / MySQLベースのスクリプトを使用してWebサイトからのIPブロックを禁止するにはどうすればよいですか?そして、悪意のあるアクティビティのヒットを減らすために、各サイトに自動インクルードできるある種のファイルを更新する方法を探していました。おそらく、cronでそのファイルをクリーンアップします。

この種の状況に対する考えやベストプラクティスはありますか?

ありがとう!

4

3 に答える 3

2

サーバーにアクセスできる場合は、http: //www.fail2ban.orgをお勧めします。あなたが持っていないとき、私は404または何かとしてphpへのhtaccessでリダイレクトを行います、そうでなければスクリプトはリクエストが悪い頻度をログに記録し、10または...リクエストの後にあなたはIPをブロックします。

しかし、サーバーの方法でそれを行う方が本当に良いので、apacheはこれらすべての要求に答える必要はありません。

ご挨拶

于 2013-01-13T23:01:15.567 に答える
2

私はそれについて深刻な懸念を抱いていますが、私たちのサーバー管理者はPSADをインストールしました。何をブロックしているのか、そしてその理由を知っていることを明確にしてください。

ヒント:電子メールアラートのアラートレベルを4以上に設定する(または電子メールアラートをオフにする)か、1日に数千を取得します。

于 2013-01-13T23:14:14.573 に答える
1

私はあなたがこのようなものを使うことができると思います:

アクセスする次のリンクのみを割り当てたと仮定します。

人々にsite.com/index.php?id=アクセスのみを許可したい場合、id=homepageまたは、、about-usservicecontact

$id = $_GET['id'];
switch($id){

case "homepage";
echo //do something
break;

case "about-us";
include('about.php');
break;

case "service"; 
echo  //something;
break;

case "contact";
echo //something
break;



default: 
get_ip_and_ban(); // initiate a function, that records and bans IP
break; 


}

更新-(複数のサーバー間でIPを共有する方法..)またはラインに沿った何か

わかりました、これはIPを取得する方法です..または私がIPを取得する方法です。

function get_ip() {

    if(!empty($_SERVER['HTTP_CLIENT_IP'])) 
        { $ip=$_SERVER['HTTP_CLIENT_IP']; }
            elseif(!empty($_SERVER['HTTP_X_FORWARD_FOR']))
                {$ip=$_SERVER['HTTP_X_FORWARD_FOR'];}
                    else {$ip=$_SERVER['REMOTE_ADDR'];}
                        return $ip;

} 

つまり、get_ip();IPを取得する関数です。これにより、不正なリンクにアクセスしようとしている人をデータベースに挿入できます。それで、それを行った後、データベースに不正なIPが存在するかどうかをチェックする簡単な関数を作成しましょう。データベース$allowed_ipからの不正なIPの配列であり、この関数は不正なIPの1つが存在するかどうかをチェックし、存在する場合、次の関数はユーザーがページにアクセスするのをブロックします。

function access_directive($allowed_ip){

    if(get_ip() === $allowed_ip)
     {exit("Dude, You are blocked. Get Lost"); }

}

ここで、簡単にするために <?php echo access_directive("127.0.0.1"); ?>、ページの上部にあるlocalhostのみをブロックし、内部に示されているIPをブロックします。access_direcive();

不正なIPを保存するためのデータベースを作成し、ページの上部で上記の関数などを使用して他の人をブロックする必要があります。

于 2013-01-13T23:17:02.097 に答える