Come
configurare Azureus
per usarlo con Tor
P2PSicuro.it
- P2Pforum.it
Introduzione
Sebbene
sia stato già
detto altrove. Non usate software p2p per il download attraverso la
rete di Tor perché non sarebbe in grado di gestire tanto
traffico. Se la gente continuerà a farlo allora Tor
comincerà a bannare tale traffico il che
danneggerà l'uso
leggittimo. (come indicato sotto).
Dal sito web di Tor
(http://www.freehaven.net/tor):
Tor:
è una rete di copertura sul protocollo TCP per raggiungere
l'anonimato
Tor
è un
sistema di comunicazione a bassa latenza che protegge i flussi TCP:
navigazione web, messaggistica istantanea, irc, ssh, etc.
Questo documento contiene una anteprima di come
impostare un client
Bittorrent Azureus (http://azureus.sourceforge.net/)
per usare Tor per le comunicazioni dati sia del tracker che dei peer.
Si consiglia di usare Tor solo per i Tracker per via dei limiti della
rete Tor, tuttavia si spera che questa limitazione sarà
lasciata
perdere in futuro (Nota tuttavia che l'uso del superseeding all'interno
di Azureus è un modo efficiente di distribuire dati ad una
swarm
e può essere usato da Tor con poco impatto sulla rete)
Cioé non
effettuate normali comunicazioni dati su Tor poiché al
momento
la rete non reggerebbe il carico. Le uniche configurazioni supportate
sono:
1)
I
Tracker con client pubblici (4.1.1). Tutte le parti devono eseguire Tor.
2)
Rendere anonimo il seed iniziale (4.3.2) Solo il
client in seeding ha bisogno di eseguire Tor.
Tor è ancora in
fase
sperimentale, le
versioni precedenti alla 1.0 non dovrebbero essere usate li dove
occorre mantenere un anonimato elevato!
Nei
diagrammi che seguono la 'rete anonima' rappresenta Tor, l'area
esternamente denota la rete pubblica.
IP
<x>
rappresenta un indirizzo IP (o il corispondente nome DNS)
HS
<y>
rappresenta il nome di un Servizio Tor Nascosto (HS = Hide Service,
servizio nascosto in inglese)
Ogni
comunicazione
dati che va
attraverso la Rete Anonima richiede che una o entrambe le parti in
gioco nella comunicazione eseguano Tor. La sorgente di questa
connessione deve averlo in esecuzione. Chi riceve la
connessione,
quando parliamo di servizi nascosti deve ugualmente averlo in
esecuzione.


E' richiesta la
versione
2.2.0.0 o più grande
Versione
0.0.9pre4 o superiore
Tor usa 'hidden
'service' per
offrire un
servizio anonimo. Un tale servizio è definito nel file di
configurazione di Tor aggiungendo linee della forma
HiddenServiceDir <directory
name>
HiddenServicePort
<exposed
port> <local intf>:<local
port>
Per esempio:
HiddenServiceDir /Tor/bttracker
HiddenServicePort 6969 127.0.0.1:10069
Questo
dichiara a Tor che
c'è un servizio nascosto sulla porta 6969, le connessioni al
quale dovrebbero essere fatte passare attraverso l'interfaccia di
loopback sulla porta 10069 (il numero di porta potrebbe essere lo
stesso se necessario)
Quando Tor è avviato, incontrando un
nuovo
servizio
nascosto genererà alcuni file nella cartella specificata
(nell'esempio di sopra /Tor/bttracker/). Il file importante per
configurare Azureus è 'hostname'. Questo contiene il nome
anonimo del servizio come viene reso disponibile sulla rete di Tor. Per
esempio
k61234567895ivw.onion
Questo non è un
nome
DNS valido e
perciò non può essere usato direttamente.
Piuttosto, per
usarlo occorre che venga risolto dalla rete di Tor. Tor ha un
meccanismo di incontro dove chi pubblica un servizio ed il client che
vuole connettersi ad esso si incontrano anonimamente da qualche parte
sulla rete di Tor cosicché ciascun estremo della connessione
non
sa nulla sull'altro.
Per fare
in modo che
le normali
applicazioni possano entrare nella rete di Tor, Tor si comporta da
proxy SOCKS. Per permettere al proxy di gestire la risoluzione degli
indirizzi del servizio c'è bisogno del SOCKS 4.a (anche la
versione 5 può supportare il servizio ma la 4a
èla scelta
ottimale). Questo perché la versione originale 4
può solo
ricevere indirizzi IP come indirizzi finali piuttosto che i nome DNS
necessari
Non
usate gli
indirizzi di hidden service in questo documenti, usare quelli generati
per voi quando eseguite Tor!!
I client pubblici
sono client
'normali' nel
senso che pubblicano i loro indirizzi IP normali sul tracker.
Perciò la comunicazione dati peer-to-peer avviene attraverso
Internet, non su Tor e non è anonima

Data la discussione
generale di
sopra
dovrebbe essere abbastanza chiaro come configurare un tracker anonimo.
Da notare che in questo caso non occorre creare connessioni in uscita
dal tracker attraverso il proxy Tor, per cui non occorre configurare
nessun proxy Tor.
Aggiungere il
servizio nascosto
(hidden service) per il tracker per esempio così
HiddenServiceDir /Tor/bttracker
HiddenServicePort 6969 127.0.0.1:10069
nel
file di configurazione ed avviare Tor
Estraete il nome
del servizio
nascosto dal
file 'hostname' per il servizio 'bttracker' (nell'esempio di sopra si
trova in /Tor/bttracker/hostname) per esempio
k61234567895ivw.onion
ed
inserite questo
nel campo “tracker
external IP address” nel campo relativo della configurazione
del
server di Azureus. Se è stata selezionata una porta diversa
dalla 6969 come porta locale per il tracker allora occorrerà
configurare questa - nell'esempio di sopra dovrà essere
impostata a 10069
Il tracker può
essere anche configurato per funzionare su protocollo HTTPS (SSL) e
protetto da password se necessario.
Nota che il tracker funzionerà normalmente sulla
porta 10069
(in
questo esempio) e sarà quindi contattato esternamente con il
normale protocollo del tracker. Per cui è necessario
bloccare
questa porta per impedire l'accesso pubblico usando un firewall o un
router.
In questo caso il
tracker
supporta lo
scambio dati anonimo tra i peer, e per fare questo i peer pubblicano i
loro hidden service sul tracker. Poiché sono nomi DNS non
risolvibili il tracke ha bisogno di essere configurato per usare il
form originale del protocollo di annuncio. Questo supporta il passaggio
di nomi non risolvibili al client (in contrasto al più
recente
protocollo 'compatto' che restituisce solo indirizzi IP risolti)
Il diagramma di
seguito
riguarda il BitTorrent completamente anonimo di cui parlavamo sopra4.1.2.1
Tor
Configuralo come
sopra per i
peer pubblici
Configura il server
tracker per
non supportare il protocollo compatto
Dato l'indirizzo
del tracker
configurato
sopra, il wizard 'crea Torrent' avrà di default il corretto
URL
di annuncio per il tracker (nell'esempio di sopra http://k61234567895ivw.onion:6969/announce).
Per navigare
all'interno delle
pagina del browser anonimo è possibile usare un altro proxy
HTTP come Privoxy (http://www.privoxy.org)
per proxare l'HTTP nel proxy do Tor. Configura il tuo browser con un
proxy HTTP di 127.0.0.1 sulla porta 8118. Modifica il file di
configurazione Privoxy per fargli contenere
forward-socks4a / localhost:9050 .
Nota il punto
“.” alla fine della linea, è molto
importante!
Adesso
puoi navigare sul tracker per esempio andando alla pagina http://k61234567895ivw.onion:6969/.
Il sistema funziona in modo che il browser invii le richieste a Privoxy
sulla porta 8181. Privoxy trasforma queste richieste in richieste Sock
4a e la richiesta viene proxata sulla rete di Tor (il proxy di Tor
è in esecuzione sulla porta 9050 di default). La rete di Tor
infine risolvere il servizio nascosto e si connette al tracker
richiesto.
Affinché un client
Azureus sia in
grado di usare un tracker anonimo, anche il client deve eseguire un Tor
proxy ed occorre configurare Azureus affinché proxy le
comunicazioni del tracker attraverso di esso.
Non è richiesta una
particolare
configurazione, basta avviare il proxy Tor sulla porta di default del
SOCKS ovvero la 9050.
Configura il proxy
di
connessione per il tracker per farlo essere un proxy Socks di 127.0.0.1
porta 9050 (seleziona “enable proxyingof
tracker” e “I have a SOCKS proxy”) Non
configurare il
secondo proxy, il data proxy poiché non sono necessari per
accedere al tracker anonimo.
E' possibile
connettersi ad un
tracker
pubblico ed inviare/ricevere dati peer anonimamente (sebbene
connessioni interne dagli altri peer verso la tua macchina non siano
supportate). Questo trae vantaggio della funzionalità 'out
proxy' di Tor dove possono essere rese anonime connessioni verso
normali indirizzi IP/nomi dominio. A causa della natura 'in uscita' del
trasferimento dati questo sistema non è valido in generale
(dopotutto se nessuno accetta connessioni in ingresso non ci sarebbe
nessuno a cui connettersi) ma può essere usato per seedare
in
modo anonimo una copia iniziale di qualcosa (in particolare in
modalità supernodo). Ci sono due varianti di questo
approccio.
Qui la connessione
al tracker
è
stabilita attraverso Internet e in modo tale che il reale indirizzo IP
del client è pienamente visibile. Il client deve essere
configurato per non ricevere connessioni in ingresso, o fornendo una
porta di dati in ingresso su 0, oppure attraverso una giusta
configurazione del firewall.
Tuttavia le connessioni dati vengono instradati
attraverso Tor.
E' necessario comprendere il concetto di 'peer ID'. Normalmente un
client BitTorrent costruisce un peer id unico per un dato
download, questo viene comunicato al tracker e agli altri peer per la
connessione. L'uso dello stesso valore parmette la connessione tra
l'indirizzo IP pubblico del client e l'indirizzo anonimo del traffico
dati da stabilire, violando l'anonimato.. E' perciò
necessario
configurare Azureusper usare diversi valori. In origine le specifiche
di BitTorrent assumevano che quando un client si connetteva ad un altro
client doveva verificare che il peer id usato dall'altroclient
coincidesse con quello registrato per quel client con il traffico.
Tuttavia questa verifica non è eseguita da Azureus e dalla
maggior parte dei client, soprattutto dopo l'avvento del protocollo di
annuncio compatto poiché questo non restituisce nemmeno il
peer
id ai cllient.

Non è richiesta
nessuna configurazione, basta eseguire Tor sulla porta SOCKS di default
9050
Configurare la
porta dati in
ingresso per
farla essere 0, o usare metodi alternativi per assicurare che non
vengano accettate connessioni in ingresso dagli altri peer.
Configurare il
proxy dato
affinché sia 127.0.0.1 porta 9050 versione 4a (nota che il
campo “inform
tracker of limitation” forzerà automaticamente la
porta
dati in ingresso ad essere impostata su 0. Alcuni tracker non accettano
0 come porta valida, di qui la necessità di impostare una
porta
diversa da chiudere poi col firewall o col router. Se lasci la porta
dei dati in ingresso aperta allora gli altri client saranno in grado di
connettersi a te usando il tuo reale indirizzo IP e si perde
l'anonimato.
Seleziona e spunta
il campo
“use different peer
identities for tracker and data comms”
E' tutto uguale a
sopra tranne
per il fatto
che la connessione al tracker avviene attraverso Tor. E' un approccio
da preferire poiché il reale indirizzo IP deli client non
è visibile al tracker, tuttavia potrebbe non funzionare per
i
tracker che richiedono la registrazione di indirizzi IP dei client, per
esempio.
Configura allo
stesso modo di
sopra tranne
per l'abilitazione del proxy Http in Azureus agginché sia un
proxy sock su 127.0.0.1 porta 9050

Per accettare
connessioni
anonime in
ingresso è necessario per il client definire un URL servizio
nascosto nello stesso modo in cui è stato definito il
servizio
nascosto del tracker. Questo permette agli altri client che hanno
abilitato Tor di connettersi a te in modo anonimo. Affinché
questo funzioni occorre che il tracker usato supporti il protocollo di
annuncio non compatto poiché gli indirizzi di servizio
nascosto
sono registrati col tracker.
Naturalmente se si
esegue una
connessione
non anonima col tracker questo conoscerà l'associazione tra
il
reale indirizzo ip del client e l'indirizzo del servizio nascosto il
che fa cadere l'anonimato. Quindi occorre usare una connessione anonima
al tracker.

Assumendo che sia
questo il
caso occorre la seguente configurazione
Aggiungi il
servizio nascosto
per i dati peer in ingresso, per esempio
HiddenServicedir /Tor/btdata
HiddenServicePort 6881 127.0.0.1:6881
al
file di configurazione ed avvia Tor
Configura il proxy
HTTP come
per 'la connessione anonima tracker' vista sopra
Procurati
l'indirizzo del
servizio nascosto (nel nostro esempio /Tor/btdata/hostname. Per esempio
l69876543215ivq.onion
e
configura con questo valore il campo “override
IP address sent to tracker”
Per
essere in grado di ricevere connessioni in ingresso, deselezionate il
campo “inform tracker of limitation”
nella sezione Connection data proxy
Questa è la
configurazione migliore
per l'anonimato. Ogni peer deve definire un servizio nascosto per
accettare connessioni in ingresso. Tutti i tracker ed i dati peer sono
instradati in modo anonimo attraverso Tor
La configurazione è
esattamente la
stessa come per il tracker pubblico, tranne che per il fatto che il
tracker è configurato per agire come tracker anonimo!
Azureus può essere
eseguito
come tracker e client allo stesso tempo, infatta la
funzionalità
di condivisione è progettata nello specifico per questo e
consente di pubblicare una risorsa sul tracker e seedarla con una sola
operazione
Eseguire
questa
operazione
nell'anonimato richiede che Azureus sia configurato per essere sia un
tracker anonimo che un client anonimo.
Se il file di
configurazione si
chiama 'torrc0, parti con (per esempio)
Tor-009pre4.exe -f torrc
Avvialo normalmente