
Устаревшая версия 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) для обмена наблюдениями и данными о различных типах, методах и масштабах сетевого вмешательства в мире.
«Сеть интерпретирует цензуру как повреждение и обходит её в обход.»
— Джон Гилмор; журнал TIME (6 декабря 1993)
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, но может отсутствовать в некоторых минимальных или нестандартных установках.
Вы можете установить ooniprobe на macOS, если у вас установлен homebrew (http://brew.sh/), с помощью::
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
или установить ooniprobe для текущего пользователя::
pip install ooniprobe
Net test — это набор измерений для оценки того, какой вид интернет-цензуры происходит.
Decks — это коллекции сетевых тестов ooniprobe с некоторыми связанными входными данными.
Collector — это служба, используемая для отправки результатов измерений.
Test helper — это служба, используемая пробой для успешного выполнения измерений.
Bouncer — это служба, используемая для обнаружения адресов тестовых помощников и коллекторов.
После успешной установки ooniprobe вы сможете получить доступ к веб-интерфейсу на вашем локальном компьютере по адресу http://localhost:8842/ после выполнения:: ooniprobe -w или запуска демона.
Теперь вы должны увидеть мастер настройки веб-интерфейса, где сможете прочитать о рисках, связанных с запуском ooniprobe. После правильного ответа на вопросы викторины вы сможете включить или отключить тесты ooniprobe, настроить способ подключения к коллектору измерений и, наконец, настроить параметры конфиденциальности.
По умолчанию ooniprobe не будет включать личную идентифицирующую информацию в результаты тестов и не будет создавать pcap-файл. Это поведение можно изменить.
Начиная с версии ooniprobe 2.0.0, cron-задачи не требуются, так как ooniprobe-agent отвечает за планирование задач.
Вы можете гарантировать, что ooniprobe-agent всегда запущен, установив и включив systemd-модуль ooniprobe.service::
wget https://raw.githubusercontent.com/TheTorProject/ooni-probe/master/scripts/systemd/ooniprobe.service --directory-prefix=/etc/systemd/system
systemctl enable ooniprobe
systemctl start ooniprobe
Вы должны увидеть примерно такой вывод, если служба ooniprobe (systemd) активна и загружена, выполнив systemctl status ooniprobe::
● 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
Затем отправляйте патчи на рассмотрение в виде pull-запросов в этот репозиторий GitHub:
https://github.com/TheTorProject/ooni-probe
Прочитайте эту статью, чтобы узнать, как создать pull-запрос на GitHub (https://help.github.com/articles/creating-a-pull-request).
Если вы предпочитаете не использовать GitHub (или у вас нет учётной записи), вы также можете отправлять патчи в виде вложений к тикетам.
Обязательно отформатируйте патч (при условии, что вы работаете в ветке функций, отличной от master) с помощью::
git format-patch master --stdout > my_first_ooniprobe.patch
В системах на основе debian среду разработки можно настроить следующим образом (предварительные требования включают базовые средства сборки, 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