Contexte et exigences
Le réseau Tor dépend d’un nombre limité de nœuds de sortie capables de relayer le trafic vers l’Internet public. Environ 2,5 millions d’utilisateurs se connectent chaque jour, mais la capacité d’exportation reste contrainte par la disponibilité de ces nœuds. L’article décrit une procédure complète pour transformer une machine Ubuntu 14.04 (Trusty) en nœud de sortie, en détaillant chaque composant logiciel et chaque réglage réseau requis.
Installation des paquets et configuration initiale
La première étape consiste à ajouter les dépôts officiels de Tor :
echo 'deb http://deb.torproject.org/torproject.org trusty main' >> /etc/apt/sources.list
echo 'deb-src http://deb.torproject.org/torproject.org trusty main' >> /etc/apt/sources.listLes clés GPG sont ensuite importées pour authentifier les paquets :
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -Après apt-get update, les paquets tor tor-arm vnstat vnstati nginx curl socat sont installés. Le fichier /etc/tor/torrc est remplacé par une configuration de relais minimaliste récupérée via curl. Les paramètres clés incluent :
- ORPort 127.0.0.1:9001 (port interne du relais)
- DirPort 9030 (activation du serveur de répertoire)
- RelayBandwidthRate 100 KB et RelayBandwidthBurst 100 KB, adaptés à une connexion ADSL typique
- ExitPolicy accept *:20-23 puis reject *:*, limitant les sorties aux ports FTP, SSH et telnet
Le champ ContactInfo doit contenir une adresse e‑mail valide pour la transparence du service.
Redirection de ports et services complémentaires
Tor ne peut pas écouter directement sur le port 443 (HTTPS) sans privilèges root. La solution proposée utilise socat pour rediriger le trafic entrant :
/usr/bin/socat TCP-LISTEN:443,fork,su=nobody TCP:127.0.0.1:9001 &Cette ligne est ajoutée au crontab root avec le préfixe @reboot afin d’assurer la persistance après redémarrage. Le serveur web Nginx sert une page d’information statique téléchargée depuis le même site, incluant un graphique de bande passante généré par vnstat :
/usr/bin/vnstati -i eth0 -vs -o /usr/share/nginx/html/vnstat.pngUn cron supplémentaire exécute cette commande chaque heure, garantissant un suivi en temps réel de la charge du nœud.
Exposition réseau et considérations de sécurité
Le nœud doit être accessible depuis l’extérieur sur les ports TCP 80 (HTTP), TCP 443 (HTTPS) et TCP 9030 (répertoire). La configuration du routeur NAT implique un transfert de ces ports vers l’adresse locale du serveur (ex. 192.168.0.10). L’absence de ce transfert rend le relais et le nœud de sortie inopérants. Une fois le transfert confirmé, le service Tor est redémarré avec /etc/init.d/tor restart pour prendre en compte les nouvelles règles de pare‑feu.
Du point de vue juridique, l’opérateur n’enfreint aucune loi en France, mais il expose son adresse IP à des requêtes potentiellement illicites. Le journal tor-arm (ou arm) fournit un « fingerprint » unique (ex. GH35AJCVH421742CCJFPQIUCB1835947B4399) qui peut être recherché sur le service Atlas pour vérifier la réputation du nœud. Les sites qui bloquent les nœuds de sortie ou imposent des captchas (Cloudflare, Google) constituent une contrainte supplémentaire, mais elles sont inhérentes à la fonction d’exit.
En résumé, la procédure décrit une chaîne d’étapes automatisables : ajout des dépôts, installation des paquets, configuration du fichier torrc, mise en place de la redirection socat, déploiement d’une page d’information Nginx et génération périodique de graphiques de trafic. Chaque composant repose sur des valeurs concrètes (ports, débits, intervalles cron) qui permettent à un administrateur expérimenté de reproduire le nœud de sortie tout en évaluant les risques opérationnels associés.