Installation d'un relais Tor
Cet article est une ébauche, qui sera complétée plus tard.
Présentation
Tor est un réseau de tunnels virtuels qui permet d'améliorer l'intimité et la sécurité sur Internet. Il offre aussi la possibilité aux développeurs de créer de nouveaux outils de communication respectueux de la vie privée. Tor fournit les bases grâce auxquelles de multiples applications vont permettre à des organisations et à des individus d'échanger des informations sur les réseaux publics sans compromettre leur intimité.
Site officiel du projet Tor : http://mirror.onionland.org/index.html.fr
Ce tutoriel détaille l'installation complète d'un relais Tor, du début à la fin, avec la configuration des fichiers. Il a été réalisé sur un ordinosaure Debian Lenny, sans aucun problème. Assez de blabla, place à l'action !
Telechargement des paquetages
On se connecte en tant que root, c'est mieux !
$ sudo su [sudo] password for user:
On met à jour les listes des paquets pour être sûrs de télécharger les dernières versions disponibles sur les dépôts debian. C'est assez long, surtout si vous utilisez lenny (à cause du téléchargement des fichiers .pdiff) Mais patience, on y est presque !
# aptitude update
Et puis on va afficher la version des paquets qu'on va installer.
# apt-cache show tor privoxy|grep Version Version: 0.1.2.19-3 Version: 3.0.8-1
0.1.2.19-3 Correspond à la version de Tor 3.0.8-1 Correspond à la version de Privoxy
Puis on installe Tor proprement dit. Les dépendances sont bien faites (merci debian) et privoxy sera automatiquement installé.
# aptitude install tor
Le téléchargement de tor, de privoxy et des librairies dépendantes se fait. Privoxy et Tor sont lancés automatiquement lors de leur installation, mais leur configuration n'est pas suffisante et nous allons devoir la modifier.
Lors de l'installation, le lancement des deux programmes se fait et est affiché sur l'écran.
Paramétrage de privoxy (3.0.8-1) ... Starting filtering proxy server: privoxy. [...] Paramétrage de tor (0.1.2.19-3) ... Raising maximum number of filedescriptors (ulimit -n) to 8192. Starting tor daemon: tor... Jul 01 14:50:17.520 [notice] Tor v0.1.2.19. This is experimental software. Do not rely on it for strong anonymity. Jul 01 14:50:17.538 [notice] Initialized libevent version 1.3e using method epoll. Good. Jul 01 14:50:17.540 [notice] Opening Socks listener on 127.0.0.1:9050 done.
Et vous vous demandez ce qu'est le nombre maximum de filedescriptors ? Ah ah ! Et bien moi aussi...
Ulimit est un programme qui affecte des limitations en terme de processus, de mémoire utilisable, etc, à des comptes utilisateurs. Ici, le nombre de descripteurs de fichiers ouverts simultanément est limité à 8192.
La manpage du programme ulimit : http://linux.die.net/man/1/ulimit
Configuration de Tor
On se rend dans le repertoire de configuration et on effectue une copie du fichier de configuration actuel. On ne sait jamais, ca peut toujours servir. TOUJOURS faire une copie de sauvegarde ! :)
# ls /etc/tor/ torrc tor-tsocks.conf # cp /etc/tor/torrc /etc/tor/torrc-orig
Une fois la copie faite, on arrete le service tor, pour pouvoir travailler correctement et qu'ensuite, en lançant de nouveau ce service, les paramètres soient directement pris en compte.
# /etc/init.d/tor stop Stopping tor daemon: ...............................tor.
Puis, on edite ce fameux fichier torrc et on modifie les lignes
Nickname ContactInfo ORPort
Enfin, quand je dis modifier, il s'agit surtout de les décommenter, en supprimant le # superflu. Vous etes libre d'utiliser l'editeur de votre choix, personnellement j'affectionne particulièrement vim. Renseigner les champs avec les informations vous concernant permet d'éviter un affichage disant que ce champ n'est pas configuré. Enfin, quand on veut de l'anonymat...
Voici la différence entre les deux fichiers, chez moi :
# vim /etc/tor/torrc # diff /etc/tor/torrc /etc/tor/torrc-orig 87c87 < Nickname torproxy --- > #Nickname ididnteditheconfig 99c99 < ContactInfo Random Person <identifiant AT domaine dot tld> --- > #ContactInfo Random Person <nobody AT example dot com> 104c104 < ORPort 9001 --- > #ORPort 9001
Les modifications ont été effectuées avec succès, maintenant il faut relancer Tor et regarder si tout se passe bien..
# /etc/init.d/tor start Raising maximum number of filedescriptors (ulimit -n) to 8192. Starting tor daemon: tor... Jul 01 17:59:56.990 [notice] Tor v0.1.2.19. This is experimental software. Do not rely on it for strong anonymity. Jul 01 17:59:57.007 [notice] Initialized libevent version 1.3e using method epoll. Good. Jul 01 17:59:57.008 [notice] Opening OR listener on 0.0.0.0:9001 Jul 01 17:59:57.010 [notice] Opening Socks listener on 127.0.0.1:9050 done.
On vérifie maintenant que Tor est en état de marche :
# netstat |grep 9001 tcp 0 0 192.168.0.250:33428 82.94.251.199:9001 ESTABLISHED tcp 0 0 192.168.0.250:60661 weltbank.net:9001 ESTABLISHED
ESTABLISHED, c'est bon signe ! Maintenant il faut laisser tourner Tor afin qu'il construise son réseau et qu'il découvre les hôtes à portée. C'est l'heure d'aller boire un café et de fumer une clope.
Déja de retour ? Alors on est repartis... On peut jeter un oeil au fichier de log construit par Tor, qui se trouve ici :
# tail /var/log/tor/log Jul 01 18:22:50.662 [notice] Clean shutdown finished. Exiting. Jul 01 18:22:57.012 [notice] Tor 0.1.2.19 opening log file. Jul 01 18:22:58.440 [notice] Your Tor server's identity key fingerprint is 'torproxy XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX' Jul 01 18:23:08.306 [notice] We now have enough directory information to build circuits. Jul 01 18:23:09.262 [notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor. Jul 01 18:23:10.797 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Tor est en état de marche, il ne manque plus qu'a rendre possible l'accès au service depuis l'extérieur, en redirigeant le port 9001 depuis votre routeur vers l'adresse ip locale de votre serveur Tor. Le protocole est TCP.
J'ai ensuite regardé sous quel nom d'utilisateur tor était lancé.
# ps aux|grep tor 109 23430 3.2 9.1 24980 14524 ? Sl 15:12 0:16 /usr/sbin/tor root 23449 0.0 0.4 3092 776 pts/1 S+ 15:20 0:00 grep tor
Le nom d'utilisateur est ici présenté sous la forme de son uid, et donc le nom complet est situé dans le fichier /etc/passwd.
# cat /etc/passwd|grep 109 debian-tor:x:109:116::/var/lib/tor:/bin/bash
Tout va bien, l'utilisateur debian-tor a été créé lors de l'installation. Le service Tor est donc lancé par cet utilisateur. Au bout d'une heure de fonctionnement, le serveur Tor avait déja une solide base de noeuds dits fiables.
# netstat -a -A inet|grep 9001 tcp 0 0 *:9001 *:* LISTEN tcp 0 0 192.168.0.250:9001 s15192785.rootmas:55799 ESTABLISHED tcp 0 0 192.168.0.250:9001 daddl.fdmbx.net:1146 ESTABLISHED tcp 0 0 192.168.0.250:9001 moria.csail.mit.e:59901 ESTABLISHED tcp 0 0 192.168.0.250:9001 india691.server4y:35420 ESTABLISHED tcp 0 0 192.168.0.250:9001 149.9.0.27:50639 ESTABLISHED tcp 0 0 192.168.0.250:9001 sd-13452.dedibox.:52409 ESTABLISHED tcp 0 0 192.168.0.250:9001 r2m5cl.cs.du.edu:43326 ESTABLISHED tcp 0 0 192.168.0.250:9001 ks359821.kimsufi.:42003 ESTABLISHED tcp 0 0 192.168.0.250:9001 hal.berlin.ccc.de:54797 ESTABLISHED tcp 0 1 192.168.0.250:54384 dslb-088-071-047-1:9001 SYN_SENT tcp 0 0 192.168.0.250:9001 ides.fscked.org:42415 ESTABLISHED tcp 0 0 192.168.0.250:9001 moria.csail.mit.e:37073 ESTABLISHED tcp 0 0 192.168.0.250:9001 tor-anonymizer1.d:40645 TIME_WAIT tcp 0 0 192.168.0.250:9001 tor-proxy.loercks:57127 ESTABLISHED tcp 0 0 192.168.0.250:9001 berlin154.server4:55881 ESTABLISHED tcp 0 1 192.168.0.250:35576 p5483575D.dip.t-di:9001 SYN_SENT tcp 0 0 192.168.0.250:9001 sol-68-39-233-83.:42650 ESTABLISHED tcp 0 0 192.168.0.250:9001 nettrust1.ucs.ind:38221 ESTABLISHED tcp 0 0 192.168.0.250:9001 nettrust1.ucs.ind:38221 ESTABLISHED tcp 0 0 192.168.0.250:9001 tor.noreply.org:49488 ESTABLISHED tcp 0 0 192.168.0.250:9001 149.9.0.56:35470 ESTABLISHED tcp 0 0 192.168.0.250:9001 tor.dizum.com:55768 ESTABLISHED tcp 0 0 192.168.0.250:9001 ks360312.kimsufi.:54403 ESTABLISHED tcp 0 0 192.168.0.250:9001 proxy.timecastle.:60349 ESTABLISHED tcp 0 0 192.168.0.250:9001 KHP059137201233.pp:1390 ESTABLISHED
Le relais tor est maintenant disponible !
Documentation
http://www.hermann-uwe.de/blog/howto-anonymous-communication-with-tor-some-hints-and-some-pitfalls
https://wiki.torproject.org/noreply/TheOnionRouter/TorFAQ#SOCKSAndDNS
A compléter
- Possibilité d'utiliser le proxy nouvellement mis en place quelque soit l'endroit ou l'on soie.
- Tunnels ssh
- ACLs
- Partie client