Faire tourner un nœud Bitcoin et Lightning avec TOR

1
1462

Vous avez un nœud Bitcoin et Lightning Network, vous participez à la décentralisation du réseau, bravo ! Cependant il réside un point noir, en particulier si votre noeud est localisé chez vous ou votre bureau… En connaissant votre adresse IP, publiée par le nœud, il est possible de vous localiser. C’est sensible dans le cas où vous y mettez pour l’équivalent de milliers d’euros en bitcoins, une personne mal intentionnée pourrait vous pirater voire vous cambrioler. Heureusement, grâce à Tor vous allez pouvoir cacher tout cela en un temps record.

Sommaire

Qu’est ce que Tor ? Pourquoi Tor ?
Installer et activer Tor
Configurer Tor
Connecter votre Bitcoin à Tor
Connecter votre Lightning à Tor
Gérer les droits avec Tor

Ce guide est basé sur une installation avec bitcoind et lnd sur un Debian 9 Stretch Lite, sur n’importe quelle version Debian 9 ce guide sera fonctionnel.

Qu’est ce que Tor ? Pourquoi Tor ?

Vous connaissez peut-être Tor indirectement en citant le « Deep Web », mais c’est bien plus que cela. Tor est un logiciel libre qui permet de brouiller les communications Internet (TCP) en construisant un circuit de routage IP. En d’autres termes un émetteur communique avec un récepteur en passant par un chemin incompréhensible, la communication devient intraçable d’un point de vue extérieur.

Autant vous dire que Tor est la solution propice à anonymiser les communications de votre nœud Bitcoin.

« Tor tord le chemin. »

Installer et activer Tor

On va travailler avec le terminale de commandes, si vous avez la version Lite, vous n’avez que cela sous la main en principe.

Installer Tor se fait avec la commande apt update && apt install tor, on met à jour apt pour être sûr de télécharger la dernière version des dépendances.

Une fois installé activez le service en tapant systemctl enable tor et systemctl start tor.

Configurer Tor

On a installé Tor, nous allons le configurer en prévision des usages avec lnd et bitcoind.

La configuration de Tor se trouve dans le chemin /etc/tor/torrc où torrc est un fichier de configuration. Connectez-vous en root pour le modifier avec su root, puis tapez vim /etc/tor/torrc ou nano /etc/tor/torrc si vous préférez nano pour éditer un fichier. Je vous montre les configurations à décommenter (en retirant le # au début de chaque ligne concernée).

Modifications faites, tapez systemctl restart tor pour redémarrer Tor afin qu’il prenne en compte vos modifications.

Et enfin pour voir si Tor est fonctionnel, observez le avec la commande systemctl status tor@default, vous devriez avec quelque chose comme suit :

Si votre service Tor n’est pas actif, vous trouverez des informations en tapant journalctl -u tor@default.

Connecter votre Bitcoin à Tor

Cette configuration fonctionne avec bitcoind en version 0.19.0.1, dans mon nœud j’utilise l’utilisateur bitcoin pour gérer ce service, je vous déconseille d’utiliser root.

Avant de commencer vous allez devoir chercher votre nom de domaine Tor en tapant ce qui suit :

blocsiq5epwbye47.onion est mon nom de domaine (hostname).

Si vous voulez savoir comment avoir un domaine qui commence par un mot ou pseudo comme ici “blocs”, faites le moi savoir par email.

Pour configurer Bitcoin vous allez modifier .bitcoin/bitcoin.conf avec les informations suivantes :

Redémarrez Bitcoin en tapant bitcoin-cli stop && bitcoind.

Félicitations votre nœud est désormais sur le réseau Tor. Il ne vous reste plus qu’à faire de même sur LND afin d’anonymiser nos échanges sur le réseau Lightning Network.

Connecter votre Lightning à Tor

La configuration de lnd est un peu différente de Bitcoin. Sans plus attendre ouvrez .lnd/lnd.conf et ajoutez ces différentes configurations :

Redémarrez votre lnd en tapant lncli stop et lnd pour lancer le service.

Il se peut que vous ayez une erreur de droit relative à Tor. Dans la partie suivante on voit comment la solutionner.

Gérer les droits avec Tor

Vous devez donner accès à différents fichiers de Tor à l’utilisateur qui gère votre lnd, dans mon cas mon utilisateur est bitcoin.

Tapez la commande chmod -R 0750 /var/lib/tor. Cela va donner accès en lecture au groupe debian-tor sur le dossier /var/lib/tor.

Maintenant ajoutez l’utilisateur bitcoin au groupe debian-tor en tapant usermod -a -G debian-tor bitcoin en étant connecté sur su root.

Tor est bien conçu, il ne nous permet pas d’appliquer les droits qu’on veut à ses dossiers pour limiter de trop les ouvrir. Tapez journalctl -u tor@default, si les dernières lignes parlent d’une erreur, cela signifie que votre Tor n’est plus en route. C’est un général dû à une mauvaise configuration (mauvais droits sur les dossiers relatifs à Tor, mauvaises configuration dans torrc, etc.)


A partir d’ici votre nœud est connecté au réseau en passant par Tor ! Il est toujours intéressant d’observer si tout est bien cadré par Tor afin de ne pas avoir de fuite d’IP. Tapez la commande du terminal ci-dessous :

Nous, ce qui nous intéresse ce sont bitcoind et lnd. On va passer tous les ports d’écoute en revue et comprendre si oui ou non ils sont “torrifiés” :

  • lnd 9735 : C’est le port de LND, “torrifiée” avec le clé privée de votre Tor ;
  • bitcoind 28332 : C’est le port ZMQ de Bitcoin, il sert à la configuration et n’est pas distribué ;
  • bitcoind 8333 : C’est le port de bitcoind qui est caché via Tor (HiddenServicePort dans /etc/tor/torrc) ;
  • bitcoind 8332 : C’est le port JSON-RPC de bitcoind, nul besoin de le cacher avec Tor si vous ne le distribuez pas ;
  • bitcoind 8332 IPV6 : C’est le port ipv6 de bitcoind qui est caché via Tor (HiddenServicePort dans /etc/tor/torrc) ;

Enfin pour voir si lnd a bien considéré vos modifications, tapez lncli getinfo, vous obtenez un JSON comme suit :

Intéressez vous à la partie d’en bas, "uris", qui est une liste des adresses distribuées dans le réseau. Ici je n’ai qu’une adresse qui est un .onion, voir ce qui suit le “@”. La partie de gauche est la clé publique de mon lnd.

.onion est un nom de domaine exclusif au routage en oignon comme le fait Tor. Comme vous pouvez l’imaginer, c’est réellement une référence à la plante. Cela vient du routage qui recouvre le message de plusieurs couches, comme un oignon où le cœur est enrobé de plusieurs couches. MrBidouille en a fait une parfaite vidéo introductive.

Vérifications faites, vous êtes cachés, bravo !

Merci à Clint pour ses infos sur Tor et JohnOnChain pour m’avoir aidé à la configuration de lnd avec Tor.


Cet article de Jonathan Serra, ingénieur logiciel Freelance, a été publié originellement sur blocs.fr sous licence Creative Commons BY-NC-SA. Il est ouvert à contribution sur Github : Servir Bitcoin et Lightning Network en étant anonyme avec Tor.