Skip to content

Tor-relay setup guide

Warning

La guida è stata creata con in mente docker non podman poichè con quest'ultimo non è stata ancora valutata la fattibilità

Pangolin setup guide

Creare la cartella iniziale

Lo script di pangolin imposta come crtella iniziale la cartella nella quale si è attualmente pwd. Al fine di evitare lo sputtanamento della directory ~/. si crea la segente struttura:

mkdir ~/appdata && mkdir ~/appdata/tor-relay
cd ~/appdata/tor-relay

Docker compose

Create the file ~/appdata/tor-relay/docker-compose.yml with the following config:

services:
  tor:
    image: dockurr/tor
    container_name: tor
    ports:
      - 9001:9001
      - 9030:9030
    volumes:
      - ./config:/etc/tor
      - ./data:/var/lib/tor
    restart: always

Create volumes and grant permissions

Creari le seguenti directory::

mkdir config && mkdir data
Ora provare ad avviare il docker e vedere se da solo un errore di mancato file torrc o se mancano dei permessi per creare o accedere ai file. Nel secondo caso seguire la risoluzione del bug.

sudo docker compose up      # Senza -d per vedere i log, Ctrl+C per uscire
sudo docker compose down    # Pero portare lo stack down
Bug

Per qualche motivazione a me sconosciuta il container si rifiuta di scrivere cartelle e file per un problema di permessi che non dovrebbe esistere. Questo perchè in teoria il docker dovrebbe andare con i permessi user e non root ma guarda caso, nonostante i permessi all'interno della cartella siano già user esso si rifiuta di partire quindi questo passaggio è fondamentale

sudo chmod -R 777 ../tor-relay

Creazione del file torrc

Nella cartella config creare il file torrc con le seguenti caratteristiche:

# =================== /etc/torrc ===================
# Identificazione del nodo
Nickname ajeje                    # Nome pubblico del relay (cambia se vuoi)
ContactInfo brazov@onionmail.org  # Email pubblica per contatti (verrà pubblicata)

# Porte e indirizzi da pubblicizzare (ascolto per connessioni in ingresso)
# ORPort: porta per connessioni OR (relay-to-relay e client-to-relay per le connessioni in ingresso)
ORPort 0.0.0.0:9001               # Usuale: 9001 o 443. Formato: [IP]:porta o solo porta.
# Per IPv6: ORPort [IPv6-address]:9001

# DirPort: porta per servire la directory (lista di relay) ad altri nodi
DirPort 0.0.0.0:9030              # È opzionale ma utile per alcuni tipi di relay/directory mirror

# Ruolo del nodo e comportamento client/relay
SocksPort 0                       # Disabilita l'uso locale di Tor come proxy SOCKS (solo relay)
ControlSocket 0                   # Disabilita il socket di controllo (evita controllo locale tramite socket)

# Non essere un exit relay
ExitRelay 0                       # Flag legacy per disabilitare il comportamento di exit
ExitPolicy reject *:*             # Politica di uscita: qui rifiuta tutto (nessun traffico uscente verso Internet)

# Limiti di banda
RelayBandwidthRate 10 MBytes      # Velocità media garantita (limite di upload/download del relay)
RelayBandwidthBurst 50 MBytes     # Burst massimo consentito

# Limiti di memoria/coda
MaxMemInQueues 500 MB             # Limita uso di memoria per code interne
# =================== fine /etc/torrc ===================

Info

  • Nickname: nome pubblico del relay; usato nelle directory.
  • ContactInfo: email o contatto mostrato pubblicamente nelle directory.
  • ORPort: porta su cui il relay accetta connessioni Tor; deve essere raggiungibile dall'esterno.
  • DirPort: (opzionale) porta per servire parti della directory a client/relay.
  • SocksPort: porta SOCKS per uso client locale; impostandola a 0 si disabilita.
  • ControlSocket: socket per controllo locale (stem/torctl); 0 disabilita.
  • ExitRelay / ExitPolicy: impediscono al relay di comportarsi come exit (bloccare traffico verso Internet).
  • RelayBandwidthRate / RelayBandwidthBurst: limiti di banda per non saturare la connessione.
  • MaxMemInQueues: limita memoria impiegata per code interne.