L’oignon qui fait pleurer la NSA. :noel:
Vous devez sans doute connaître
Tor, un logiciel qui permet d'anonymiser votre connexion à Internet.
Rappel : Comment parler d’anonymat sans parler de Tor ? Tor est la référence ultime dans le domaine. Tor est un réseau mondial, comme Internet. Vos données transitent alors par Tor quand vous l'utilisez. Mais Tor a un comportement différent dans le sens où vos données cheminent par un noeud d’entrée, par une série de relais, puis par un noeud de sortie. Les requêtes de votre navigateur Web par exemple seront interceptées et re-routées à travers le réseau de Tor, dans des relais de façon aléatoire et répartis dans le monde. D'ailleurs Tor fonctionne sur un principe bénévole : n’importe qui peut installer un relais Tor. Les noeuds d’entrée et de sortie changent de façon transparente.
Bien évidemment, l'utilisation de Tor ne nous intéresse pas ici. Je ne vais pas aborder l'installation de relais, ce qui pourrait faire l'objet d'un futur tutoriel. Non, je vais vous parler des
hidden services et de comment/pourquoi les utiliser. Un hidden service, et vous devez sûrement le savoir,
ne peut être accessible qu'avec Tor. Les hidden services sont déployés depuis 2004.
L'utilisation d'un hidden service permet de masquer la location de votre serveur pour n'importe quel visiteur. Le réseau Tor est fait de telle façon que les données seront routées à travers le réseau pour accéder au hidden service comme un site web classique. Ce fonctionnement permet de conserver l'anonymat du client et du serveur à la fois. Un autre avantage est que l'utilisation d'un hidden-service permet de ne pas passer par des exit-nodes, ces derniers étant des points critiques de la sécurité du réseau Tor (en effet, le trafic y circule en clair, et l'exit-node peut au minimum savoir où vous allez même en utilisant HTTPS). Votre connexion est ainsi chiffrée à 100% de bout à bout ! C'est pas cool ça ? Tor étant par essence un réseau décentralisé, votre hidden service ne sera pas répertorié automatiquement sur une liste. Il ne sera pas non plus référencé par Google, cela va de soit.
Nous allons maintenant déployer un hidden service, voici les prérequis :
- Un serveur sous Debian Jessie sur lequel est installé nginx.
- Un ou plusieurs vhosts fonctionnels (cela dépend de ce que vous voulez passer en hidden service ou non).
Faisons une petite analogie au fil du tutoriel, comme ça vous comprendrez plus rapidement.
Par exemple, vous avez suivi mon tutoriel pour installer searx, un méta-moteur de recherche :
http://mondedie.fr/d/7352
C'est bien cool tout ça, mais vous voulez un hidden service !
----- 30 SECONDES, CHRONO EN MAIN (NOBRAIN) -----
Pour cela, installons le paquet tor de la distribution :
aptitude update && aptitude install tor
Normalement le service tor est déjà lancé, il se lancera automatiquement : donc tout est bon.
Maintenant, on va bêtement configurer le fichier de configuration qui est le suivant : /etc/tor/torrc.
nano /etc/tor/torrc
C'est long, mais ne vous en faites pas : il n'y a qu'une petite portion du fichier qui nous intéresse ! Pour y accéder, défilez au premier résultat de la recherche des termes "Hidden Service", vous descendrez au bloc correspondant.
Tip : avec nano, utilisez Ctrl^W pour effectuer une recherche.
Vous y êtes. Je vais vous expliquer comment créer/configurer un hidden service :
############### This section is just for location-hidden services ###
## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.
HiddenServiceDir /var/lib/tor/searx/
HiddenServicePort 443 127.0.0.1:443
HiddenServiceDir /var/lib/tor/wmail/
HiddenServicePort 443 127.0.0.1:443
HiddenServiceDir /var/lib/tor/deluge/
HiddenServicePort 443 127.0.0.1:443
#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22
Pour ceux qui n'auraient pas compris, HiddenServiceDir est une directive qui pointe vers un dossier situé dans /var/lib/tor/ (vous n'avez pas besoin de le créer au préalable), et en-dessous il faut adjoindre la directive HiddenServicePort qui permet de rediriger une requête sur un port X vers un port Y sur votre serveur. Ça ne vous intéressera pas particulièrement, vous pouvez configurer comme moi. Si vous voulez utiliser HTTP et non HTTPS, il faut mettre le port 80. Bref, un port en adéquation avec votre vhost nginx (typique 80 ou 443 sans se prendre la tête).
Qu'ai-je donc fait plus haut ? J'ai créé un hidden service pour searx, pour wmail (webmail), et pour deluge. Le modèle qui est commenté est très explicite. Pour activer les hidden services ajoutés/retirés il faut recharger le service avec les modifications apportées à la conf :
service tor reload
Done. À cet instant, le serveur propage les hidden services dans le réseau de Tor.
Le dossier /var/lib/tor/service contient la clé et votre hostname. C'est ce dernier qui nous intéresse, car dans l'histoire, on veut notre adresse .onion maintenant ! Pour la voir :
cat /var/lib/tor/searx/hostname
***********************.onion
cat /var/lib/tor/service/hostname
***********************.onion
Maintenant, il faut l'utiliser : tout comme un nom de domaine ! Et sachez que nginx accepte plusieurs paramètres pour la directive server_name. Donc je me rends dans le vhost qui correspond à searx (c'est un exemple), et j'ajoute mon adresse en .onion :
server {
listen 443 ssl;
server_name searx.domain.tld ***********************.onion;
...
Puis on recharge nginx :
service nginx reload
Comment accéder à mon hidden service ?
Via le réseau de Tor, accéder à https://***********************.onion.
Pourquoi utiliser https ?
Un niveau de sécurité supplémentaire ne fait pas de mal !
Et cf.
https://blog.torproject.org/blog/facebook-hidden-services-and-https-certs éventuellement.
Est-ce qu'il y a une limite de hidden services ?
Pas une limite atteignable par un utilisateur simple en tout cas.
FAQ Tor ici : https://www.torproject.org/docs/faq.html.en
En savoir plus sur les Hidden Services : https://www.torproject.org/docs/hidden-services.html.en
Signalez coquilles et autres joyeusetés ici : http://mondedie.fr/d/7429