Tor & I2P

Le service Tor

Son utilité

Active les services suivants :
  • votre-longue-adresse-onion-v3.onion:18084 - service P2P Onion (pour les autres nœuds Onion)
  • votre-longue-adresse-onion-v3.onion:18089 - service RPC Onion (pour les portefeuilles se connectant via Tor)
Le service Onion pour le réseau P2P est pratique pour les autres utilisateurs de nœuds complets, car il leur permet de diffuser des transactions via Tor.

Se connecter temporairement en root

sudo su -

Installer apt-transport-https

apt install apt-transport-https

Créer un nouveau fichier

nano /etc/apt/sources.list.d/tor.sources

Avec ce contenu

Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg

Ajouter la clé GPG suivante

wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null

Installer Tor

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

Modifier le fichier suivant

nano /etc/tor/torrc

Avec ces lignes

HiddenServiceDir /var/lib/tor/monerod
HiddenServicePort 18089 127.0.0.1:18089    # interface for wallet ("RPC")
HiddenServicePort 18084 127.0.0.1:18084    # interface for P2P network

Activer et redémarrer Tor

systemctl enable tor
systemctl restart tor

Afficher l'adresse .onion du serveur

cat /var/lib/tor/monerod/hostname

Modifier le fichier de configuration de Monero

nano /monero/monerod.conf

Activer les lignes suivantes, et remplacer votre-longue-adresse-onion-v3 par l'adresse .onion affichée précédemment

tx-proxy=tor,127.0.0.1:9050,disable_noise
anonymous-inbound=votre-longue-adresse-onion-v3.onion:18084,127.0.0.1:18084

Se déconnecter de root

exit

Vérifier le bon fonctionnement

curl -x socks5h://127.0.0.1:9050 http://votre-longue-adresse-onion-v3.onion:18089/get_info

Une des lignes doit afficher "status": "OK"

Le service I2P

Son utilité

De la même manière que pour Tor, i2p active les services suivants :
  • votre-longue-adresse.b32.i2p:18085 - service P2P i2p (pour les autres nœuds i2p)
  • votre-longue-adresse.b32.i2p:18089 - service RPC i2p (pour les portefeuilles se connectant via i2p)

Se connecter temporairement en root

sudo su -

Installer i2p

wget -q -O - https://repo.i2pd.xyz/.help/add_repo | bash -s -
apt update
apt install i2pd

Créer un tunnel serveur pour les ports P2P et RPC

cat << EOF > /etc/i2pd/tunnels.conf.d/monero-mainnet.conf
[monero-node]
type = server
host = 127.0.0.1
# Anonymous inbound port
port = 18085
inport = 0
keys = monero-mainnet.dat

[monero-rpc]
type = server
host = 127.0.0.1
# Restricted RPC port
port = 18089
keys = monero-mainnet.dat
EOF

Redémarrer i2pd

systemctl restart i2pd

Connaître la nouvelle adresse i2p du noeud

curl -s http://127.0.0.1:7070/?page=i2p_tunnels | grep -Eo "[a-zA-Z0-9./?=_%:-]*" | grep "18089"

Modifier le fichier de configuration de Monero

nano /monero/monerod.conf

Activer les lignes suivantes, et remplacer votre-longue-adresse.b32 par l'adresse .i2p affichée précédemment

tx-proxy=i2p,127.0.0.1:4447,disable_noise
anonymous-inbound=votre-longue-adresse.b32.i2p,127.0.0.1:18085

Se déconnecter de root

exit

Vérifier le bon fonctionnement

curl -x socks5h://127.0.0.1:4447 http://votre-longue-adresse.b32.i2p:18089/get_info

Une des lignes doit afficher "status": "OK"