Skip to content

A list of IP addresses allocated to Japan, represented in CIDR notation with a minimum of 3,104 entries.

Notifications You must be signed in to change notification settings

softjapan/japan-ip-cidr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

日本国内IPアドレス一覧 DDoS攻撃防ぐための設定サンプル

日本国内で運用している Web サーバーへの DDoS 攻撃や不正アクセスを防ぐため、日本以外の IP アドレスからのアクセスを制限する際に役立つサンプル設定ファイルと、日本に割り当てられている IP アドレスの CIDR 一覧をまとめたリポジトリです。

背景

  • 日本国内からのアクセスのみ許可したいケース
    • 例:日本向けサービスや管理画面での不正アクセス防止
    • 大規模 DDoS 攻撃などの被害を低減
  • 日本に割り当てられている IP アドレスは 約 1 億 8,916 万 4,800 個 あり、そのすべてを CIDR 最小単位で表現すると 3104 行 になります。
  • 大量の CIDR を手動で管理するのは困難なため、CIDR 一覧ファイルと各種サーバー向けの設定サンプルを用意しました。

ファイル一覧

  1. JPAPN-IP-CIDR.txt

    • 日本国内に割り当てられている IP アドレスを CIDR 形式でまとめたテキストファイル
    • 約 3104 行にわたる CIDR ルールが記載されています
  2. nginx.conf

    • Nginx サーバーにおいて、日本以外の IP アドレスからのアクセスを拒否する設定例
    • include ディレクティブなどで JPAPN-IP-CIDR.txt を参照するようにしてご利用ください
  3. .htaccess

    • Apache サーバー(※.htaccess をサポートしている環境) で、日本以外の IP アドレスを拒否する設定例
    • バーチャルホストごとや特定ディレクトリごとに簡易的に制限をかけたい場合に便利です
  4. 000-default.conf

    • Apache サーバー(※ conf 設定ファイル方式) で、日本以外の IP アドレスを拒否する設定例
    • VirtualHost ディレクティブ内に CIDR を直接記述して利用します

使用方法

1. CIDR リストの取得・配置

  • リポジトリから JPAPN-IP-CIDR.txt をダウンロードし、サーバー上の任意の場所に配置します。
  • ファイル内に記載の CIDR 群を、必要に応じて設定ファイルに組み込みます。

2. Nginx でのアクセス制限サンプル

  1. nginx.conf を参考にしながら、Nginx の設定を編集してください。
  2. geo ディレクティブや map を利用して、JPAPN-IP-CIDR.txt から情報を読み込み、日本国内の IP かどうかを判定してアクセスを許可・拒否できます。
  3. 設定変更後は必ず nginx -t などで構文チェックを行い、問題がなければ再起動またはリロードします。
# 例: 構文チェック
sudo nginx -t

# 例: 再起動
sudo systemctl restart nginx

3. Apache (.htaccess) でのアクセス制限サンプル

  1. .htaccess が有効なディレクトリに JPAPN-IP-CIDR.txt の CIDR 情報をコピペ、または外部ファイルとして参照する形で記述します。
  2. 基本的には Require ip <CIDR> の形式で許可リストを設定し、最後に Require all denied を書くことで日本以外からのアクセスを拒否します。
  3. サーバー全体で .htaccess による設定を反映できるように、Apache の設定 (AllowOverride All など) が正しく設定されていることを確認してください。

4. Apache (conf 設定) でのアクセス制限サンプル

  1. 000-default.conf のサンプルは、/etc/apache2/sites-available/ などに配置し、バーチャルホスト単位で CIDR 制限を行う形になっています。
  2. Require ip ディレクティブで日本国内の CIDR リストを許可し、そのほかを拒否する形で設定します。
  3. 設定を行ったあと、apache2ctl configtest などで構文チェックし、問題がなければ再起動またはリロードします。
# 例: 構文チェック
sudo apache2ctl configtest

# 例: 再起動
sudo systemctl restart apache2

注意事項

  1. 完全な防御ではありません
    • すべての DDoS 攻撃や不正アクセスを 100% 防ぐことは難しく、他のセキュリティ対策との組み合わせが重要です。
  2. CIDR リストの更新
    • IP アドレスの割り振り状況は変化する可能性があります。定期的な更新を推奨します。
  3. CDN やプロキシの利用
    • クラウドサービスや CDN を通してアクセスが来る場合は、実 IP が変わってしまうことがあります。その場合は本設定と整合性が取れるように注意してください。

ライセンス

本リポジトリの内容は MIT License を適用しています。詳細は LICENSE ファイルをご確認ください。

作者 / 貢献

  • softjapan - GitHub Profile
  • コントリビューションは大歓迎です。Pull Request や Issue でご連絡ください。

今後も日本の IP アドレス情報を更新しつつ、各種 Web サーバーでのアクセス制限方法を追加していく予定です。
ご利用の際はぜひ Star やフォーク等よろしくお願いいたします。

About

A list of IP addresses allocated to Japan, represented in CIDR notation with a minimum of 3,104 entries.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published