[ Docker ] Mise en place d’un relais Tor !
PRESENTATION
Lorsqu’on utilise le réseau Tor, l’adresse IP que voit le serveur distant est celle d’un relais de sortie, mais avant la sortie, vous aurez déjà utilisé quelques serveurs intermédiaires servant de relais, et cela partout dans le monde.
On distingue plusieurs modes de configuration des serveurs au sein du réseau Tor :
- Guard : c’est la porte d’entrée sur le réseau
- Middle : c’est un relais (vous utilisez au moins 1 de ces relais une fois sur le réseau)
- Exit : c’est la porte de sortie
Voici quelques illustrations de l’EFF sur le fonctionnement du réseau Tor (expliquant la différence entre ces modes) :
Un relais d’entrée (Guard) va forcement connaitre l’IP du client s’y connectant, c’est plutôt normal non ? Pour devenir un relais d’entrée (Guard) il suffit d’être un relais stable (Middle + flag stable) et avec une bonne bande passante. Le flag Guard est attribué automatiquement après un certain temps et sous ces conditions.
Malheureusement on ne peut pas dire de même des relais de sortie (Exit) qui sont le point de sortie vers le serveur distant. C’est donc l’IP de ce relais qui sera visible, donc si des données illicites y transitent, elle sera définie comme responsable. Le trafic sortant entre le relais de sortie et le serveur distant n’est pas sécurisé (contrairement au trafic entre les différents relais qui lui est sécurisé). C’est pourquoi il est plus délicat d’héberger des relais de sortie, je vous recommande de ne pas sauter ce pas si vous ne savez pas ce que vous faites !
INSTALLATION
La mise en place d’un relais Tor n’est pas très compliqué car il suffit d’installer le paquet Tor (disponible dans la plus part des distributions) et d’ajouter quelques lignes dans un fichier de configuration. La documentation que j’ai suivi était basé sur Docker et finalement j’ai suivi ce mode afin de garantir un maximum d’isolation (et peut-être pour lancer plusieurs containers puisque Tor n’est pas multi-threading).
Je vous passes les détails sur l’installation de docker/docker-compose, il existe déjà plusieurs articles sur le sujet. L’installation débutera sur le téléchargement de l’image jess/tor-relay :
$ docker pull jess/tor-relay:alpine
J’ai sélectionné la version alpine car très light sur le stockage et l’utilisation. Si vous souhaitez la version classic, supprimez le :alpine à la fin. Les ports 9001, 9030, 9051 seront exposés ainsi que le répertoire /usr/local/etc/tor pour la configuration.
Commençons par mettre déjà en place de configuration :
$ mkdir -p /home/docker/tor-relay/etc
CONFIGURATION
Passons à la suite avec la mise en place du fichier de configuration :
$ vim /home/docker/tor-relay/etc/torrc.middle
ORPort 9001
DirPort 9030
ControlPort 9051
HashedControlPassword 16:XXXXXXXXX
Address [IP du serveur]
Nickname [pseudo du relais]
ContactInfo [nom du contact] <[email du contact (attention au spam)]>
ExitPolicy reject *:*
$ tor –hash-password le_mot_de_passe
Vous acceptez de toute manière que ces données soient publiques. Vous pouvez aussi rajouter l’empreinte de votre clé publique PGP dans la partie ContactInfo.
LANCEMENT
Le lancement se fera de la manière suivante :
$ docker run -d -v /etc/localtime:/etc/localtime -v /home/docker/tor-relay/data:/datas/tor -v /home/docker/tor-relay/etc:/usr/local/etc/tor –restart-always -p 9001:9001 -p 9030:9030 -p 9051:9051 –name tor-relay jess/tor-relay:alpine -f /usr/local/etc/tor/torrc.middle
Après quelques secondes, le container devrait être lancé, vous pouvez le vérifier via un ps puis un logs :
$ docker ps
$ docker logs tor-relay
Laissez-le tourner quelques heures, il devra suivre plusieurs étapes pour que le réseau lui fasse confiance ! Vous pouvez vérifier son état sur Globe et/ou Atlas.
SOURCES
Je tiens à remercier plusieurs sources qui m’ont aider à la mise en place d’un relais Tor sous Docker :
- Jess sur son article (voir par ici)
- Wonderfall sur son article (voir par ici)
++