
Tor出口リレーのための高速でモジュール式のスキャナー。正規リポジトリ(Issueトラッカーを含む)は https://gitlab.torproject.org/tpo/network-health/exitmap にあります。

このリポジトリはメンテナンスされていません。 Tor Projectのフォークを参照してください。
Exitmapは、Tor出口リレー向けの高速でモジュール式のPythonベースのスキャナです。Exitmapモジュールは、すべての出口リレー(のサブセット)上で実行されるタスクを実装します。関数型プログラミングの背景があるなら、exitmapをTor出口リレーに対する map() インターフェースと考えてください。モジュールは、ウェブページの取得、ファイルのアップロード、SSHサーバーへの接続、IRCチャンネルへの参加など、あらゆるTCPベースのネットワークタスクを実行できます。
実際には、exitmapは出口リレーの信頼性と信頼度を監視するのに役立ちます。Tor Projectは、Tor Projectのcheckサービスにおける偽陰性をチェックし、悪意のある出口リレーを見つけるためにexitmapを使用しています。exitmap用の新しいモジュールを開発するのは簡単です。doc/ディレクトリのHACKINGファイルを参照するか、既存のモジュールをチェックしてください。
ExitmapはStemを使用して、指定されたすべての出口リレーへのサーキットを作成します。Torが確立されたサーキットをexitmapに通知するたびに、新しく確立されたサーキットに対してモジュールが呼び出されます。モジュールは純粋なPythonスクリプトまたは実行可能ファイルです。実行可能ファイルの場合は、torsocksが必要です。
最後に、exitmapはネットワーク測定ツールであり、通常のTorユーザーにはほとんど役に立たないことに注意してください。Tor Projectは既に定期的にこのツールを実行しています。これ以上のexitmapスキャンは不必要なネットワーク負荷を引き起こすだけです。exitmapが公開されている唯一の理由は、そのソースコードと設計に関心を持つ人がいるかもしれないからです。
ExitmapはライブラリStemを使用してTorと通信します。Stemをインストールする方法はたくさんあります。最も簡単なのは、提供されているrequirements.txtファイルと一緒にpipを使用することです。
$ pip install -r requirements.txt
exitmapが必要とする唯一の引数はモジュール名です。例えば、checktestモジュールでexitmapを実行するには、次のコマンドを実行します:
$ ./bin/exitmap checktest
コマンドライン出力には、Torのブートストラップ方法、checktestモジュールの出力、およびスキャン概要が表示されます。3ホップが必要なく、静的な最初のホップを使用した2ホップを希望する場合は、次のコマンドを実行します:
$ ./bin/exitmap --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
同じテストをドイツの出口リレーのみに対して実行するには、次のコマンドを実行します:
$ ./bin/exitmap --country DE --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
サーキット作成の間に5秒間の一時停止を入れ、Torネットワークとスキャン先への負荷を軽減したい場合は、次のコマンドを実行します:
$ ./bin/exitmap --build-delay 5 checktest
1234567890ABCDEF1234567890ABCDEF12345678 は疑似フィンガープリントであり、あなたが制御する出口リレーに置き換える必要があることに注意してください。
exitmapのすべてのオプションの詳細を知るには、次のコマンドを実行します:
$ ./bin/exitmap --help
Exitmapはバッテリー同梱で提供され、以下のモジュールがあります:
デフォルトでは、exitmapはホームディレクトリの.exitmaprcファイルを読み取ろうとします。このファイルはすべてのコマンドラインオプションを受け付けますが、マイナス記号をアンダースコアに置き換える必要があります。以下は例です:
[Defaults]
first_hop = 1234567890ABCDEF1234567890ABCDEF12345678
verbosity = debug
build_delay = 1
analysis_dir = /path/to/exitmap_scans
exitmapが気に入らない? それなら、tortunnel、SoaT、torscanner、DetecTor、またはSelekTORを試してみてください。
プルリクエストを提出する前に、以下のコマンドを実行してすべての単体テストが合格することを確認してください:
$ pip install -r requirements-dev.txt
$ py.test --cov-report term-missing --cov-config .coveragerc --cov=src test
連絡先: Philipp Winter [email protected]
OpenPGPフィンガープリント: B369 E7A2 18FE CEAD EB96 8C73 CF70 89E3 D7FD C0D0