Rocky LinuxでのGeolocationを用いたIP制限の実装ガイド

Rocky LinuxでのGeolocationを用いたIP制限の実装ガイド

この記事では、Rocky Linux上でGeolocationデータを利用して特定の国や地域からのIPアドレスを制限する方法を紹介します。これにより、セキュリティの強化とアクセスの制御を実現します。

GeoIPデータのインストールと設定

まず、GeoIPデータベースをインストールし、利用可能な形に準備します。

sudo dnf install -y epel-release
sudo dnf install -y geoip geoip-update

GeoIPデータベースの更新

GeoIPデータベースを最新の状態に更新します。

sudo geoipupdate

Nginxのインストールと設定ファイルの編集

Geolocationを利用するNginxをインストールし、設定を開始します。

sudo dnf install -y nginx
sudo vi /etc/nginx/nginx.conf

GeoIPモジュールの設定

NginxでGeoIPモジュールを有効化し、解析のための設定を行います。

http {
…
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default no;
US yes;
CA yes;
}
<pre><code>server {
    ...
    if ($allowed_country = no) {
        return 403;
    }
}</code></pre>
}

ファイアウォールでのIP制限

Nginxでの制限と合わせて、ファイアウォールでも国別IP制限を設定します。

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" reject'
sudo firewall-cmd --reload

設定の確認とテスト

設定が正しく動作しているか、テストし確認します。

sudo nginx -t
sudo systemctl restart nginx

以上の設定が適切に出来た場合、指定した国からのアクセスを制限できます。