Cómo autoalojar tu sitio web en la dark web con Tor
Self-Hosting on the Dark Web

El autor explica paso a paso cómo publicar su sitio personal como servicio oculto de Tor. Configura un HiddenServiceDir y un HiddenServicePort en /etc/tor/torrc, apunta nginx a 127.0.0.1:8080 y genera una segunda compilación del sitio con la dirección .onion como baseURL. Sin certificados, DNS ni IP expuesta: la dirección deriva de una clave pública y Tor cifra todo de extremo a extremo.
No hay autoridad certificadora, ni DNS, ni IP expuesta: la dirección se deriva directamente de una clave pública, y la conexión está cifrada de extremo a extremo por Tor.
- p4bl0
Mi sitio web personal lleva años alojado en Tor. Es fácil hacerlo desde tu casa incluso detrás de un NAT porque, desde tu punto de vista, es una conexión saliente (lo que además lo convierte en una forma genial de exponer servicios locales incluso cuando estás detrás de un NAT y no tienes una IP estática), y por diseño tu IP personal queda oculta para tus visitantes.
Escribí sobre esto en 2600 hace casi diez años (¿ya?). Puedes encontrar una copia de mi artículo aquí: https://pablorauzy.fr/outreach/2600/how-to-run-a-tor-hidden-...
Si tienes una copia Onion de tu sitio web, no olvides la cabecera HTTP Onion-Location, que redirigirá automáticamente a los usuarios de Tor Browser a la versión onion del sitio web incluso si lo visitan en la dirección de la web clara.
Si a la gente le interesa, también tengo un artículo de seguimiento sobre I2P: https://pablorauzy.fr/outreach/2600/how-to-run-an-i2p-hidden...
- ivanmontillam
Lo que realmente me encanta de los sitios Onion es que, si son lo bastante grandes, la ingeniería de rendimiento se vuelve realmente específica de Tor. Algunos ejemplos:
- Incrustar los recursos como base64 (el logo de la cabecera como img src en base64, todo el CSS debería ser inline, etc.).
- Aprovechar CSS todo lo posible (si usas animaciones y transiciones, usa CSS en la medida de lo posible para ellas, evita JS para eso).
- Asegurarte de que tu sitio web se renderice mayormente en el backend. Si vas a tener JS, tu sitio web debería funcionar sin él.
- La seguridad se vuelve REALMENTE divertida, es decir, evita ataques XSS, CSRF, inyección SQL y cualquier otro tipo de inyección en la medida de lo posible.
Como alguien resume en otro comentario[0], mantén la "chattiness" al mínimo. Por chattiness entiendo que se refieren a empaquetar la mayor cantidad de datos posible en la misma conexión Keep-Alive. Evita hacer nuevas peticiones HTTP en la medida de lo posible, ya que cada una puede asignarse a una nueva ruta Onion, lo que ralentiza las cosas.
Si puedes enviar tu sitio web al navegador en una sola conexión, has ganado.
Siempre me ha impresionado el rendimiento de estos grandes sitios Onion; realmente llevan al límite la creatividad de la ingeniería de software, dadas estas restricciones y la naturaleza de Tor.
--
[0]: https://news.ycombinator.com/item?id=49872320
EDIT: Formato de los puntos de la lista.
- basilikum
Probablemente quieras añadir la cabecera Onion-Location al sitio de la web clara para que Tor Browser pueda informar automáticamente al visitante sobre ello: https://community.torproject.org/onion-services/advanced/oni...
- mzajc
Además de usar un puerto separado, también sugeriría ejecutar el servicio oculto en una dirección de bind que no sea 127.0.0.1, por si alguna vez alojas otra cosa en ese puerto y olvidas desactivar el servicio oculto:
> HiddenServicePort 80 127.13.37.1:8080
> listen 127.13.37.1:8080;
De esta forma, los desconocidos no podrán conectarse a un servicio vinculado a 127.0.0.1, en caso de que alguna vez decidas reutilizar el puerto y olvides desactivar el servicio oculto.
También tendrás que usar puertos y/o direcciones de bind separadas si alojas múltiples servicios ocultos y no quieres que la gente los correlacione; si nginx no coincide con la cabecera Host, servirá el sitio que aparezca primero alfabéticamente.
- dherls
¿Cuál es el beneficio de construir el mismo sitio web dos veces con nombres de host diferentes en lugar de usar enlaces relativos al contenido en el mismo dominio?
- tombert
Pensé en hacer esto cuando autoalojaba mi blog, simplemente porque pensaba que habría un factor de elegancia en poder decir honestamente "tengo un sitio en la dark web".
Finalmente trasladé el blog a Cloudflare Pages principalmente porque quería usar Cloudflare Workers para gestionar los comentarios, aunque todavía he considerado publicarlo en ambos sitios solo para poder seguir diciendo que lo he hecho.
- coldblues
Recomiendo que la gente pruebe también I2P y Yggdrasil, especialmente Yggdrasil. No hace concesiones en velocidad y latencia, pero no tiene anonimato.
- sowbug
En una guía como esta, podría ser útil enfatizar el respaldo de la clave privada generada, cuya pérdida te obligaría a cambiar tu dirección onion.