
Uno scanner veloce e modulare per i relay di uscita di Tor. Il repository canonico (incluso l'issue tracker) è disponibile su https://gitlab.torproject.org/tpo/network-health/exitmap

Questo repository non è mantenuto. Fare riferimento al fork del Tor Project.
Exitmap è uno scanner veloce e modulare basato su Python per i relay di uscita di Tor. I moduli di Exitmap implementano compiti che vengono eseguiti su (un sottoinsieme di) tutti i relay di uscita. Se hai una formazione in programmazione funzionale, pensa a exitmap come a un'interfaccia map() per i relay di uscita di Tor: i moduli possono eseguire qualsiasi compito di rete basato su TCP come recuperare una pagina web, caricare un file, connettersi a un server SSH o entrare in un canale IRC.
In pratica, exitmap è utile per monitorare l'affidabilità e la fidatezza dei relay di uscita. Il Tor Project usa exitmap per verificare i falsi negativi sul servizio check del Tor Project e per trovare relay di uscita malevoli. È facile sviluppare nuovi moduli per exitmap; dai un'occhiata al file HACKING nella directory doc/ o esamina uno dei moduli esistenti.
Exitmap utilizza Stem per creare circuiti verso tutti i relay di uscita dati. Ogni volta che tor notifica a exitmap di un circuito stabilito, un modulo viene invocato per il circuito appena stabilito. I moduli possono essere script Python puri o eseguibili. Per gli eseguibili, è necessario torsocks.
Infine, nota che exitmap è uno strumento di misurazione di rete e di scarsa utilità per gli utenti Tor ordinari. Il Tor Project esegue già regolarmente lo strumento. Ulteriori scansioni con exitmap causano solo carico di rete inutile. L'unico motivo per cui exitmap è disponibile pubblicamente è che il suo codice sorgente e il suo design potrebbero interessare a qualcuno.
Exitmap utilizza la libreria Stem per comunicare con Tor. Ci sono molti modi per installare Stem. Il più semplice potrebbe essere usare pip in combinazione con il file requirements.txt fornito:
$ pip install -r requirements.txt
L'unico argomento richiesto da exitmap è il nome di un modulo. Ad esempio, puoi eseguire exitmap con il modulo checktest eseguendo:
$ ./bin/exitmap checktest
L'output della riga di comando mostrerà quindi come Tor si avvia, l'output del modulo checktest e un riepilogo della scansione. Se non hai bisogno di tre hop e preferisci usarne due con un primo hop statico, esegui:
$ ./bin/exitmap --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
Per eseguire lo stesso test solo sui relay di uscita tedeschi, esegui:
$ ./bin/exitmap --country DE --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
Se vuoi fare una pausa di cinque secondi tra le creazioni dei circuiti per ridurre il carico sulla rete Tor e sulla destinazione della scansione, esegui:
$ ./bin/exitmap --build-delay 5 checktest
Nota che 1234567890ABCDEF1234567890ABCDEF12345678 è un pseudo fingerprint che dovresti sostituire con un relay di uscita che controlli.
Per saperne di più su tutte le opzioni di exitmap, esegui:
$ ./bin/exitmap --help
Exitmap viene fornito con batterie incluse, fornendo i seguenti moduli:
Di default, exitmap tenta di leggere il file .exitmaprc nella tua home directory. Il file accetta tutte le opzioni della riga di comando, ma devi sostituire i trattini con i trattini bassi. Ecco un esempio:
[Defaults]
first_hop = 1234567890ABCDEF1234567890ABCDEF12345678
verbosity = debug
build_delay = 1
analysis_dir = /path/to/exitmap_scans
Non ti piace exitmap? Allora dai un'occhiata a tortunnel, SoaT, torscanner, DetecTor o SelekTOR.
Prima di inviare pull request, assicurati che tutti i test unitari passino eseguendo:
$ pip install -r requirements-dev.txt
$ py.test --cov-report term-missing --cov-config .coveragerc --cov=src test
Contatti: Philipp Winter [email protected]
Impronta OpenPGP: B369 E7A2 18FE CEAD EB96 8C73 CF70 89E3 D7FD C0D0