diff --git a/Réseaux/Tor.html b/Réseaux/Tor.html index 4d028ef..bbc2716 100644 --- a/Réseaux/Tor.html +++ b/Réseaux/Tor.html @@ -2,7 +2,7 @@ title: Réseau - Tor description: Comprendre et utiliser le réseau Tor published: false -date: 2021-05-14T10:23:27.222Z +date: 2021-05-14T10:25:53.892Z tags: linux, tor, réseau editor: ckeditor dateCreated: 2021-05-11T19:26:41.152Z @@ -140,11 +140,12 @@ RelayBandwidthBurst 100000 KBytes

Comme vous l'avez constaté un relai Tor n'est vraiment pas compliqué à mettre en prod… Le travail que cela demande est quasi nul. Prenez le temps de donner un peu d'amour à votre VM avec un joli cron(8) de mise à jour automatique et un petit reboot par semaine. Je vais créer un papier dans ce wiki avec tout ça mais en attendant, RTFM. N'oubliez jamais que lorsque vous maintenez un relai Tor vous avez la responsabilité de la sécurité des autres, à savoir des gens qui ont un besoin impérieux de ne jamais divulguer leur identité. Si vous êtes capable de créer un relai vous êtes aussi capable de créer un cron et de maintenir votre VM dans des conditions opérationnelles optimales.


Un hidden service

-

 

+

Présentation

Dans le jargon de Tor un Hidden Service peut être n'importe quoi : un site web qui écoute sur les ports classiques (dans Tor), un service de VoIP, un serveur de messagerie… Il s'agit d'un serveur à l’intérieur du réseau Tor et qui ne sort pas de Tor. Si votre NextCloud écoute sur Tor alors votre Nextcloud est un Hidden Service. Le mécanisme avec lequel votre serveur se connecte à Tor est sensiblement le même que si votre poste était un simple client à la différence que le démon Tor va exposer les ports de votre choix. Je ne vais pas expliquer comment créer un serveur web dans cet article mais comment faire en sorte que le démon Tor route correctement les ports appropriés.

Note à propos des Hidden Services V2 (HSv2) : Si vous cherchez des ressources au sujet des Hidden Services vous verrez que l'on parle souvent de “Hidden Services V2” et “hidden services ”V3". Sachez que l'ancien protocole (V2) ne sera plus supporté en octobre 2021 donc ce tuto ne vous expliquera pas comment vous en servir. Le nouveau protocole (HSv3) est vraiment plus puissant bien qu'un tout petit peu plus complexe.

Beaucoup de gens utilisent Tor pour “rester anonymes sur Internet" et se prennent pour des hackers. Mon imaginaire les voit plutôt comme ça. Je pense sincèrement que sortir (sur Internet) via Tor est une bêtise pour des tonnes de raisons très valables. Je pense que Tor ne doit pas servir à naviguer sur Internet puisque les exit relays voient passer vos requêtes… Même en SSL cela pose problème car les exit nodes ont évidement une position bien confortable, récemment un hacker s'est créé des tonnes d'exits nodes toutes équipées de sslstrip et ça représente 27% des sorties. Si Tor n'est pas une solution idéale pour naviguer sur Internet Tor est extrêmement efficace lorsqu'il s'agit de rester dans Tor. Si vous opérez vous-même le service c'est encore mieux.


Nous allons aussi voir plus loin dans cet article qu'un Hidden Service peut être classique mais aussi “stealth” et… Pas caché du tout. Si votre HS ne fait rien de bizarre et  que vous souhaitez juste offrir la possibilité à vos utilisateurs de le visiter via Tor pour protéger leur propre anonymat c'est très possible. Le serveur de Facebook ne se cache pas par exemple, il permet en revanche aux personne vivant dans des pays “compliqués” de s'y connecter sans avoir besoin de “sortir” via un exit node ce qui comme nous l'avons vu est très appréciable.

+

Installation

Nous allons commencer par créer un serveur ssh joignable dans Tor comme un Hidden Service V3. C'est un exemple simple mais qui peut s'avérer utile. Reprenons notre machine Debian la ou nous en étions. Nous allons commencer par désactiver les options du relai dans /etc/tor/torrc

 

User _tor		        		           # pour doper les privilèges
@@ -250,7 +251,7 @@ Last login: Wed May 12 10:27:11 2021 from 10.0.0.69

Nous venons de créer un serveur ssh et de nous y connecter via Tor. Comme vous l'avez remarqué nous n'avons créé aucune règle de NAT sur notre firewall, rien. C'est parce que Tor bypass presque tout (nous y reviendrons en détails, c'est très important). Le “port d'écoute TCP” du démon Tor n'a de valeur que dans Tor, notre routeur lui pourrait être en full deny en entrée… C'est d'ailleurs le cas de ma VM de test dans cet exemple. De son côté OpenSSH écoute sur ses port habituels sur LocalHost. Vous devez voir cette ligne de torrc comme une redirection sur un firewall : HiddenServicePort 2222 127.0.0.1:22

note : puisque aucun port n'est nécessairement ouvert  pour trouver un HS Tor sur le réseau  local vous imaginez bien qu'il faudra dégainer Wireshark pour détecter la présence de Tor au réseau. J'espère que ça vous donne quelques idées… Et encore, niveau obfuscation  vous n'avez vraiment rien vu croyez moi (et continuez la lecture on commence juste à s'amuser !)

 

-

Hidden Services Stealth V3 (HSv3)

+

Hidden Services Stealth V3 (HSv3)

Les Hidden Services Stealth sont un type particulier de de Hidden Services. Lorsque vous tentez de communiquer avec l'un d'entre eux vous aller tout d'abord envoyer un cookie (un Auth Cookie pour être exact). Si ce cookie correspond à une identité connue du serveur alors le démon Tor de ce dernier transmettra le paquet au service auquel vous souhaitez vous connecter. Si votre service est privé et que vous souhaitez le mettre à dispo de  vos amis alors c'est ce qu'il vous faut. Le layer de sécurité supplémentaire qu'un HSv3 stealth offre est excellent. Il existe beaucoup de vecteurs d'attaque sur le réseau Tor mais ajouter ce type d'option permet réellement de gagner sûreté, je ne saurais suffisamment le recommander.

Plus loin dans l'article je vous montrerais comment auditer via Tor vos HS avec nmap et vous verrez à quel point un HS stealth est puissant. Dans cette config, si le AuthCookie n'est pas envoyé en préfixe d'une communication avec le serveur le démon Tor drop tous les paquets sans condition et ici pas de RFC 793 bizarre pour nous dire de répondre avec des RST à nos requêtes malformées, cette fois-ci Tor rulez ! Imaginez un serveur qui n'existe que pour les utilisateurs authentifiés, le rêve ! (au cas ou vous ne le remarquiez pas j'aime beaucoup écrire cet article).

Les HS Stealth V2 étaient déjà très performants et fonctionnaient simplement en auto-générant les AuthCookies des users lorsqu'on redémarrait /usr/bin/tor. Les HS V3 sont un peu plus compliqués puisqu'il faut générer des paires de clefs manuellement mais la complexité de ces dernières et le fait que l'on puisse les générer avec le moteur d'entropie de notre choix fait des Stealth V3 un incontournable.

@@ -336,16 +337,7 @@ az5tu5d6vqblla2ioccd6rng3o6rubqe55h6tm4oagapjk4behjdgfqd:descriptor:x25519:DK6XM

 

On peut tester notre HS en se reconnectant : tout fonctionne ! A ce stade si tout se passe bien vous devriez commencer à bien comprendre comment Tor Daemon va lire et écrire dans /var/lib et quelle est l'utilité de chaque fichiers. Je vous invite à tester  avec des serveurs web et ce qui vous passe par la tête afin de bien maîtriser les services cachés. “Il n'y a qu'en forgeant…” :)

 

-

ONIONCAT

-

-      /\_/\
- /\  / o o \
-//\\ \~(*)~/  (meow)
-`  \/   ^ /
-   | \|| ||
-   \ '|| ||
-    \)()-())
-

 

+

ONIONCAT

 

(meow)