OffshoreVps
Privacy e legge20 ott 20268 min di letturaDi il team di OffshoreVps

Ospita un sito .onion: servizio nascosto Tor su un VPS

Esegui un sito web come servizio onion di Tor: installa Tor, associa Nginx a localhost, leggi il tuo indirizzo .onion, aggiungi l’autorizzazione dei client ed evita le perdite che ti espongono.

Un servizio onion Tor permette alle persone di raggiungere il tuo sito attraverso la rete Tor senza che nessuna delle due parti conosca l'indirizzo IP dell'altra. Il server si connette in uscita a Tor, quindi non ha bisogno di alcuna porta in ingresso aperta. Questa guida ne configura uno su una VPS Ubuntu, con Nginx che serve un piccolo sito.

Finestra del terminale su un VPS che mostra i comandi usati per pubblicare un servizio onion di Tor, a partire da “sudo apt update”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

Cosa ti offre un servizio onion

  • Un indirizzo .onion derivato da una chiave, quindi autoautenticante e senza bisogno di una certificate authority.
  • Crittografia end-to-end tra il visitatore e il tuo server, all'interno di Tor.
  • Nessuna necessità di esporre ai visitatori l'indirizzo IP pubblico del tuo server.

Non rende legale il contenuto del tuo sito e non nasconde gli errori che commetti altrove, come un dominio clear web che punta alla stessa macchina.

Passo 1: installa Tor e Nginx

sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor

Passo 2: associa Nginx solo a localhost

Il web server non deve rispondere sull'interfaccia pubblica, altrimenti l'IP clear web e il sito onion diventano collegabili. Modifica la configurazione del sito in modo che ascolti sul loopback.

server {
    listen 127.0.0.1:8080;
    server_name _;
    root /var/www/onion;
    index index.html;
    server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
I passaggi di questa guida in ordine: 1. Cosa ti offre un servizio onion; 2. installa Tor e Nginx; 3. associa Nginx solo a localhost; 4. dichiara il servizio nascosto; 5. autorizzazione dei client facoltativa; 6. chiudi le perdite più comuni
I passaggi di questa guida, in ordine.

Passo 3: dichiara il servizio nascosto

Aggiungi queste righe a /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname

L'ultimo comando stampa il tuo indirizzo .onion di 56 caratteri. Aprilo in Tor Browser per testare. Fai un backup della cartella /var/lib/tor/my_site/: la chiave al suo interno è il tuo indirizzo, e perderla significa avere un nuovo indirizzo.

Passo 4: autorizzazione client opzionale

Per un servizio privato, aggiungi una chiave che solo i visitatori approvati possiedono. Crea il file /var/lib/tor/my_site/authorized_clients/alice.auth con una riga nella forma descriptor:x25519:PUBLIC_KEY, poi ricarica Tor. I visitatori senza la chiave privata corrispondente non possono nemmeno vedere che il servizio esiste.

Passo 5: chiudi le falle più comuni

  • Non fare mai riferimento nelle tue pagine a risorse, font o analytics del clear web.
  • Rendi generiche le pagine di errore e le intestazioni, e mantieni server_tokens off.
  • Mantieni preciso l'orologio del server; Tor ne ha bisogno.
  • Blocca con il firewall tutto tranne SSH: sudo ufw default deny incoming, poiché Tor non ha bisogno di porte in ingresso.
  • Non eseguire un sito clear web sullo stesso host a meno che tu non li abbia separati completamente.

Leggi le abitudini OpSec dei server prima di pubblicare qualsiasi cosa, e usa la checklist di hardening su un nuovo server.