Nodo de Tor NO de salida — Tutorial completo

Guía para montar un relay de Tor que no es de salida (middle/guard), desde cero, adaptada a tu máquina (Arch Linux, tor 0.4.9.12, 6 núcleos, 7.7 GB RAM).


1. Tipos de nodos en la red Tor

Un circuito Tor típico tiene 3 saltos:

Cliente <-> Guard (entrada) <-> Middle (medio) <-> Exit (salida) <-> Destino
Tipo Rol Qué ve Riesgo legal Recomendado para
Cliente Solo usa Tor (tu navegador, torsocks) Ninguno Todos
Guard / Entry Primer salto del circuito. Conecta con el usuario La IP del cliente, pero NO el destino Bajo-medio Operadores con uptime estable
Middle Segundo salto, solo reenvía tráfico cifrado entre relays No ve IP del cliente ni destino Mínimo Casi todo el mundo — es “el” nodo no-exit
Exit Último salto. El tráfico sale a internet desde tu IP El destino y el contenido si es HTTP Alto (quejas de abuso, DMCA, posible contacto policial) Operadores con soporte legal y hosting que lo permita
Bridge Relay no listado en el directorio público. Solo entrada Lo mismo que un guard, pero “secreto” Bajo Redes censuradas, IP única en casa
Snowflake Puente con transporte complementario Bajo Voluntarios ligeros
Onion service Servicio alojado en .onion (antes “hidden service”) Depende de lo que alojes Quien publica un servicio

Reglas de oro:

  • Un nodo middle/guard nunca aparece como IP de origen del tráfico. Los quejas de abuso son casi inexistentes.
  • El de salida es el único que genera exposición legal real. Por eso en este tutorial no lo configuramos.
  • El flag ExitRelay 0 + ExitPolicy reject *:* garantiza que jamas actuarás como salida.

Guard vs Middle: ¿puedo elegir?

No se elige manualmente. Todo relay de no-salida empieza como middle y, si es estable y rápido (≥2 MB/s), los directorios de Tor le dan el flag Guard automáticamente (~8 días a meses de uptime). No hace falta configuración extra.


2. Requisitos de un relay

Requisitos oficiales del Tor Project (guard/middle):

  • Una IP pública IPv4 estática (o IPv6).
  • ≥10 Mbit/s de subida y bajada (16 Mbit/s recomendado).
  • ≥100 GB/mes de tráfico (2 TB+ ideal).
  • 512 MB RAM si <40 Mbit/s; 1 GB si más.
  • Uptime lo más cercano a 24/7 (reinicios frecuentes = pierdes el flag Stable).
  • OJO con tu máquina: tu IP es 192.168.0.143 (LAN privada detrás de NAT). Un relay público necesita abrir un puerto en el firewall/router (port-forwarding del ORPort). Si no quieres/compartes IP con servicios, la alternativa es un bridge.

Tu hardware

  • RAM: 7.7 GB → sobrado (usa MaxMemInQueues 512 MB para no acaparar).
  • CPUs: 6 → bien.
  • Tor: 0.4.9.12 ya instalado en /etc/tor/torrc.

3. Configuración (relay middle no-exit)

Edita /etc/tor/torrc. Añade/ajusta estas directivas:

## Identidad
Nickname MiNodoPrivado          # sin espacios, alfanumérico, máx 19 chars
ContactInfo usuario@ejemplo.com # obligatorio de facto: canal de abuso

## Puerto de relay (como llegan los demás relays/clientes)
ORPort 9001
# Si tienes IPv6 pública, añade:  ORPort [tu::ipv6]:9001 IPv6Only

## CRÍTICO: nodo NO de salida
ExitRelay 0
ExitPolicy reject *:*

## Apagar lo que no usamos (no soy cliente ni bridge)
SocksPort 0
BridgeRelay 0
DirPort 0

## Seguridad
Sandbox 1
DisableDebuggerAttachment 1
ControlPort 0
MaxMemInQueues 512 MB

## Límites de ancho de banda (ajusta a tu línea)
## 5 MB/s = ~40 Mbit/s por dirección. 12 MB = ~96 Mbit/s.
RelayBandwidthRate  5 MBytes
RelayBandwidthBurst 10 MBytes

## Capa dura mensual (evita pasarte con tu proveedor de internet)
AccountingStart month 1 00:00
AccountingRule sum
AccountingMax 1500 GBytes

## Solo si ya tienes otro relay: evita que una misma ruta use dos de tus nodos
# MyFamily <fingerprint1>,<fingerprint2>

Pasos:

sudo systemctl edit --force --full tor   # ó simplemente edita /etc/tor/torrc
# pega la config de arriba (o al final del archivo)
sudo systemctl restart tor

4. Firewall

Abre el ORPort (9001). Con nftables/iptables:

# iptables
sudo iptables -A INPUT -p tcp --dport 9001 -j ACCEPT
# nftables
sudo nft add rule inet filter input tcp dport 9001 accept
# ufw
sudo ufw allow 9001/tcp

Si estás detrás de NAT (tu caso): configura port-forwarding en el router del puerto 9001 → 192.168.0.143:9001, e idealmente IP fija en el router (o el relay se rompe al cambiar la IP).


5. Verificación

sudo journalctl -eu tor -f

En los primeros 5-10 min deberías ver:

  • Bootstrapped 100% (done)
  • Registered server transport o Self-testing indicates your ORPort 9001 is reachable from the outside. Excellent.
  • Performing bandwidth self-test... done

Comprueba la dirección pública desde fuera:

nc -zv TU_IP_PUBLICA 9001

Tu fingerprint está en /var/lib/tor/fingerprint. A las 1-2 horas aparecerás en el buscador oficial: https://metrics.torproject.org/rs.html#search/MiNodoPrivado


6. Qué esperar (curva de rampa)

Periodo Tráfico
Semana 1 <5% (peso del consensus en 0)
Semana 2-3 5-70%, los medidores de ancho de banda te miden
Semana 4+ 70-100% (estado estacionario)
Mes ~2-6 Flag Guard si hay uptime estable

No reinicies a menudo: cada reinicio resetea contadores de los directorios. Actualiza paquetes/kernel en horas valle.


7. Mantenimiento

# Estado en vivo (interfaz de consola tipo htop)
sudo pacman -S nyx
sudo nyx

# Logs
sudo journalctl -u tor -f

Comprueba tu relay en https://metrics.torproject.org y activa alertas (Tor Weather).


8. Resumen de decisiones

  1. Relay middle/guard (este tutorial): no-exit, riesgo mínimo, ayuda a la red. Se elige con ExitRelay 0.
  2. Bridge: si estás en casa con IP única compartida y no quieres que tu IP quede listada como relay público — pero no lo mezcles con el relay público en la misma IP.
  3. Exit: NO recomendado. Requiere hosting que lo permita, mailbox de abuso y respaldo legal. Fuera del alcance de este tutorial.

Fuentes