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

Versione installata di Tor

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

Porte Tor in ascolto


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

Versione installata di i2pd

Verifica che il servizio sia attivo e in ascolto sulle porte predefinite:

sudo ss -tulpn | grep i2pd

Porte i2pd in ascolto

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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
server {
    listen 7071 ssl;

    error_page 497 =301 https://$host:$server_port$request_uri;

    location / {
        proxy_pass http://127.0.0.1:7070;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

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

Test configurazione Nginx

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)'

Porte webconsole e Nginx in ascolto

Ora puoi accedere alla console Web tramite:

https://hostname.local:7071

oppure:

https://IP_DEL_NODO:7071

webconsole