同じホスティングアカウントで複数のサイトを実行している場合、攻撃者が1つのサイトを侵害しようとしたことがあります。ウェブマスターは、同じアカウントでホストされているすべてのサイトからのIPアドレスをブロックしたい場合があります。
禁止されたIPアドレス/範囲のリストを、同じアカウントのすべてのWebサイトから参照できる単一の場所に保持する方法はありますか?
(例:ファイルシステムのルートにあり、各Webサイトの.htaccessファイルで単純に参照されるIPアドレス/範囲のリストを含むファイル。)
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 で説明したように、これはすべての仮想ホストで機能するはずです。
別の方法として、 here (deny from
の代わりにブロックするIPごとにallow from
を使用)のように、仮想ホスト構成ごとに include ディレクティブを使用することもできます。
最後に、OSのファイアウォール、サーバーモジュール、またはサーバー構成ファイルのいずれにもアクセスできない場合(共有Webホスティングアカウントの場合など)、Perlのようなサーバー側スクリプトを使用してIPをコピーできます各。htaccessファイルに中央ファイルを配置し、これをcronジョブとしてスケジュールして、各仮想ホストがブラックリスト/ブロックするIPの同じリストを共有するようにします。
禁止された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
では無効です。)