Installation d'un relais Tor

De La Mouche VII
Aller à la navigationAller à la recherche

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