Gran parte degli utenti conosce Tor (acronimo di The Onion Router) ovvero il sistema di comunicazione anonima basato sul protocollo di rete per l'onion routing. Utilizzando Tor il traffico generato diventa più difficile, ma non impossibile, da tracciare anche per le agenzie governative. E' dunque normale che Tor sia diventato una sorta di standard in questi anni, anche grazie agli scandali che hanno interessato le intelligence internazionali.
Cos'è Tor e come funziona
Sostanzialmente Tor si occupa di tutelare gli utenti dall'analisi del traffico attraverso una rete di router (gli onion router). In sostanza i dati dei client non vengono trasmessi direttamente ai server ma veicolati in prima istanza attraverso i server Tor che fungono appunto da router, generando un circuito virtuale crittografato "a strati" (da cui il concetto di routing "a cipolla") rendendo la navigazione anonima.
I Tor Hidden Services
Ma Tor non funziona unicamente lato client, infatti è possibile utilizzare la medesima tecnologia per assicurare la privacy dei propri servizi server grazie ai Tor Hidden Services. Questo sistema permette di impostare un server in modo che garantisca la privacy sia dell'utente che del server stesso. I Tor Hidden Service funzionano tramite la rete degli hostname .onion, per cui quando il client ricercherà il servizio web desiderato la rete Tor andrà ad indirizzarlo verso il servizio in modo completamente anonimo.
Con i Tor Hidden Services il server non conoscere l'IP del client e, vice versa, il client non conosce il vero IP del server che si sta contattando, questo perché esso viene filtrato dalla rete dei domini .onion. Tale combo garantisce un livello di privacy particolarmente elevato sia per l'utente che per chi gestisce il server.
Configurare i Tor Hidden Services
Impostare il proprio server per sfruttare i Tor Hidden Services non è un'operazione priva di complessità. Prima di tutto il servizio che vogliamo rendere anonimo dovrà supportare i certificati di crittografia TLS, poi bisognerà impostare tale servizio per l'ascolto dal solo localhost (127.0.0.1), successivamente si dovrà indicare al servizio web che tutte le comunicazioni dovranno essere effettuate tramite la rete Tor e non con il DNS impostato dal sistema.
È possibile fare ciò tramite iptables in modo da indirizzare l'intero traffico di rete verso il proprio Tor proxy locale, oppure se il servizio web che stiamo configurando supporta SOCKS proxy si può sfruttare tale feature per utilizzare il Tor SOCKS proxy built-in. Reperire Tor è semplice, esso infatti è disponibile nei repository delle principali distribuzioni Linux, sul sito ufficiale sono poi presenti anche la versioni pacchettizzate per Windows e MacOS.
Se per esempio volessimo realizzare un Hidden HTTP Service, dopo l'installazione, e le relative configurazioni dei servizi web annessi, basterà aggiungere qualche riga in /etc/tor/torrc:
HiddenServiceDir /var/lib/tor/hidden_service/http
HiddenServicePort 80 127.0.0.1:80
e poi riavviare il demone di Tor:
sudo systemctl restart tor
La voce HiddenServiceDir è la directory dove Tor registra i dati e le informazioni del servizio (compresi gli indirizzi .onion). Mentre la voce HiddenServicePort indica le porte dove Tor rimane in ascolto e quelle dove dovrà indirizzare il traffico dati.
Dopo il riavvio di Tor troveremo nella directory /var/lib/tor/hidden_service/http due nuovi file, "private_key" e "hostname". Il primo serve per l'autenticazione di quel particolare hidden service, ed è importante proteggere bene questo file perché può essere copiato ed usato da chiunque per autenticarsi al vostro posto. Il secondo file invece contiene i nomi dei vari hidden service presenti sul sistema.
Hostare più Tor Hidden Services
È ovviamente possibile hostare più hidden service da un singolo server. Tor infatti permette di aggiungerne diversi sempre tramite il file di configurazione. Ad esempio:
HiddenServiceDir /var/lib/tor/hidden_service/http
HiddenServicePort 80 127.0.0.1:80
HiddenServiceDir /var/lib/tor/hidden_service/ssh
HiddenServicePort 22 127.0.0.1:22
Via Linux Journal