Tor

Da GolemWiki.
Versione del 21 mar 2022 alle 20:45 di $pooky Hunter (discussione | contributi) (→‎Navigazione anonima)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Introduzione

Tor (acronimo di The Onion Router) è un programma che permette di comunicare anonimamente attraverso Internet.

Utilizzando Tor per connettersi alla rete i nostri dati non transitano secondo il normale percorso di routing dal nostro client fino al server desiderato, ma passano attraverso i server Tor che reinstradano la nostra richiesta attraverso un circuito stratificato di server (come una cipolla, onion per l'appunto).

I server Tor sono gestiti da semplici volontari, garantiscono l'anonimato del traffico in uscita proteggendoci da tracciamenti indesiderati e dalla censura.

Tor può rendere anonimi anche i server web, permette di ospitare server in modo che la loro localizzazione in rete rimanga sconosciuta. Per accedere a questi server nascosti, contraddistinti dal dominio di primo livello .onion è ovviamente necessario utilizzare Tor anche da lato client (Browser).


Navigazione anonima

Per navigare anonimamente occorrerà installare sia tor che un proxy (es. privoxy) che faccia da "colla" tra questo ed il nostro browser.

Su Debian apt install tor privoxy

Editare il file di configurazione di Privoxy /etc/privoxy/config aggiungendo questa riga

forward-socks4a / localhost:9050 .

Se volete mettere il servizio di proxy a disposizione di tutta la sottorete (sostituendo 192.168.178.100 col vostro IP locale) aggiungete anche

listen-address  192.168.178.100:8118

Se utilizzate distribuzioni basate su Arch ricordatevi di abilitare ed avviare i due servizi

# systemctl enable tor
# systemctl start tor
# systemctl enable privoxy
# systemctl start privoxy


A questo punto non rimarrà che configurare il vostro browser per connettersi alla rete utilizzando il proxy Privoxy, che di default è attivo sulla porta 8118

  • Su Firefox: Impostazioni –> Generale —> Impostazione Connessione —> Impostazione manuale del proxy
 HTTP: "indirizzo IP del computer dove è installato privoxy (es. 127.0.0.1)"
 Port: 8118

Alcuni programmi sono capaci di utilizzare direttamente le SOCKS di Tor (HexChat, Firefox, i vari IM, etc..), questi dovranno quindi essere configurati per collegarsi all' "IP del PC con TOR":9050

WEB Server Onion

Con Tor sarà possibile creare il vostro sito con dominio .onion In questa guida spiegheremo come creare un mirror su onion di un sito già operativo tramite lighttpd.

Hidden Servise

Editare il file di configurazione di tor per aggiungere il servizio di web hosting inserendo queste due righe per ogni sito che vorremo gestire, andranno anche create le relative directory sul filesystem # mkdir /var/lib/tor/my-website-domain-name1 e così via per ogni sito; potete ovviamente chiamarle col nome che preferite, io ho scelto my-website-domain-name*.

  • /etc/tor/torrc
HiddenServiceDir /var/lib/tor/my-website-domain-name1/
HiddenServicePort 80 127.0.0.1:27047
HiddenServiceDir /var/lib/tor/my-website-domain-name1/
HiddenServicePort 80 127.0.0.1:27048
HiddenServiceDir /var/lib/tor/my-website-domain-name1/
HiddenServicePort 80 127.0.0.1:27049
  • Riavviare Tor
systemctl restart tor

Per scoprire l'indirizzo del vostro sito utilizzate il comando

# cat /var/lib/tor/my-website-domain-name*/hostname

Conservate le chiavi pubbliche e private "hs_ed25519_public_key" e " hs_ed25519_secret_key" contenute nelle rispettive cartelle /var/lib/tor/my-website-domain-name* altrimenti non sarete più in grado di recuperare il dominio .onion assegnatovi.


Lighttpd

Aggiungere al file /etc/lighttpd/lighttpd.conf le seguenti righe per configurare il mirror su .onion


$SERVER["socket"] == ":27047" {
     server.name                 = "xxxxxxxxxxxxxxxxx.onion"
     server.document-root        = "/var/www/html"
  #server.errorlog             = "/var/log/lighttpd/domain-name-onion/error.log"
  # Deny Internet users to access at specific directory such /php:
  $HTTP["url"] =~ "^/php" {
     url.access-deny = ("")
  }
}