Un servicio onion de Tor permite que la gente acceda a tu sitio a través de la red Tor sin que ninguna de las partes conozca la dirección IP de la otra. El servidor se conecta hacia Tor, así que no necesita ningún puerto de entrada abierto. Esta guía configura uno en un VPS con Ubuntu, con Nginx sirviendo un sitio pequeño.
Qué te ofrece un servicio onion
- Una dirección
.onionderivada de una clave, por lo que se autentica sola y no necesita autoridad certificadora. - Cifrado de extremo a extremo entre el visitante y tu servidor, dentro de Tor.
- No hace falta exponer la dirección IP pública de tu servidor a los visitantes.
No hace legal el contenido de tu sitio ni oculta los errores que cometas en otro lugar, como un dominio de la web clara que apunte a la misma máquina.
Paso 1: instala Tor y Nginx
sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor
Paso 2: enlaza Nginx solo a localhost
El servidor web no debe responder en la interfaz pública, o la IP de la web clara y el sitio onion quedarán vinculables. Edita la configuración de tu sitio para que escuche en loopback.
server {
listen 127.0.0.1:8080;
server_name _;
root /var/www/onion;
index index.html;
server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
Paso 3: declara el servicio oculto
Añade estas líneas a /etc/tor/torrc:
HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname
El último comando muestra tu dirección .onion de 56 caracteres. Ábrela en Tor Browser para probar. Haz una copia de la carpeta /var/lib/tor/my_site/: la clave que contiene es tu dirección, y perderla significa una dirección nueva.
Paso 4: autorización de clientes opcional
Para un servicio privado, añade una clave que solo tengan los visitantes aprobados. Crea el archivo /var/lib/tor/my_site/authorized_clients/alice.auth con una línea con el formato descriptor:x25519:PUBLIC_KEY y luego recarga Tor. Los visitantes sin la clave privada correspondiente ni siquiera pueden ver que el servicio existe.
Paso 5: cierra las fugas habituales
- Nunca hagas referencia a recursos, fuentes o analíticas de la web clara desde tus páginas.
- Haz genéricas las páginas de error y las cabeceras, y mantén
server_tokens off. - Mantén el reloj del servidor preciso; Tor lo necesita.
- Pon un firewall a todo excepto SSH:
sudo ufw default deny incoming, ya que Tor no necesita ningún puerto de entrada. - No ejecutes un sitio de la web clara en el mismo host a menos que los hayas separado por completo.
Lee los hábitos de OpSec del servidor antes de publicar nada, y usa la lista de endurecimiento en un servidor nuevo.