Tor
https://www.linux.com/tutorials/beginners-guide-tor-ubuntu/ https://stem.torproject.org/index.html
Installation et configuration sur Linux
Je suis ici sous Manjaro.
Par défaut, le paquet "Tor" a pour principe d'ouvrir un port de la machine vers lequel envoyer des commandes afin de controler Tor:
<source lang="bash"> pacman -S tor
- On va ensuite générer un hash de mot de passe.
$ tor --hash-password "passwordhere" 16:AC5FB526B90B4ED06027C6C4343EF87075B63B9A25822EE198622EE4D6 </source>
En effet, il est plus prudent de protéger le port Tor par un mot de passe afin d'empêcher que d'autres s'en servent.
Nous allons ensuite modifier le fichier de config /etc/tor/torrc pour y ajouter les lignes suivantes:
<source lang="bash"> ControlPort 9051 HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF </source>
Suivi d'un redémarrage du service Tor.
On peut ensuite s'authentifier:
echo -e 'AUTHENTICATE "motdepasse"rnsignal NEWNYMrnQUIT'
Par défaut, Tor écoute le port 9050 en attente d'une connexion SOCKS. On peut pointer nos applications vers ce port.
Exemple avec Chromium:
chromium --proxy-server="socks5://localhost:9050" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"
On est bien évidemment pas sûr d'être tranquille comme ça : le plus simple est d'installer le browser Tor.
<source lang="bash"> https://www.torproject.org/dist/torbrowser/9.0.1/tor-browser-linux64-9.0.1_en-US.tar.xz tar -xf tor-browser-linux64-9.0.1_en-US.tar.xz cd tor-browser_en-US/ ./start-tor-browser.desktop </source>
Installation de TorSocks
Sous Manjaro, TorSocks est dispo en AUR, installable avec pamac. TorSocks permet de mettre en place un proxy socks pour ne pas s'embêter à rediriger nous même le flux réseau quand on veut faire du curl et autre choses ne gérant pas les proxy SOCKS
<source lang="bash"> pamac install torsocks
- On peut vérifier que ça fonctionne
torsocks curl 'https://api.ipify.org' </source>
Créer un nouveau circuit
On peut créer un nouveau circuit Tor comme ceci:
echo -e 'AUTHENTICATE "passwordhere"rnsignal NEWNYMrnQUIT' | nc 127.0.0.1 9051
Stem
Stem est une lib Python servant à créer des contrôleurs Tor.
<source lang="python"> from stem.control import Controller
with Controller.from_port(port = 9051) as controller:
controller.authenticate() # provide the password here if you set one
bytes_read = controller.get_info("traffic/read") bytes_written = controller.get_info("traffic/written")
print("My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written))
</source>
La doc donne plus d'infos.