Come ospitare un sito web in Ubuntu utilizzando Tor

Host Tor Website Linux 00 Featured Image

La rete Tor è un pezzo rivoluzionario di software. Con un solo programma, è ora possibile navigare e visualizzare il Web in modo anonimo. Questo rende Tor uno strumento essenziale per gli utenti che vogliono preservare la propria privacy durante la navigazione di un sito web. È anche possibile utilizzare Tor per ospitare un server web locale online, rendendolo incredibilmente utile per gli utenti attenti alla privacy che vogliono condividere informazioni pubblicamente senza rivelare la propria identità.

Nota: scopri prima cosa sono Tor e il routing onion prima di procedere.

Indice dei contenuti

  • Perché ospitare il tuo sito web su Tor?
  • Requisiti
  • Installazione di Nginx e Tor
  • Configurazione del firewall
  • Creazione di un servizio Tor per il tuo sito web
  • Creazione di un sito web semplice utilizzando Nginx
  • Accesso al tuo sito web tramite Tor
  • Domande frequenti

Perché ospitare il tuo sito web su Tor?

Uno dei maggiori vantaggi dell’hosting su Tor è che la sua connessione passa anche attraverso nodi intermedi simili a quelli del Tor Browser. Un visitatore che controlla il tuo sito web non sarà in grado di sapere da dove lo stai ospitando.

Host Tor Website Linux 02 Intermediary Nodes

A parte questo, non è necessario inoltrare alcuna porta per far funzionare il tuo sito web solo su Tor. Questo rende l’hosting semplice e accessibile anche in reti altamente ristrette. Ad esempio, una macchina sotto una rete Carrier-Grade NAT può comunque pubblicare un sito web direttamente tramite Tor.

Requisiti

Prima di poter installare sia Nginx che Tor, devi prima assicurarti di avere le seguenti risorse pronte:

  • Una connessione Internet che non limiti Tor per le richieste in entrata e in uscita. Questo ti consente di trasmettere il tuo sito web attraverso la rete Tor.
  • Una macchina che possa gestire il sito web che stai ospitando. Nella maggior parte dei casi, un desktop a doppio core con 4 GB di RAM dovrebbe essere sufficiente per un sito web di base.
  • Accesso root alla tua macchina di hosting, poiché la configurazione di Tor richiede di accedere ai file di sistema.

L’immagine sottostante mostra come ospitare un sito web Nginx solo su Tor su una macchina Ubuntu 22.04 LTS.

Host Tor Website Linux 03 Neofetch Ubuntu Machine

Installazione di Nginx e Tor

Apri un terminale. Digita il seguente comando per installare Nginx e Tor:

sudo apt install nginx tor wget

Host Tor Website Linux 05 Download Packages

Configurazione del firewall

Una volta installati entrambi i pacchetti nel tuo sistema, puoi proteggere il tuo server configurando il firewall per accettare solo connessioni in entrata dalla rete Tor digitando i seguenti comandi nel terminale:

sudo iptables -I INPUT -m state --state NEW -p tcp --dport80-j ACCEPT  
sudo iptables -I INPUT -m state --state NEW -p tcp --dport443-j ACCEPT  
sudo iptables -I INPUT -m state --state NEW -p tcp --dport9050-j ACCEPT

Host Tor Website Linux 06 Create Firewall Rules

I primi due comandi aprono le porte HTTP e HTTPS nel tuo sistema, mentre l’ultimo comando apre esplicitamente la porta SOCKS per la rete Tor. Questo approccio garantisce che Tor possa reindirizzare correttamente qualsiasi traffico che va alla tua macchina.

Creazione di un servizio Tor per il tuo sito web

Successivamente, devi creare un’entrata di servizio nascosta per il tuo server web. Questa è una configurazione specifica del servizio che ti permetterà di trasmettere nella rete Tor.

Per prima cosa, passa al tuo account root. Puoi farlo eseguendo il seguente comando:

sudo-i

Host Tor Website Linux 07 Switch To Root

Una volta dentro root, crea il tuo servizio nascosto modificando il file “/etc/tor/torrc”. Nel mio caso, sto aprendo questo file tramite GNU Nano.

nano/etc/tor/torrc

Host Tor Website Linux 08 Torrc File

Trova la sezione “location-hidden services” premendo Ctrl + W, quindi digitando “location-hidden.”

Host Tor Website Linux 09 Torrc Hidden Services

Vedrai un paio di esempi che dimostrano come creare il tuo servizio nascosto Tor. Per la maggior parte, tuttavia, devi solo impostare due opzioni: HiddenServiceDir e HiddenServicePort.

L’opzione HiddenServiceDir indica a Tor dove deve salvare i file di configurazione per il tuo servizio nascosto. L’opzione HiddenServicePort indica a Tor come deve reindirizzare eventuali richieste al tuo servizio nascosto.

Le seguenti righe di codice creeranno un nuovo servizio nascosto per il tuo server web:

HiddenServiceDir /var/lib/tor/nginx-tor-service/  
HiddenServicePort 80 127.0.0.1:80  
HiddenServicePort 443 127.0.0.1:443

Host Tor Website Linux 10 Torrc Create New Hidden Service

Ricarica il demone Tor per applicare le tue nuove impostazioni eseguendo i seguenti comandi:

systemctl enable tor  
systemctl restart tor

Suggerimento: scopri come utilizzare Tor con la tua connessione VPN.

Creazione di un sito web semplice utilizzando Nginx

Una volta che un servizio nascosto Tor è attivo e funzionante, inizia a configurare il tuo server web. Crea un nuovo file di configurazione tramite il comando touch:

sudotouch/etc/nginx/sites-available/nginx-tor-service

Host Tor Website Linux 11 Create New Nginx Server

Modifica il tuo nuovo file di configurazione Nginx come un server web di base. Ad esempio, il seguente blocco di codice distribuirà un semplice server web sulla porta 80:

server{  
listen 80 default_server;  
listen[::]:80 default_server;  
  
root /var/www/html;  
  
server_name 4tth4kzmipldb5elklravakdwlnte3ck6m5ahl73nfbe6ni67zmyvxyd.onion;  
  
location / {  
try_files$uri$uri/ =404;  
}  
}
  • Le due variabili listen impostano sia le porte che l’host a cui questa configurazione del server dovrebbe ascoltare. In questo caso, Nginx ascolta sulla porta 80 sia su IPv4 che su IPv6.
  • La variabile root imposta la posizione in cui Nginx cercherà i file sul tuo server web.
  • La variabile server_name contiene il nome di dominio del tuo server. Trovalo eseguendo sudo less /var/lib/tor/nginx-tor-service/hostname.
  • La variabile location contiene funzioni su come Nginx gestisce i file nella root del tuo sito web. In questo esempio, imposta solo l’errore 404 per eventuali file mancanti.

Host Tor Website Linux 12 Sample Server Configuration

Crea un collegamento simbolico per il tuo nuovo file di configurazione in “/etc/nginx/sites-enabled.”

sudoln-s/etc/nginx/sites-available/nginx-tor-service /etc/nginx/sites-enabled/

Infine, abilita il tuo nuovo sito web riavviando Nginx:

sudo systemctl enable nginx  
sudo systemctl restart nginx

Host Tor Website Linux 13 Nginx Running

Accesso al tuo sito web tramite Tor

Con sia Tor che Nginx attivi e funzionanti, controlla se il tuo sito web è accessibile dalla rete Tor. (Hai bisogno di trovare altri siti web nel dark web? Dai un’occhiata a questi motori di ricerca.) Prima, scarica l’ultima versione binaria del browser Tor:

wget https://www.torproject.org/dist/torbrowser/11.5.7/tor-browser-linux64-11.5.7_en-US.tar.xz

Host Tor Website Linux 14 Download Tor Browser

Estrai i file del browser nella directory corrente eseguendo il seguente comando:

tar xvf ./tor-browser-linux64-11.5.7_en-US.tar.xz  
cd ./tor-browser_en-US

Host Tor Website Linux 15 Extract Tor Browser

Inoltre, assicurati che il file binario del browser Tor abbia i giusti bit di esecuzione:

sudochmod +x ./start-tor-browser.desktop

Esegui e installa Tor Browser sulla tua macchina eseguendo il seguente comando:

./start-tor-browser.desktop --register-app

Host Tor Website Linux 16 Tor Browser Running

Infine, naviga verso il tuo nuovo sito web Tor digitando il suo nome di dominio nella barra degli indirizzi.

Host Tor Website Linux 17 Tor Website Running

Domande frequenti

È possibile ospitare un server di gioco utilizzando Tor?

Sì, ma eseguire un server di gioco Tor comporterà un’esperienza di gioco molto scadente. Ad esempio, eseguire un server Minetest su Tor avrà una latenza tra 1000 e 5000 millisecondi.

Sebbene ci siano modi per accelerare le tue connessioni Tor, gli sviluppatori di Tor non hanno progettato la rete per funzionare in applicazioni a bassa latenza. Per questo motivo, Tor è principalmente utile per pubblicare pagine web e applicazioni che non dipendono da bassa latenza.

Sto cercando di ospitare un sito web FTP ma non riesco ad accedervi tramite Tor.

Questo problema è molto probabilmente dovuto a una configurazione mancante nel file “/etc/tor/torrc”. Per ospitare correttamente un nuovo servizio su Tor, assicurati che le porte appropriate siano aperte sia nel tuo firewall che nel torrc.

Ad esempio, aggiungi HiddenServicePort 21 127.0.0.1:21 e HiddenServicePort 22 127.0.0.1:22 per creare una porta FTP e SFTP aperta nella tua macchina.

È possibile ospitare il mio sito web su SSL in Tor?

È importante notare che SSL non è un requisito rigoroso quando si protegge il tuo sito web Tor. Per impostazione predefinita, Tor cripta già le tue connessioni non appena carichi il browser Tor, quindi qualsiasi sito web che visiti su Tor è crittografato end-to-end.

Se vuoi, ottieni un certificato SSL per il tuo sito web Tor, anche se il processo può essere complicato, poiché ci sono solo un numero limitato di autorità di certificazione che rilasciano attivamente TLS per i domini .onion.

Crediti immagine: Unsplash. Tutte le modifiche e gli screenshot sono di Ramces Red.