Recientemente creé un espejo .onion de mi sitio web.
\ ¿Por qué? Porque, ¿por qué no? Y también porque puedo. Ah, y por la libertad de expresión, la anticensura y todo ese rollo.
\ Me gustaría fingir que fue un gran desafío tecnológico, pero si soy completamente sincero, fueron como 3 comandos y 4 líneas de configuración.
\ Si tú también quieres convertirte en miembro de la web oscura, así es como lo hice:
Antes de entrar en el "cómo" de todo esto, probablemente debería proporcionar una breve descripción general de cómo era mi stack antes de entrar en El Universo Cebolla:
Lo primero es lo primero, necesitamos instalar Tor. En Debian, está en los repositorios predeterminados:
sudo apt update sudo apt install tor
A continuación, necesitamos configurar Tor para crear un servicio oculto para nuestro sitio web. Abre el archivo de configuración de Tor (/etc/tor/torrc) en tu editor de texto CLI favorito (más vale que sea vim, o estás muerto para mí). No tengo interés en ejecutar un relé o nodo de salida en mi VPS, así que hice algunos cambios mínimos en el archivo de configuración, que debería verse algo así (comentarios eliminados para mayor claridad):
# Disable SOCKS proxy since we aren't making outbound connections # through Tor SocksPort 0 # Make sure Tor runs as a daemon (i.e. in the background) RunAsDaemon 1 # Setup the hidden service on port 80, this is where we tell Tor to # create a .onion service for our web server HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 # Disable inbound connections, since we aren't running a relay or # exit node ORPort 0 # Disable directory services, since we won't be mirroring directory # information to other Tor nodes DirPort 0
\ Eso es todo. Todo lo demás debe estar comentado usando caracteres #.
Ahora, necesitamos reiniciar el servicio Tor para aplicar nuestros cambios:
sudo systemctl restart tor
Después de que Tor se reinicie, generará un nuevo servicio oculto para nosotros. Podemos encontrar nuestra nueva dirección .onion en el HiddenServiceDir que especificamos anteriormente (/var/lib/tor/hidden_service/). Este directorio solo es legible por el usuario debian-tor, así que necesitaremos usar sudo para leer el archivo hostname dentro:
sudo cat /var/lib/tor/hidden_service/hostname
\ Lo que se imprimirá en la terminal es tu nueva dirección .onion. Debería verse algo así:
jytkco7clxwj4hhzaydhk4kr3hwzsdzyvtsc6zn2ivog5uma5pxowzad.onion
Mi servidor Caddy sirve mi sitio web en el puerto 80 sin restricciones de IP o dominio, por lo que no necesito hacer ningún cambio en mi configuración de Caddy, sin embargo, si configuraste explícitamente tu servidor Caddy para que solo responda a ciertos dominios o direcciones IP, necesitarás agregar un nuevo bloque de sitio para tu dirección .onion, que se verá algo así:
http://jytkco7clxwj4hhzaydhk4kr3hwzsdzyvtsc6zn2ivog5uma5pxowzad.onion:80 { # Set up a reverse proxy, or serve static files, etc. }
\ Como no puedes obtener certificados HTTPS para direcciones .onion, tendrás que servir tu sitio a través de HTTP simple. No estoy seguro si esto se considera generalmente aceptable dentro de la red Tor (tal vez alguno de mis decenas de lectores pueda iluminarme), pero de todos modos no requiero HTTPS para mi sitio, así que funciona para mis propósitos.
Si quieres que la gente encuentre tu sitio .onion, necesitarás anunciarlo en algún lugar. Soy fan de la sutileza, así que configuré un encabezado Onion-Location en mi sitio principal que apunta a mi dirección .onion. De esta manera, cualquiera que visite mi sitio regular con un navegador habilitado para Tor será informado automáticamente de la existencia de mi espejo .onion sin ventanas emergentes intrusivas, banners o elementos adicionales de UI.
\ Para hacer esto, querrás agregar un encabezado a tu bloque de sitio principal de Caddy así:
header { Onion-Location http://jytkco7clxwj4hhzaydhk4kr3hwzsdzyvtsc6zn2ivog5uma5pxowzad.onion{uri} }
\ La razón por la que agrego ese {uri} al final es para que si alguien visita una página específica en mi sitio principal (por ejemplo, https://flower.codes/some-post), el encabezado Onion-Location los dirigirá a la página equivalente en mi sitio .onion (http://jytkco7clxwj4hhzaydhk4kr3hwzsdzyvtsc6zn2ivog5uma5pxowzad.onion/some-post), lo que (al menos para mí) añade un poco de pulido a la experiencia.
Es broma.
\ En este punto, tu espejo .onion debería estar funcionando. Puedes probarlo visitando tu dirección .onion en cualquier navegador habilitado para Tor (como el Navegador Tor o incluso Brave, que tiene soporte integrado para Tor).


