Ubuntu または Debian で Apache を使用して、GeoIP ベースのブロックをセットアップします。 GeoIP モジュールにより、管理者は場所に基づいてトラフィックをブロックまたはリダイレクトできます。
このガイドでは、GeoIP モジュールをインストールして、特定の国をブロックするように構成する方法を学習します。
前提条件
Apache のインストールと構成。 Apache2 のインストールおよび構成方法については、このガイドを参照してください。
GeoIP モジュールをインストール
次のコマンドを使用して、Apache 用の GeoIP モジュールをインストールします。
sudo apt install libapache2-mod-geoip
このコマンドは、Apache に必要なモジュールをインストールします。
GeoIP を有効にする
GeoIP を有効にする方法は 2 つあります。サーバー全体で GeoIP を有効にしたい場合は、方法 1 に従ってください。この方法にはパフォーマンス上の問題があります。
仮想ホスト構成から GeoIP を有効にすることもできます。
方法 1 – サーバー全体の構成
モジュールがインストールされたら、モジュール構成を編集し、以下にリストされているように変更を加えます。
ファイル モジュール構成ファイルを編集します。
sudo nano /etc/apache2/mods-available/geoip.conf
- GeoIPEnable 行を設定します オフから オンに .
- GeoIPDBFile のコメントを外します
最終的なファイルは次のようになります。
<IfModule mod_geoip.c> GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat </IfModule>
ファイルを保存して終了します。
モジュールを有効にします。
sudo a2enmod geoip
方法 2 – 仮想ホスト構成
モジュールをインストールしたら、GeoIP データベースをインストールする必要があります。そのため、仮想ホスト構成を編集して、次の変更を加えることができます。
仮想ホスト構成を編集します。
sudo nano /etc/apache2/sites-available/virtualhost.conf
ServerAlias の下に以下を追加します
GeoIPEnable On GeoIPDBFile /usr/share/GeoIP/GeoIP.dat GeoIPScanProxyHeaders On
ファイルを保存して終了します。
Apache を再起動
構成が正しいかどうかを確認し、Apache を再起動してください。
sudo apachectl configtest sudo service apache2 restart
これで、GeoIP が有効になりました。
制限を管理
特定の国をブロック
Web ルート ディレクトリ内にある .htaccess ファイルを作成または開き、次のスニペットを追加して国をブロックします。
SetEnvIf GEOIP_COUNTRY_CODE UA BlockCountry SetEnvIf GEOIP_COUNTRY_CODE VN BlockCountry Deny from env=BlockCountry
上記の構成は、上記の 2 つの国からのリクエストをブロックします。希望に応じて含めることができます。
特定の国を許可
Web ルート ディレクトリ内にある .htaccess ファイルを作成または開き、次のスニペットを追加して国を許可します。
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry SetEnvIf GEOIP_COUNTRY_CODE CA AllowCountry Deny from all Allow from env=AllowCountry
上記の構成では、上記の 2 か国からのリクエストのみが許可されます。希望に応じて含めることができます。
国コードのリストを見つけることができます maxmind 公式データベースより。
結論
これで、Ubuntu または Debian サーバーで Apache を使用して GeoIP ベースの制限を構成する方法を学習しました。
御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。