
L'ancienne version Python d'OONI Probe
⚠️⚠️⚠️⚠️ : ce dépôt contient le code source de l'ancienne implémentation d'ooniprobe. Veuillez plutôt consulter :
https://github.com/ooni/probe, le méta-dépôt où vous devez ouvrir les problèmes et demandes de fonctionnalités ;
https://github.com/ooni/probe-cli, qui contient la nouvelle implémentation d'ooniprobe en tant que client en ligne de commande écrit en Go ;
https://github.com/ooni/probe-desktop, qui contient l'application de bureau ooniprobe, écrite en JavaScript et Electron.
Merci de votre intérêt pour OONI !
Le reste de ce fichier contient le README.rst original pour l'ancienne implémentation :
.. 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, l'Observatoire Ouvert de l'Interférence Réseau, est un réseau d'observation mondial dont le but est de collecter des données de haute qualité en utilisant des méthodologies ouvertes, avec des logiciels libres et open source (FL/OSS) pour partager des observations et des données sur les différents types, méthodes et ampleurs de l'altération du réseau dans le monde.
« Le Net interprète la censure comme un dommage et la contourne. »
- John Gilmore ; magazine TIME (6 décembre 1993)
ooniprobe est le premier programme que les utilisateurs exécutent pour sonder leur réseau et collecter des données pour le projet OONI. Êtes-vous intéressé à tester votre réseau pour détecter des signes de surveillance et de censure ? Voulez-vous collecter des données à partager avec d'autres, afin que vous et d'autres puissiez mieux comprendre votre réseau ? Si oui, veuillez lire ce document et nous espérons qu'ooniprobe vous aidera à rassembler des données réseau qui vous assisteront dans vos efforts !
Exécuter ooniprobe est une activité potentiellement risquée. Cela dépend grandement de la juridiction dans laquelle vous vous trouvez et du test que vous exécutez. Il est techniquement possible qu'une personne observant votre connexion Internet soit au courant que vous exécutez ooniprobe. Cela signifie que si effectuer des mesures de réseau est considéré comme illégal dans votre pays, vous pourriez être repéré.
De plus, ooniprobe ne prend aucune précaution pour protéger la machine cible d'installation contre une analyse forensique. Si le fait d'avoir installé ou utilisé ooniprobe est une responsabilité pour vous, veuillez être conscient de ce risque.
La dernière version d'ooniprobe pour les distributions Debian et Ubuntu se trouve dans le dépôt de paquets deb.torproject.org.
Sur 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
Sur 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
Sur 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
Sur Ubuntu 16.10 (yakkety), 16.04 (xenial) ou 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
Remarque : Vous devrez remplacer $RELEASE par yakkety, xenial ou trusty. Cela ne se fera pas automatiquement. Vous devrez également vous assurer que le dépôt universe est activé. Le dépôt universe est activé par défaut dans une installation standard d'Ubuntu, mais peut ne pas l'être sur certaines installations minimales ou non standard.
Vous pouvez installer ooniprobe sur macOS si vous avez installé homebrew (http://brew.sh/) avec ::
brew install ooniprobe
Assurez-vous d'avoir installé les dépendances suivantes :
Dépendances optionnelles :
Sur les systèmes basés sur Debian, cela peut généralement être fait en exécutant ::
sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy
Ensuite, vous devriez pouvoir installer ooniprobe en exécutant ::
sudo pip install ooniprobe
ou installer ooniprobe en tant qu'utilisateur ::
pip install ooniprobe
Net test est un ensemble de mesures pour évaluer quel type de censure Internet se produit.
Decks sont des collections de nettests ooniprobe avec des entrées associées.
Collector est un service utilisé pour rapporter les résultats des mesures.
Test helper est un service utilisé par une sonde pour effectuer ses mesures avec succès.
Bouncer est un service utilisé pour découvrir les adresses des test helpers et des collectors.
Après avoir installé ooniprobe avec succès, vous devriez pouvoir accéder à l'interface Web sur votre machine hôte à http://localhost:8842/ après avoir exécuté :: ooniprobe -w ou en démarrant le démon.
L'assistant de configuration de l'interface Web devrait maintenant s'afficher, où vous pouvez lire les risques liés à l'exécution d'ooniprobe. Après avoir répondu correctement au quiz, vous pouvez activer ou désactiver les tests ooniprobe, définir comment vous connecter au collecteur de mesures et enfin configurer vos paramètres de confidentialité.
Par défaut, ooniprobe n'inclura pas d'informations personnelles identifiables dans les résultats des tests, ni ne créera de fichier pcap. Ce comportement peut être personnalisé.
À partir de la version 2.0.0 d'ooniprobe, il n'est plus nécessaire d'utiliser des cronjobs car ooniprobe-agent est responsable de la planification des tâches.
Vous pouvez vous assurer qu'ooniprobe-agent s'exécute en permanence en installant et en activant l'unité 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
Vous devriez voir une sortie similaire si le service ooniprobe (systemd) est actif et chargé en exécutant systemctl status ooniprobe ::
● ooniprobe.service - ooniprobe.service, outil de détection d'interférence réseau
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
Si votre distribution prend en charge les capacités, vous pouvez éviter d'avoir à exécuter OONI en tant que root ::
setcap cap_net_admin,cap_net_raw+eip /path/to/your/virtualenv's/python2
Vous pouvez signaler les bogues et problèmes que vous rencontrez avec ooni-probe sur le gestionnaire de tickets du projet Tor, en les classant sous le composant « Ooni » : https://trac.torproject.org/projects/tor/newticket?component=Ooni.
Vous pouvez soit créer un compte, soit utiliser le compte de groupe « cypherpunks » avec le mot de passe « writecode ».
Vous pouvez télécharger le code d'ooniprobe depuis le dépôt git suivant ::
git clone https://github.com/TheTorProject/ooni-probe.git
Vous devez ensuite soumettre des correctifs pour révision sous forme de demandes de tirage (pull requests) vers ce dépôt github :
https://github.com/TheTorProject/ooni-probe
Lisez cet article pour apprendre comment créer une demande de tirage sur github (https://help.github.com/articles/creating-a-pull-request).
Si vous préférez ne pas utiliser github (ou si vous n'avez pas de compte), vous pouvez également soumettre des correctifs en pièces jointes aux tickets.
Assurez-vous de formater le correctif (étant donné que vous travaillez sur une branche de fonctionnalité différente de master) avec ::
git format-patch master --stdout > my_first_ooniprobe.patch
Sur les systèmes basés sur Debian, un environnement de développement peut être configuré comme suit (les prérequis incluent build-essential, python-dev et tor ; pour tor, voir 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 créera un dossier dans le répertoire courant qui contiendra les fichiers exécutables Python et une copie de la bibliothèque pip que vous pouvez utiliser pour installer d'autres paquets. Pour commencer à utiliser l'environnement virtuel, il doit être activé ::
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py install
Ensuite, vous pouvez vérifier si l'installation s'est bien déroulée avec ::
ooniprobe -s
Cela vous expliquera les risques liés à l'exécution d'ooniprobe et s'assurera que vous les avez compris, puis vous montrera les tests disponibles.
Pour exécuter l'agent ooniprobe, tapez plutôt ::
ooniprobe-agent run
Pour exécuter les tests unitaires pour ooniprobe, tapez ::
coverage run $(which trial) ooni