noteホームサーバーnginxでGoIP2を使ってアクセス制限サーバー2024-06-26手軽に国別のアクセス制限をかける方法のメモ。1.26.1GeoIP設定net/geoipupdateインストールGeoIPデータの自動アップデートツールをportsからインストール。net/geoipupdateアップデート用のツールがインストールされるけれども、これだけではまだデータのダウンロードはできない。Account」のページを参照し、アカウントを作成する。GeoLite2」を選択すればよい。1番目と3番目の選択肢は、有償版を使用したい人向け。services」の項にあるリンク先にアクセスし、必要事項を記入してアカウントを作成する。ログイン時にメール認証が必要になるので、ちゃんとメールの届くアドレスで登録すること。MaxMindはパスキーに対応しているので、一度ログインした後にパスキー登録すれば、メール認証は不要となる。key」をクリックしてライセンスキーを発行する。アカウントIDとライセンスキーは発行時にしか表示されないので、コピー&ペーストで保存しておく。Config」ボタンをクリックすると、必要情報が埋められたGeoIP.confがダウンロードできる。GeoIP.conf編集/usr/local/etc/GeoIP.confを編集して、アカウントIDとライセンスキーを入力する。ダウンロードしたGeoIP.confで上書きする。データ更新geoipupdateコマンドを実行して、データを取得。自動更新を、cron登録する。-ecrontabに、次の行を追加。1,3/usr/local/bin/geoipupdatenginx設定geoipモジュール追加nginxをビルドし直して、geoipモジュールを追加する。nginxオプション選択で、次のものをチェックして再ビルド。modulenginx.conf編集/usr/local/etc/nginx/nginx.confを編集し、load_moduleを追加。/usr/local/libexec/nginx/ngx_http_geoip2_module.so;httpディレクティブに使用するファイルを指定。/usr/local/share/GeoIP/GeoLite2-Country.mmdb;アクセス制限/許可を、httpディレクティブに次のように定義。no;}$allowed_countryや$denied_countryの部分は、自分で好きなように変数定義できる。ここで定義した変数を使って、httpディレクティブやlocationディレクティブ内で次のように制限をかけることができる。403;}nginx再起動nginx.confの編集を終えたら、nginxを再起動して反映させる。note.ホーム検索トップサイドバータイトルとURLをコピーしました。