blog.bressure.net

Carnet professionnel d'un informaticien

Application

Serveur anonyme avec TOR

admin
English: Tor Logo
English: Tor Logo (Photo credit: Wikipedia)

Nous avons vu que TOR et son utilisation avec la distribution Linux TAILS permet à tout un chacun d’accéder à des ressources sur internet en étant anonyme i.e. en ne révélant pas sa localisation. Ce mode d’utilisation dite client n’est pas suffisant si l’on veut publier des ressources. En effet même si on accède via TOR à un service de publication comme un serveur blog, l’hébergeur du service peut détruire la ressource s’il la juge contraire à ces intérêts. Si on ne peut pas vous empêcher de parler, on va vous couper le micro.

Pour permettre aux idées de circuler sans contrainte, il faut également qu’on ne puisse pas les localiser. Or les services cachés de TOR permettent de rendre les serveurs anonymes: ainsi un utilisateur ne connaît pas réellement l’adresse IP du serveur et comme il accède au serveur par TOR, le serveur ne connaît pas réellement l’IP de l’utilisateur. Client et serveur communiquent sans révéler mutuellement leur identité (localisation sur le réseau). Un censeur aura ainsi beaucoup de mal à empêcher l’idée de circuler car il ne peut ni brûler la bibliothèque ni faire pression sur les lecteurs.

Les services cachés de TOR

Un serveur virtuel dédié

Pour mettre en place un serveur anonyme je conseille de le faire sur une machine virtuelle. Il y a plusieurs raison à cela:

  1. Si on utilise une machine déjà existante donc avec potentiellement des services classiques non cachés (ex: un serveur web), on s’expose aux failles des autres logiciels et aux failles de leur configuration.  Ex: héberger un service caché sur une instance d’apache qui héberge également des sites non cachés est à proscrire !
  2. Créer une machine virtuelle coûte moins cher que d’acheter une autre machine
  3. Déplacer une machine virtuelle est très facile et c’est une éventualité à prendre au sérieux car une panne matérielle ne doit pas vous rendre muet.

La connexion réseau de la machine virtuelle peut être par pont (bridge)

Lors de l’installation de l’OS disons une debian, ne rien renseigner de public dans le domaine de la machine. Indiquez par exemple localhost.onion . Rien, ni même l’OS ne doit relier la machine à quelque chose de public sur internet. Le nom de la machine doit être sans relation avec le monde réelle, disons anonyme. Le nom du premier utilisateur doit aussi être anonyme disons par exemple anonyme… Ainsi si un programme révèle votre identité vous serez anonyme@anonyme.localhost.onion ! Dans le même ordre désactiver l’envoi d’information sur l’usage des paquets etc.

Nous allons bien entendu installer TOR sur notre machine anonyme. En root faire:

# apt-get install tor

Principe du service caché

Le principe du service caché est de publier sur notre noeud TOR une adresse onion qui sera redirigée vers une adresse IP. Dans la pratique sera localhost i.e. la machine local, mais se pourrait être n’importe quelle machine du réseau local mais rien n’est plus sûr que localhost…

Exemple du serveur web

Pour publier de l’information anonymement, nous prenons en exemple le service web avec l’utilisation de d’apache.

# apt-get install apache2

L’obsession de celui qui veut mettre en place un serveur anonyme est que ce dernier ne soit accessible que et rien que via TOR. En effet si par malheur votre service est accessible via une simple URL classique (par le jeux d’une redirection de port sur votre routeur ADSL par ex), alors un observateur va déduire que le site caché et celui de l’URL classique sont les mêmes et donc l’anonymat est rompu.

Dans le cas d’apache il faudra donc le rendre accessible que depuis la machine local. En effet seul l’instance TOR locale va devoir accéder au service web. Ainsi dans un installation fraîche d’apache il faut aller modifier le fichier /etc/apache2/sites-enabled/000-default

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order deny,allow
                deny from all
                allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>

Nous voilà avec un apache qui n’affiche les URL qui si la requête provient de la machine locale. Nous allons maintenant configurer TOR pour offrir un accès à notre serveur en utilisant un service caché. On va également en profiter pour ouvrir un accès TOR au service SSH afin de pouvoir configurer notre serveur anonyme depuis n’importe où.

Dans le fichier /etc/tor/torrc ajouter les lignes suivantes

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 22 127.0.0.1:22

Redémarrer tor

# service  tor restart

L’adresse de notre site web caché est indiquée dans le fichier /var/lib/tor/hidden_service/hostname, pour la connaître faire en root

# cat /var/lib/tor/hidden_service/hostname

Cela donne par exemple une adresse onionqui ressemble à  khnhd5dfcz.onion. C’est cette adresse qu’il faut diffuser pour accéder au service caché. Faites un test en utilisant TAILS qui est la solution la plus simple pour être anonyme en tant que client. Rentrer l’URL onion dans le navigateur. Vous devrez voir votre site web : l’utilisateur de TAILS (Tor) ne connait pas l’adresse IP du service caché et le serveur web apache ne connaît pas l’adresse IP de l’utilisateur (apache ne voit qu’une requête provenant de la machine locale…)

De même avec TAILS on pourra accéder en SSH à notre serveur anonyme en se connectant avec l’utilisateur local que l’on a appelé anonyme lors de l’installation de l’OS. Faites dans un terminal

ssh anonyme@khnhd5dfcz.onion

On voit que les services Tor sont également un moyen d’outrepasser les restrictions de firewall ou de ne pas s’en faire avec la translation d’adresse du routeur de nos box ADSL: on n’a pas ouvert ni redirigé les ports 80 (pour apache) et 22 (pour SSH) et pourtant ça marche (du moment où le client TOR a réussit à se connecter au réseau TOR).

La création d’un service caché est déconcertante de facilité et il ne reste qu’à diffuser l’adresse onion.

Tags:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back to top