REGEX を使用した IP アドレスのリダイレクトとブロックは危険です。サイトへのすべてのトラフィックを誤ってブロックしたり、リダイレクト ループを作成したりする可能性があるため、何らかの対策を講じる必要があります。ログ ファイルをチェックして、探している結果が実際に機能していることを確認し、誤検出を監視します。ページにアクセスして、意図したとおりに機能することを確認します。国外の IP アクセス制限について、プロキシを使用してテストします。
Ripe.net、APNIC.net、Arin.netなど、さまざまな IP アドレスを検索できるレジストラが世界中にあります。これらのレジストラが担当する IP アドレスは、ブロック単位で連続していません。これらのブロックを 1 か所に集めようとした国別のリストがあります。Nirsoftは、これらのリストの一部を維持しています。それらは決して完全なものではなく、IP アドレスは毎日変更されます。オーストラリアの企業に最初にリストされた IP のブロックが、Virgin Mobile や Microsoft などの企業によって取得された場合、英国または米国で誤ってトラフィックをバウンスする可能性があります.
コア サーバーの構成にアクセスできる場合、またはパッケージをインストールできる場合は、サーバーのトラフィックを抑えるために、iptablesをインストールまたはセットアップして、トラフィックが不要な領域への繰り返しの試行をブロックすることができます。また、速度のしきい値 (「毎秒 2 ページ」) を超えるトラフィックをブロックすることもできます。
robots.txtにリストされている隠しフォルダーがあり、ボットにすべてを許可しないように指示しているとします。そのフォルダへのトラフィックが見られる場合は、robots.txtを調べてから覗いてみることにした人だと推測できます。これはハニーポットとして扱うことができます。さらに、ドキュメント内にキーワード値を持たないコードを非表示にして、人間には見えないようにすることができます。誰かがこのコードを実行したり、コード内の非表示のリンクをたどったりしたときに、robots.txt ファイルに従わない場合は、違反者のリストに追加することもできます。
また、MySQL でデータベースをセットアップし、PHP などの言語を使用して、ハニーポットにアクセスする接続をドロップ (またはオフサイトをリダイレクト) したり、ログイン フォームや FTP アカウントをブルート フォース攻撃しようとするアドレスを使用したりすることもできます。Web フォームにデータベースを実装して、既にフォームを完了した人を追跡しています。複数のスパム試行がある場合、それらはブラックリストに追加されます。
IP アドレスの範囲をブロックするよりも、逆引き検索を使用してユーザーをブロックし、TLD で国コードを検索するか、ブラウザーが特定の母国語のページを要求するユーザーをブロックする方がはるかに簡単です。
あなたの例に戻る
コードでは、[or] を使用していない限り、 RewriteCondの各行が true である必要があります。Apache でのアクセス制限に関する詳細なリファレンスはこちら
REMOTE_HOST
はドメイン名用です...したがって、この行:
RewriteCond %{REMOTE_HOST} ^1\.2\.3\.0/154
REMOTE_ADDR
代わりに使用する必要があります:
RewriteCond %{REMOTE_ADDR} ^1\.2\.3\.(1[0-4][0-9]|15[0-4]|[0-9][0-9]|[0-9])$
RewriteRule ^(.*)$ australia-ip-restriction [R=301,L]