Configuration de Tor pour un nœud Bitcoin Core

Configuration de Tor pour un nœud Bitcoin Core

Dans un article précédent, nous avons appris l'importance de faire tourner son propre noeud Bitcoin; d'abord en vérifiant les fichiers d'installation grâce aux clés PGP, puis en suivant certaines commandes pour installer l'interface graphique du logiciel Bitcoin Core (Bitcoin-Qt) et démarrer l'Initial Block Download.

Cet article se trouve à être la deuxième partie de ce dernier. Ici, nous allons explorer les différentes commandes pertinentes de Bitcoin Core nous permettant d'optimiser la confidentialité de nos interactions avec nos pairs du réseau Bitcoin via le service Tor.

💡
Ce guide est conçu pour Bitcoin Core 24.0.1 sur distributions Linux compatibles avec Ubuntu/Debian.

Installation et configuration de Tor pour Bitcoin Core

D'abord, il nous faut installer le service Tor (The Onion Router), un réseau utilisé pour la communication anonyme, lequel nous permettra d'anonymiser nos intéractions avec le réseau Bitcoin. Pour une introduction aux outils de protection de la vie privée en ligne, incluant Tor, référez-vous à notre article à ce sujet.

Pour installer Tor, ouvrez un terminal et entrez sudo apt -y install tor. Une fois l'installation complétée, le service sera normalement lancé automatiquement en arrière-plan. Vérifiez qu'il tourne bien avec la commande sudo systemctl status tor. Dans la réponse retournée devrait se trouver Active: active (exited).  Appuyez sur Ctrl+C pour quitter cette fonction.

Dans tous les cas vous pouvez utiliser les commandes suivantes dans le terminal pour lancer, arrêter, ou redémarrer Tor :
sudo systemctl start tor
sudo systemctl stop tor
sudo systemctl restart tor

Lançons ensuite l'interface graphique de Bitcoin Core avec la commande bitcoin-qt. Puis, activons la fonctionnalité automatisée du logiciel pour diriger nos connexions via un proxy Tor : Paramètres > Réseau,  et de là nous pouvons cocher Se connecter par un mandataire SOCKS5 (mandataire par défaut) ainsi que Utiliser un mandataire SOCKS5 séparé pour atteindre les pairs par les services oignons de Tor.

Bitcoin Core détecte automatiquement si Tor est installé et, si c'est le cas, créera par défaut des connexions sortantes (Outbound) vers d'autres nœuds utilisant aussi Tor, en plus des connexions vers des nœuds utilisant les réseaux IPv4/IPv6 (clearnet).

💡
Pour changer la langue d'affichage au français, rendez vous dans l'onglet Affichage des Paramètres.

Configuration avancée de Tor (optionnel)

Il est possible de configurer Bitcoin Core pour n'utiliser que le réseau Tor afin de se connecter avec des pairs, optimisant ainsi notre anonymité via notre nœud. Comme il n'existe pas de fonctionnalité à cet effet dans l'interface graphique, nous allons devoir créer manuellement un ficher de configuration. Allez dans Paramètres, puis Options.

Ici, cliquez sur Ouvrir le fichier de configuration. Une fois dans le fichier texte bitcoin.conf, ajoutez simplement une ligne onlynet=onion et sauvegardez le fichier. Vous devez redémarrer Bitcoin Core pour que cette commande prenne effet.

Nous allons ensuite configurer le service Tor pour que Bitcoin Core puisse recevoir des connexions entrantes via un proxy, permettant ainsi à nos pairs du réseau d'utiliser notre nœud pour télécharger des données de la blockchain sans pour autant compromettre la sécurité de notre machine.

Dans le terminal, entrez sudo nano /etc/tor/torrc pour accéder au fichier de configuration du service Tor. Dans ce fichier, cherchez la ligne #ControlPort 9051 et supprimez le # pour l'activer. Ajoutez maintenant deux nouvelles lignes au fichier : HiddenServiceDir /var/lib/tor/bitcoin-service/ et
HiddenServicePort 8333 127.0.0.1:8334. Pour sortir du fichier tout en le sauvegardant, appuyez sur Ctrl+X > Y > Enter. De retour dans le terminal, redémarrez Tor en entrant la commande sudo systemctl restart tor.

Avec cette configuration, Bitcoin Core pourra désormais établir des connexions entrantes et sortantes avec d'autres pairs du réseau uniquement sur le réseau Tor (Onion). Pour confirmer que c'est bien le cas, appuyez sur l'onglet Fenêtre, puis Pairs.

Ressources supplémentaires

Ultimement, n'utiliser que le réseau Tor (onlynet=onion) pourrait vous rendre vulnérable à une attaque Sybil. C'est pourquoi certains recommandent de préserver une configuration multi-réseau pour palier à ce type de risque. D'ailleurs, toutes les connexions IPv4/IPv6 seront dirigées par le proxy Tor une fois celui-ci configuré, tel qu'indiqué précédemment.

Alternativement, pour demeurer uniquement sur le réseau Tor et mitiger le risque d'attaque Sybil, vous pouvez ajouter l'adresse d'un autre nœud auquel vous faites confiance dans votre fichier bitcoin.conf en ajoutant la ligne addnode=adresse_de_confiance.onion. Il est possible d'ajouter cette ligne à plusieurs reprises si vous désirez vous connecter à plusieurs nœuds de confiance.

Pour consulter les logs de votre nœud Bitcoin en ce qui à trait plus spécifiquement à son intéraction avec Tor, ajoutez debug=tor à votre fichier bitcoin.conf. Vous aurez maintenant les informations pertinentes à Tor dans votre journal de débogage, lequel vous pouvez consulter dans la fenêtre Renseignements, avec le bouton Fichier journal de débogage. Il est également possible de consulter ces logs directement dans le terminal avec la commande bitcoind -debug=tor.

Comme toujours, si vous avez des questions, n'hésitez pas à les partager à la communauté Agora256, nous apprenons ensemble, pour être meilleur demain que nous ne le sommes aujourd'hui!