Gestire un nodo Bitcoin personale aumenta la tua sovranità, ma espone comunque alcune informazioni sulla tua presenza nella rete. Un nodo raggiungibile pubblicamente può rivelare il proprio indirizzo IP, permettendo a terze parti di associare una determinata connessione internet all’attività di un nodo Bitcoin.
Per migliorare la privacy e ridurre l’esposizione della tua identità digitale, configurerai il nodo utilizzando reti anonime come Tor e I2P, instradando il traffico attraverso questi sistemi e limitando le informazioni direttamente associate alla tua connessione.
Tor (The Onion Router)
Tor permette di proteggere maggiormente la privacy del traffico Internet instradandolo attraverso una rete distribuita di nodi, riducendo l’esposizione del proprio indirizzo IP e rendendo più difficile associare una connessione alla propria attività in rete.
Per garantire di utilizzare una versione aggiornata e supportata, installerai Tor direttamente dai repository ufficiali del Tor Project che potrebbe non ricevere gli aggiornamenti più recenti con la stessa frequenza del repository ufficiale.
Per prima cosa aggiorna gli indici dei pacchetti:
sudo apt update
Installa lsb-release, necessario per identificare automaticamente la versione Debian in uso e generare il repository Tor corretto:
sudo apt install lsb-release -y
Aggiungi la GPG utilizzata per verificare l’autenticità dei pacchetti Tor:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \
| gpg --dearmor \
| sudo tee /usr/share/keyrings/tor-archive-keyring.gpg > /dev/null
Crea il file del repository:
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/tor.list
echo "deb-src [arch=arm64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/tor.list
Aggiorna il repository apt e installa Tor insieme al pacchetto per la gestione della chiave:
sudo apt update && sudo apt install tor deb.torproject.org-keyring -y
Verifica che l’installazione sia andata a buon fine:
tor --version

Configurazione Tor
Per permettere a Bitcoin Core di interagire con Tor e gestire automaticamente alcune funzionalità, come la creazione di un servizio .onion, devi abilitare la porta di controllo di Tor e configurare l’autenticazione tramite cookie.
Modifica la configurazione di Tor:
sudo nano +56 /etc/tor/torrc --linenumbers
Rimuovi il simbolo # dalla direttiva ControlPort 9051 per abilitarla e aggiungi in fondo al file:
CookieAuthentication 1
CookieAuthFileGroupReadable 1
Salva il file, con CTRL+O ed esci con CTRL+X.
Ricarica Tor per rendere effettive le modifiche:
sudo systemctl reload tor
Verifica che il servizio Tor sia attivo e in ascolto sulle porte predefinite 9050 (proxy SOCKS) e 9051 (porta di controllo):
sudo ss -tulpn | grep tor | grep LISTEN

I2P (Invisible Internet Project)
Mentre Tor è principalmente utilizzato per ridurre l’esposizione dell’indirizzo IP e accedere a Internet in modo più privato, I2P è una rete overlay anonima pensata principalmente per comunicazioni all’interno della rete I2P tra servizi e nodi partecipanti.
Per il nodo Bitcoin utilizzeremo i2pd, un’implementazione leggera del protocollo I2P scritta in C++.
Per prima cosa aggiungi il repository ufficiale:
wget -q -O - https://repo.i2pd.xyz/.help/add_repo | sudo bash -s -
Installa il pacchetto:
sudo apt update && sudo apt install i2pd -y
Verifica che i2pd sia stato installato correttamente:
i2pd --version

Verifica che il servizio sia attivo e in ascolto sulle porte predefinite:
sudo ss -tulpn | grep i2pd

Webconsole i2pd
Per impostazione predefinita, i2pd mette a disposizione una console Web HTTP locale che permette di visualizzare informazioni sul funzionamento della rete I2P, come tunnel attivi, connessioni, utilizzo della banda e statistiche del router.
La console è accessibile solo localmente tramite la porta 7070. Per renderla disponibile dalla rete locale in modo sicuro, utilizzerai Nginx come reverse proxy HTTPS.
Crea la configurazione Nginx:
sudo nano /etc/nginx/sites-available/i2pd-console.conf
Inserisci il seguente contenuto:
Salva il file con CTRL+O ed esci con CTRL+X.
Attiva la configurazione creando il collegamento simbolico nella directory sites-enabled:
sudo ln -s /etc/nginx/sites-available/i2pd-console.conf /etc/nginx/sites-enabled/
Verifica che la configurazione di Nginx sia corretta:
sudo nginx -t

Ricarica Nginx per applicare la nuova configurazione:
sudo systemctl reload nginx
Consenti l’accesso alla porta tramite UFW:
sudo ufw allow 7071/tcp comment 'i2pd Console'
Verifica che i2pd e Nginx siano in ascolto sulle rispettive porte:
sudo ss -tulpn | grep -E '(:7070|:7071)'

Ora puoi accedere alla console Web tramite:
https://hostname.local:7071
oppure:
https://IP_DEL_NODO:7071
