apacheモジュールのインストール
モジュールがインストール可能か確認
dnf search mod_maxminddb
インストールされているかの確認
dnf list installed | grep mod_maxminddb
インストール
dnf install mod_maxminddb
データベースのインストール
データベースをダウンロードするには、MaxMindのサイトにアクセスして、アカウントを作る必要がある。
アカウント作成が完了したら、ログインして、GeoLite2データベースをダウンロードする。
国別のIP制限をしたいので GeoLite2 Country
を選択。
ダウンロードしたファイルをサーバーにアップロードして解凍。
tar -xvzf GeoLite2-Country.tar.gz
GeoLite2-Country.mmdbというファイルがあるので/usr/share/GeoIPに移動。
sudo mv GeoLite2-Country.mmdb /usr/share/GeoIP/
/usr/share/
は、共有データファイルやアプリケーションデータを配置するための標準的なディレクトリ。読み取り専用のデータを配置するための場所。
shareディレクトリにgeoipというディレクトリがなければ作る
sudo mkdir -p /usr/share/GeoIP
sudo chmod 755 /usr/share/GeoIP
apacheの設定
/etc/httpd/conf.d/ に maxminddb.conf というファイルができていたのでそこの記述する
<IfModule mod_maxminddb.c>
MaxMindDBEnable On
MaxMindDBFile COUNTRY_DB /usr/share/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code
</IfModule>
# ロシア、ブラジル、北朝鮮、ウクライナ、イランを拒否
<Location "/">
SetEnvIf MM_COUNTRY_CODE ^(RU|BR|KP|UA|IR) BlockCountry
Deny from env=BlockCountry
</Location>
設定を反映させるために再起動
sudo systemctl restart httpd
その他
MaxMindのライセンスキー取得方法はこちらが分かりやすい
IPv4アドレス移転履歴
IPv4アドレス移転履歴 - JPNIC