diff --git a/Réseaux/Tor.html b/Réseaux/Tor.html index 95d50b3..55693f3 100644 --- a/Réseaux/Tor.html +++ b/Réseaux/Tor.html @@ -2,7 +2,7 @@ title: Tor : opérer un middle relay description: Opérez un noeud Tor sous Debian published: false -date: 2021-05-11T22:40:44.194Z +date: 2021-05-11T22:52:41.452Z tags: linux, tor, réseau editor: ckeditor dateCreated: 2021-05-11T19:26:41.152Z @@ -36,12 +36,11 @@ dateCreated: 2021-05-11T19:26:41.152Z


Petite note pour les utilisateurs de Raspberry Pi : mes chers amis, un Raspberry Pi ne possède pas d'instructions AES-NI. Il galère à mort avec le chiffrement et génère d'horribles latences sur le réseau. Si vus voulez faire des expériences ponctuelles et vous former à Tor vous pouvez utiliser un Pi comme lab. Si vous souhaitez aider la communauté Tor merci de l’installer sur un serveur ou bien allez voir ailleurs.

B. Préparation de l'environnement

-

Un relais Tor est extrêmement simple… N’installez que le strict nécessaire sur votre machine (KISS):

-

 

+

Commencez par vérifier que votre VM voit bien les instructions AES-NI sur votre CPU. 

+
# lscpu | grep aes
+


Un relais Tor est extrêmement simple… N’installez que le strict nécessaire sur votre machine (KISS):

# apt install -y net-tools sudo vim
-

 

-

Une adresse IP fixe n’est pas requise par Tor pour fonctionner correctement mais j’ai envie de pouvoir me connecter à ma VM en ssh :

-

 

+


Une adresse IP fixe n’est pas requise par Tor pour fonctionner correctement mais j’ai envie de pouvoir me connecter à ma VM en ssh :

$ cat /etc/network/interfaces
 auto lo
 iface lo inet loopback
@@ -52,10 +51,9 @@ iface eth0 inet static
     	netmask 255.255.255.0
     	gateway 192.168.1.1
 
-

On redémarre le réseau :
 

+


On redémarre le réseau :

# systemctl restart networking
-

Le serveur doit impérativement être à l’heure. C’est un prérequis indispensable car le chiffrement se base sur le temps et Tor c'est du chiffrement. Vérifiez bien que l’heure réseau est activée, que votre TZ est correcte. Si ce n’est pas le cas il faut que vous l’activiez… Je trouve la gestion du temps très pourrie sous Debian, je vous laisse faire vous-même. Choisissez un démon entre chrony, ntp et je ne sais pas quoi d’autre à votre disposition . Personnellement j'aime ntpd(8) donc je l'utilise. Le résultat final doit ressembler à ça :

-

 

+


Le serveur doit impérativement être à l’heure. C’est un prérequis indispensable car le chiffrement se base sur le temps et Tor c'est du chiffrement. Vérifiez bien que l’heure réseau est activée, que votre TZ est correcte. Si ce n’est pas le cas il faut que vous l’activiez… Je trouve la gestion du temps très pourrie sous Debian, je vous laisse faire vous-même. Choisissez un démon entre chrony, ntp et je ne sais pas quoi d’autre à votre disposition . Personnellement j'aime ntpd(8) donc je l'utilise. Le résultat final doit ressembler à ça :

# timedatectl 
                Local time: mar. 2021-05-11 17:43:45 CEST
            Universal time: mar. 2021-05-11 15:43:45 UTC
@@ -66,7 +64,6 @@ System clock synchronized: yes
 RTC in local TZ: no

 

Bien que le firewall ne soit pas d'une utilité transcendante dans notre cas de figure je l'active par principe, surtout pour la sécurité du LAN.

-

 

# apt install nftables
 # systemctl enable --now nftables
 # systemctl status nftables
@@ -78,27 +75,27 @@ RTC in local TZ: no
Process: 242 ExecStart=/usr/sbin/nft -f /etc/nftables.conf (code=exited, status=0/SUCCESS) Main PID: 242 (code=exited, status=0/SUCCESS)

Les repos du projet Tor sont toujours les premiers à recevoir les upgrades. C'est extrêmement important. Nous allons donc les installer afin d'être au top. N'utilisez JAMAIS les paquets maintenus par les distributions car ces derniers sont bien trop souvent anciens et vulnérables.

-

Commencez par éditer /etc/apt/sources
 

+

Commencez par éditer /etc/apt/sources

# cat /etc/apt/sources 
 deb https://deb.torproject.org/torproject.org stretch main
 deb-src https://deb.torproject.org/torproject.org stretch main
-

Ajoutez les PGP du repo : 
 

+


Ajoutez les PGP du repo : 

# curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
 # gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
-

Et pour finir on update :
 

+


Et pour finir on update : 

# apt update && apt install tor deb.torproject.org-keyring
-

On installe finalement Tor et Nyx sur la machine.
 

+


On installe finalement Tor et Nyx sur la machine. 

# apt install tor Nyx

 

Maintenant que vous avez les derniers binaires et que votre VM ressemble de loin à un serveur, l'environnement est prêt. il ne nous reste plus qu'à créer notre relai. 

 

III. Configuration du relai

-


Par défaut sous OpenBSD on fait tourner le daemon tor(1) avec l’utilisateur _tor et on cloisonne l’exécutable sous pledge(2). C’est la première fois que j’exécute le démon sous Linux en mode serveur et j’étais très surpris de voir que l’option « User » n’est pas activée par défaut dans le torrc. Je ne sais pas  trop s'il le fait automatiquement (ou s'il le lance avec l'utilisateur daemon au hasard) mais ce n'est vraiment pas explicite… dans le doute :
 

+


Par défaut sous OpenBSD on fait tourner le daemon tor(1) avec l’utilisateur _tor et on cloisonne l’exécutable sous pledge(2). C’est la première fois que j’exécute le démon sous Linux en mode serveur et j’étais très surpris de voir que l’option « User » n’est pas activée par défaut dans le torrc. Je ne sais pas  trop s'il le fait automatiquement (ou s'il le lance avec l'utilisateur daemon au hasard) mais ce n'est vraiment pas explicite… dans le doute : 

# sudo useradd _tor
 # sudo usermod -s /sbin/nologin _tor
 # id _tor
 # uid=1001(_tor) gid=1001(_tor) groupes=1001(_tor)
-

Dans une prochaine version de ce tuto nous intégrerons un chroot optionnel mais pour le moment nous en resterons la… Nous allons maintenant modifier notre fichier /etc/tor/torrc. Vous trouverez la version complète de mon fichier de sur le git mais en substance ce que vous devez modifier / dé-commenter / ajouter se trouve ici : 
 

+


Dans une prochaine version de ce tuto nous intégrerons un chroot optionnel mais pour le moment nous en resterons la… Nous allons maintenant modifier notre fichier /etc/tor/torrc. Vous trouverez la version complète de mon fichier de sur le git mais en substance ce que vous devez modifier / dé-commenter / ajouter se trouve ici :  

User _tor		        		           # pour doper les privilèges
 DataDirectory /var/lib/tor         		   # Si on se sert de notre VM pour autre chose qu'un relay
 Log notice file /var/log/tor/notices.log   # oui on log ce que fait Tor autrepart que dans syslog
@@ -110,11 +107,11 @@ Nickname RoxXoRNOde666                     # Le nom de votre node de HaxXoR
 ContactInfo TonMailDeRoxXor@hacker.com     # le mail de contact. Utilisez un mail que vous allez lire mais aussi votre cerveau
 DirPort 9030							   # notre serveur sera un directory mirror (voir doc)
 ExitPolicy  reject *:*                     # ce n’est pas un noeud de sortie, on interdit l'écoute explicitement sur toutes les interfaces
-


Nous créons maintenant les fichiers nécessaires pour les logs.
 

+


Nous créons maintenant les fichiers nécessaires pour les logs. 

# touch /var/log/tor/notices.log
 # chown _tor:_tor /var/log/tor/notices.log
 # chrmod 650 /var/log/tor/notices.log
-

Et on donne des droits à notre utilisateur _tor afin qu’il puisse écrire dans /var/lib/tor
 

+


Et on donne des droits à notre utilisateur _tor afin qu’il puisse écrire dans /var/lib/tor 

# chown -R _tor:_tor /var/lib/tor

Assurez-vous que les droits UNIX sur les répertoires auxquels le démon a accès soient bien en 650  pour _tor:_tor si non il va vous rappeler à l’ordre au lancement. On check que tout s’exécute correctement :
 

# tor
@@ -124,9 +121,10 @@ May 11 20:09:59.819 [notice] Tor can't help you if you use it wrong! Learn how t
 May 11 20:09:59.821 [notice] Read configuration file "/etc/tor/torrc".
 May 11 20:09:59.836 [notice] Opening Socks listener on 127.0.0.1:9050
 May 11 20:09:59.836 [notice] Opened Socks listener on 127.0.0.1:9050
-

Pas d'erreur ni de warning, la classe. Votre node de roxXor est bientôt prêt. On upgrade le système, on active le daemon et on reboot !
 

+


Pas d'erreur ni de warning, la classe. Votre node de roxXor est bientôt prêt. On upgrade le système, on active le daemon et on reboot !

# systemctl enable tor
 # apt update && apt full-upgrade && systemctl reboot
+

 

wooOOT !
 

IV. Audit du trafic avec Nyx

A ce stade votre relai est lancé. Comme pour n'importe quel serveur vous avez besoin de l'auditer, savoir combien de bande passante il consomme etc. nyx(1) est la pour vous aider ! Nyx c'est un outil qu'il est bien. Il va vous permettre d'observer en mode console votre trafic de manière semi-graphique un peu comme htop. Nous l'avons déjà installé plus haut. Nous avons déjà écrit le nécessaire à son fonctionnement dans notre /etc/tor/torrc  il ne nous reste plus qu'à le lancer !