Iran Conduit Firewall — Psiphon Conduitをイラン限定で最適化

Security

概要

Psiphon Conduitノードは誰でも接続できるため、帯域が世界中の利用者に分散してしまいます。本リポジトリ「iran-conduit-firewall」は、その帯域をイラン国内のユーザーに集中させる目的で作られたツールです。Pythonスクリプト(iran_firewall.py)と管理者権限での実行を補助するバッチ(RUN_AS_ADMIN.bat)を用い、2000以上のイランIPレンジを用いて非イランIPからの接続を遮断します。実行は管理者権限が必要で、Conduitに関係する通信のみを対象にするため、他のアプリケーション動作への影響は最小化される設計になっています。インターネット遮断下で支援を行う場面を想定していますが、運用前に法的・倫理的な確認が推奨されます。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 0
  • ウォッチャー数: 8
  • コミット数: 5
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • Psiphon Conduitに対してのみ制限を適用し、その他の通信は通常通り動作
  • 2000以上のイランIPレンジを使用して非イランIPをブロック
  • 管理者権限での実行を補助するRUN_AS_ADMIN.batを同梱
  • シンプルなPythonスクリプトで設定・解除を行える

技術的なポイント

本プロジェクトは主にWindows環境を想定しており、管理者権限でファイアウォール設定を追加・削除する仕組みを提供します。実装の肝はイランのIPレンジリスト(2000+ のCIDR)を使って「許可対象(イラン)を限定」あるいは「非イランを遮断」する方針にあります。Windowsファイアウォールはリモートアドレス(RemoteAddress)を指定できるため、多数のCIDRをルール化してConduitが使用するポート/プロセスに対する着信を制御します。大量のCIDRを扱うとルール数が膨張し管理や適用にコストが出るため、スクリプト側ではルールのバッチ追加・削除や既存ルールのバックアップ・復元を想定した設計が重要です。

RUN_AS_ADMIN.batはスクリプト実行時の権限昇格を簡易化するために同梱されており、管理者権限でないとファイアウォールAPIやnetsh/PowerShellのコマンドが失敗するため必須です。ライセンスファイルが含まれている点は運用時の配布条件を把握するうえで重要です。また、Conduitに限定して影響を与える実装は、他のサービスの通信を断ち切らない点で安全性を高めますが、次のような留意点があります:Windowsファイアウォールのルール上限、適用反映の遅延、誤設定による遮断リスク。運用前に既存のファイアウォール設定のバックアップとテスト環境での検証を必須とする実装になっていることが望まれます。

さらに、脅威モデルや法的側面も重要です。インターネット遮断時に帯域を特定国向けに限定する操作は、制作者の意図や地域の法令、利用者の同意に依存します。技術的には実行・巻き戻しが可能ですが、運用ポリシーを明確にしてから導入する必要があります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • RUN_AS_ADMIN.bat: file
  • iran_firewall.py: file

まとめ

Psiphon Conduitの帯域をイラン国内ユーザーに集中させるための、管理者権限で動作する実用的なWindows向けツール。

リポジトリ情報:

READMEの抜粋:

Iran-Only Firewall for Psiphon Conduit

فارسی | 🇬🇧 English


English Guide

Maximize your Psiphon Conduit bandwidth for Iranian users during internet shutdowns.

When you run a Psiphon Conduit node, people from ANY country can connect. This tool blocks non-Iran IPs so only Iranians can use your bandwidth.

✨ Features

  • Only affects Conduit - Your PC works normally
  • 2000+ Iran IP ranges - Updated from…