
La versione legacy in Python di OONI Probe
⚠️⚠️⚠️⚠️: questo repository contiene il codice sorgente dell'implementazione legacy di ooniprobe. Consulta invece:
https://github.com/ooni/probe, il meta-repository dove dovresti aprire issue e richieste di funzionalità;
https://github.com/ooni/probe-cli, che contiene la nuova implementazione di ooniprobe come client a riga di comando scritto in Go;
https://github.com/ooni/probe-desktop, che contiene l'applicazione desktop ooniprobe, scritta in JavaScript ed Electron.
Grazie per il tuo interesse in OONI!
Il resto di questo file contiene il README.rst originale per l'implementazione legacy:
.. 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'Osservatorio Aperto sulle Interferenze di Rete, è una rete globale di osservazione che mira a raccogliere dati di alta qualità utilizzando metodologie aperte, utilizzando Software Libero e Open Source (FL/OSS) per condividere osservazioni e dati sui vari tipi, metodi e quantità di manomissione della rete nel mondo.
"The Net interprets censorship as damage and routes around it."
- John Gilmore; TIME magazine (6 December 1993)
ooniprobe è il primo programma che gli utenti eseguono per sondare la propria rete e raccogliere dati per il progetto OONI. Sei interessato a testare la tua rete per segni di sorveglianza e censura? Vuoi raccogliere dati da condividere con altri, in modo che tu e altri possiate comprendere meglio la tua rete? Se sì, leggi questo documento e speriamo che ooniprobe ti aiuti a raccogliere dati di rete che ti assisteranno nei tuoi sforzi!
Eseguire ooniprobe è un'attività potenzialmente rischiosa. Dipende molto dalla giurisdizione in cui ti trovi e dal test che stai eseguendo. È tecnicamente possibile che una persona che osserva la tua connessione internet possa essere a conoscenza del fatto che stai eseguendo ooniprobe. Ciò significa che se l'esecuzione di test di misurazione della rete è considerata illegale nel tuo paese, potresti essere individuato.
Inoltre, ooniprobe non adotta precauzioni per proteggere la macchina di destinazione dall'analisi forense. Se il fatto di aver installato o utilizzato ooni probe è un problema per te, tieni presente questo rischio.
L'ultima versione di ooniprobe per le distribuzioni Debian e Ubuntu si trova nel repository dei pacchetti deb.torproject.org.
Su 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
Su 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
Su 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
Su Ubuntu 16.10 (yakkety), 16.04 (xenial) o 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
Nota: dovrai sostituire $RELEASE con yakkety, xenial o trusty. Questo non avverrà automaticamente. Dovrai anche assicurarti di avere il repository universe abilitato. Il repository universe è abilitato per impostazione predefinita in un'installazione standard di Ubuntu, ma potrebbe non esserlo in alcune installazioni minime o non standard.
Puoi installare ooniprobe su macOS se hai installato homebrew (http://brew.sh/) con::
brew install ooniprobe
Assicurati di aver installato le seguenti dipendenze:
Dipendenze opzionali:
Su sistemi basati su Debian questo può generalmente essere fatto eseguendo::
sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy
Quindi dovresti essere in grado di installare ooniprobe eseguendo::
sudo pip install ooniprobe
oppure installare ooniprobe come utente::
pip install ooniprobe
Net test è un insieme di misurazioni per valutare che tipo di censura internet sta avvenendo.
Decks sono raccolte di nettests di ooniprobe con alcuni input associati.
Collector è un servizio utilizzato per segnalare i risultati delle misurazioni.
Test helper è un servizio utilizzato da una sonda per eseguire con successo le sue misurazioni.
Bouncer è un servizio utilizzato per scoprire gli indirizzi dei test helper e dei collector.
Dopo aver installato con successo ooniprobe dovresti essere in grado di accedere all'interfaccia web sulla tua macchina host all'indirizzo http://localhost:8842/ dopo aver eseguito:: ooniprobe -w oppure avviando il demone.
Ora dovresti vedere la procedura guidata di configurazione dell'interfaccia web dove puoi leggere i rischi associati all'esecuzione di ooniprobe. Dopo aver risposto correttamente al quiz, puoi abilitare o disabilitare i test di ooniprobe, impostare come connetterti al collector delle misurazioni e infine configurare le tue impostazioni sulla privacy.
Per impostazione predefinita, ooniprobe non includerà informazioni personali identificabili nei risultati dei test, né creerà un file pcap. Questo comportamento può essere personalizzato.
A partire dalla versione 2.0.0 di ooniprobe non sono più necessari cronjob, poiché ooniprobe-agent è responsabile della pianificazione delle attività.
Puoi assicurarti che ooniprobe-agent sia sempre in esecuzione installando e abilitando 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
Dovresti vedere un output simile se il servizio ooniprobe (systemd) è attivo e caricato eseguendo 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
Se la tua distribuzione supporta le capacità, puoi evitare di dover eseguire OONI come root::
setcap cap_net_admin,cap_net_raw+eip /path/to/your/virtualenv's/python2
Puoi segnalare bug e problemi che incontri con ooni-probe sul tracker dei problemi di The Tor Project, archiviandoli sotto il componente "Ooni": https://trac.torproject.org/projects/tor/newticket?component=Ooni.
Puoi registrare un account o utilizzare l'account di gruppo "cypherpunks" con password "writecode".
Puoi scaricare il codice di ooniprobe dal seguente repository git::
git clone https://github.com/TheTorProject/ooni-probe.git
Dovresti quindi inviare le patch per la revisione come pull request a questo repository github:
https://github.com/TheTorProject/ooni-probe
Leggi questo articolo per imparare come creare una pull request su github (https://help.github.com/articles/creating-a-pull-request).
Se preferisci non usare github (o non hai un account), puoi anche inviare le patch come allegati ai ticket.
Assicurati di formattare la patch (dato che stai lavorando su un branch di funzionalità diverso da master) con::
git format-patch master --stdout > my_first_ooniprobe.patch
Su sistemi basati su Debian un ambiente di sviluppo può essere impostato come segue: (i prerequisiti includono build essentials, python-dev e tor; per tor vedi 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 creerà una cartella nella directory corrente che conterrà i file eseguibili di Python e una copia della libreria pip che puoi utilizzare per installare altri pacchetti. Per iniziare a usare l'ambiente virtuale, deve essere attivato::
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py install
Quindi, puoi verificare se l'installazione è andata a buon fine con::
ooniprobe -s
Questo ti spiegherà i rischi dell'esecuzione di ooniprobe e si assicurerà che tu li abbia compresi, dopodiché ti mostrerà i test disponibili.
Per eseguire l'agente ooniprobe, invece, digita::
ooniprobe-agent run
Per eseguire i test unitari per ooniprobe, digita::
coverage run $(which trial) ooni