
OONI ProbeのレガシーPythonバージョン
⚠️⚠️⚠️⚠️: このリポジトリには、ooniprobeの旧実装のソースコードが含まれています。代わりに以下を参照してください:
OONIへのご関心、ありがとうございます!
以下は、旧実装の元のREADME.rstです。
.. image:: https://travis-ci.org/TheTorProject/ooni-probe.png?branch=master :target: https://travis-ci.org/TheTorProject/ooni-probe
.. image:: https://coveralls.io/repos/TheTorProject/ooni-probe/badge.png :target: https://coveralls.io/r/TheTorProject/ooni-probe
.. image:: https://slack.openobservatory.org/badge.svg :target: https://slack.openobservatory.org/badge.svg
.. image:: https://ooni.torproject.org/images/ooni-header-mascot.png :target: https:://ooni.torproject.org/
OONI(Open Observatory of Network Interference)は、グローバルな観測ネットワークです。その目的は、自由でオープンソースソフトウェア(FL/OSS)を用いてオープンな方法論で高品質のデータを収集し、世界中の様々な種類、方法、程度のネットワーク改ざんに関する観測データや情報を共有することです。
「ネットは検閲を損害と解釈し、迂回する。」
— John Gilmore; TIME誌(1993年12月6日)
ooniprobeは、ユーザーがネットワークを調べ、OONIプロジェクトのデータを収集するために最初に実行するプログラムです。ネットワークの監視や検閲の兆候をテストすることに関心がありますか?他者と共有するデータを収集し、あなたや他の人がネットワークをよりよく理解したいですか?もしそうなら、このドキュメントをお読みください。ooniprobeがあなたの目的達成に役立つネットワークデータの収集を支援することを願っています!
ooniprobeの実行は潜在的にリスクのある活動です。これは、あなたのいる法域や実行するテストに大きく依存します。技術的には、あなたのインターネット接続を監視している人物が、あなたがooniprobeを実行していることを認識することが可能です。つまり、あなたの国でネットワーク測定テストの実行が違法とされている場合、あなたが特定される可能性があります。
さらに、ooniprobeはインストール先のマシンをフォレンジック解析から保護するための予防策を一切講じていません。ooniprobeをインストールまたは使用したことがあなたにとって責任となる場合は、このリスクを認識してください。
最新のooniprobeバージョン(DebianおよびUbuntuリリース向け)は、deb.torproject.orgパッケージリポジトリにあります。
Debian stable (jessie) の場合::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org jessie main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
Debian testing の場合::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org testing main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
Debian unstable の場合::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org unstable main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
Ubuntu 16.10 (yakkety), 16.04 (xenial) または 14.04 (trusty) の場合::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org $RELEASE main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
注: $RELEASE は yakkety, xenial または trusty に置き換えてください。自動的には行われません。また、universe リポジトリが有効になっていることを確認してください。universe リポジトリは標準のUbuntuインストールではデフォルトで有効ですが、一部の最小インストールや非標準のインストールでは有効でない場合があります。
macOSでは、homebrew (http://brew.sh/) をインストールしていれば、以下のコマンドでooniprobeをインストールできます::
brew install ooniprobe
以下の依存関係がインストールされていることを確認してください。
オプションの依存関係:
Debianベースのシステムでは、通常以下のコマンドを実行することでインストールできます::
sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy
その後、以下のコマンドでooniprobeをインストールできます::
sudo pip install ooniprobe
またはユーザーとしてインストール::
pip install ooniprobe
Net test は、どのようなインターネット検閲が行われているかを評価するための一連の測定です。
Decks は、関連する入力とともにooniprobeのnettestを集めたものです。
Collector は、測定結果を報告するために使用されるサービスです。
Test helper は、プローブが測定を正常に実行するために使用するサービスです。
Bouncer は、テストヘルパーとコレクターのアドレスを発見するために使用されるサービスです。
ooniprobeのインストールが成功したら、以下のコマンドを実行した後、ホストマシン上の http://localhost:8842/ でWeb UIにアクセスできるようになります:: ooniprobe -w またはデーモンを起動します。
Web UIのセットアップウィザードが表示され、ooniprobeの実行に伴うリスクを確認できます。クイズに正解すると、ooniprobeのテストを有効または無効にしたり、測定コレクターへの接続方法を設定したり、プライバシー設定を構成したりできます。
デフォルトでは、ooniprobeはテスト結果に個人を特定する情報を含めず、pcapファイルも作成しません。この動作はカスタマイズ可能です。
ooniprobeバージョン2.0.0以降、cronジョブは不要になりました。ooniprobe-agentがタスクスケジューリングを担当します。
systemdユニット ooniprobe.service をインストールして有効にすることで、ooniprobe-agentが常に実行されていることを確認できます::
wget https://raw.githubusercontent.com/TheTorProject/ooni-probe/master/scripts/systemd/ooniprobe.service --directory-prefix=/etc/systemd/system
systemctl enable ooniprobe
systemctl start ooniprobe
systemctl status ooniprobe を実行すると、ooniprobe(systemd)サービスがアクティブでロードされている場合、次のような出力が表示されるはずです::
● ooniprobe.service - ooniprobe.service, network interference detection tool
Loaded: loaded (/etc/systemd/system/ooniprobe.service; enabled)
Active: active (running) since Thu 2016-10-20 09:17:42 UTC; 16s ago
Process: 311 ExecStart=/usr/local/bin/ooniprobe-agent start (code=exited, status=0/SUCCESS)
Main PID: 390 (ooniprobe-agent)
CGroup: /system.slice/ooniprobe.service
└─390 /usr/bin/python /usr/local/bin/ooniprobe-agent start
ディストリビューションがケーパビリティをサポートしている場合、OONIをrootとして実行する必要がなくなります::
setcap cap_net_admin,cap_net_raw+eip /path/to/your/virtualenv's/python2
ooni-probeに関するバグや問題は、The Tor Projectの課題トラッカーで「Ooni」コンポーネントに報告できます: https://trac.torproject.org/projects/tor/newticket?component=Ooni。
アカウントを登録するか、グループアカウント「cypherpunks」(パスワード「writecode」)を使用できます。
ooniprobeのコードは、以下のgitリポジトリからダウンロードできます::
git clone https://github.com/TheTorProject/ooni-probe.git
その後、このgithubリポジトリへのプルリクエストとしてパッチをレビュー用に提出してください:
https://github.com/TheTorProject/ooni-probe
プルリクエストの作成方法については、この記事をお読みください(https://help.github.com/articles/creating-a-pull-request)。
githubを使用したくない(またはアカウントがない)場合は、チケットにパッチを添付して提出することもできます。
パッチは、masterとは異なるフィーチャーブランチで作業している場合、次のようにフォーマットしてください::
git format-patch master --stdout > my_first_ooniprobe.patch
Debianベースのシステムでは、開発環境を以下のようにセットアップできます(前提条件としてbuild-essential、python-dev、torが必要です。torについては https://www.torproject.org/docs/debian.html.en を参照してください)::
sudo apt-get install python-pip python-virtualenv virtualenv
sudo apt-get install libgeoip-dev libffi-dev libdumbnet-dev libssl-dev libpcap-dev
git clone https://github.com/TheTorProject/ooni-probe
cd ooni-probe
virtualenv venv
virtualenv venv は現在のディレクトリにフォルダを作成し、Python実行ファイルと、他のパッケージをインストールするために使用できるpipライブラリのコピーが含まれます。仮想環境を使用するには、アクティベートする必要があります::
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py install
その後、インストールが正常に行われたかどうかを次のコマンドで確認できます::
ooniprobe -s
これにより、ooniprobeの実行リスクが説明され、理解したことを確認した後、利用可能なテストが表示されます。
ooniprobeエージェントを実行するには、代わりに次のように入力します::
ooniprobe-agent run
ooniprobeのユニットテストを実行するには、次のように入力します::
coverage run $(which trial) ooni