web-dev-qa-db-ja.com

同じアカウントでホストされている複数のサイトに単一のIPブロックリストを設定する方法

同じホスティングアカウントで複数のサイトを実行している場合、攻撃者が1つのサイトを侵害しようとしたことがあります。ウェブマスターは、同じアカウントでホストされているすべてのサイトからのIPアドレスをブロックしたい場合があります。

禁止されたIPアドレス/範囲のリストを、同じアカウントのすべてのWebサイトから参照できる単一の場所に保持する方法はありますか?

(例:ファイルシステムのルートにあり、各Webサイトの.htaccessファイルで単純に参照されるIPアドレス/範囲のリストを含むファイル。)

1
authentictech

IPアドレスをブラックリストに載せるより効率的な方法は、オペレーティングシステムのファイアウォールを使用するか、 ModSecurity など、この目的のために特別にコーディングされたモジュールを使用することです。

OSにアクセスできず、モジュールを追加できない場合は、次のようにApache構成ファイルを編集できます(サンプルIPアドレス111.222.33.444をブロックするため)。

<Location />
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 111.222.33.444
</Limit>
</Location>

次に、Apacheを再起動します。 here で説明したように、これはすべての仮想ホストで機能するはずです。

別の方法として、 heredeny fromの代わりにブロックするIPごとにallow fromを使用)のように、仮想ホスト構成ごとに include ディレクティブを使用することもできます。

最後に、OSのファイアウォール、サーバーモジュール、またはサーバー構成ファイルのいずれにもアクセスできない場合(共有Webホスティングアカウントの場合など)、Perlのようなサーバー側スクリプトを使用してIPをコピーできます各。htaccessファイルに中央ファイルを配置し、これをcronジョブとしてスケジュールして、各仮想ホストがブラックリスト/ブロックするIPの同じリストを共有するようにします。

1
dan

禁止されたIPアドレス/範囲のリストを、同じアカウントのすべてのWebサイトから参照できる単一の場所に保持する方法はありますか?

これは、「すべてのWebサイト」が「同じアカウント」でどのように設定されているかによって異なります。この質問と@danの回答に関する他のコメントから、メインサーバー設定にアクセスできず、おそらく共有ホスティングアカウントを使用しているようです。

この場合、個別の「ウェブサイト」がメインアカウントの個別のサブディレクトリ(cPanelアドオンドメインを使用するなど)またはメインアカウントのサブディレクトリを指すサブドメインとして実装されている場合、これらのブロッキングディレクティブを.htaccessファイルに実装できますメインアカウントのドキュメントルート-サブWebサイトのドキュメントルートの1つ上のディレクトリ。 .htaccessファイルはファイルシステムパスに沿って継承されるため、親の.htaccessのブロックディレクティブが処理されます(サブディレクトリのWebサイトの.htaccessファイルでオーバーライドされない限り)。

たとえば、Apache 2.2の場合:

<Limit GET POST PUT>
Order allow,deny
Allow from all
Deny from 111.222.33.444
</Limit>

<Location>ディレクティブは.htaccessでは無効です。)

0
MrWhite