Acceso Global y Privado: Configura tus Servicios Internos en la Red Tor

Tor es reconocido por su alto nivel de anonimato, gracias al enrutamiento de tráfico a través de múltiples nodos voluntarios. Aunque esto aumenta la privacidad, también reduce la velocidad en comparación con opciones como Cloudflare Tunnels o Nginx Proxy Manager. Aun así, cuando buscas acceder a servicios internos sin abrir puertos ni adquirir un dominio, Tor se convierte en una solución gratuita y factible, sobre todo si la privacidad es prioritaria.

En este tutorial, aprenderás a exponer un servicio interno en la red Tor utilizando como ejemplo un servidor web básico basado en la imagen Docker itrafael/wstest, diseñada específicamente para las pruebas en este post.


Casos de Uso Populares

  1. Acceso a aplicaciones de monitoreo
    Usar Uptime Kuma en combinación con Tor te permite monitorear tus servicios desde cualquier parte del mundo, sin exponer puertos y con máxima privacidad.
  2. Paneles internos de prueba
    Verifica la configuración de Tor utilizando aplicaciones mínimas como itrafael/wstest antes de desplegar proyectos más complejos.
  3. Alternativa a Túneles de Cloudflare o Nginx Proxy Manager
    Aunque alternativas como Cloudflare Tunnels y Nginx Proxy Manager ofrecen velocidad y simplicidad con certificados SSL automáticos, Tor aporta privacidad extrema sin necesidad de depender de terceros ni adquirir un dominio.
  4. Entornos de laboratorio y aprendizaje
    Si gestionas contenedores en Docker o usas Proxmox VE para máquinas virtuales, Tor puede ser una solución simple para probar conectividad externa en laboratorios sin exponer tu red.
  5. Privacidad para aplicaciones sensibles
    Tor es perfecto para aplicaciones que requieren un nivel de anonimato superior, como servidores de comunicación para activistas, periodistas o desarrolladores de software en contextos críticos.

Requisitos Previos


Paso 1: Instalar y Configurar Tor

1. Instalar Tor

Ejecuta los siguientes comandos para instalar Tor:

sudo apt update
sudo apt install tor -y

2. Editar la Configuración de Tor

Abre el archivo de configuración de Tor:

sudo nano /etc/tor/torrc

Añade las siguientes líneas al final del archivo:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
  • HiddenServiceDir: Directorio donde Tor almacenará las claves y la dirección .onion.
  • HiddenServicePort: Mapea el puerto 80 de tu servidor local al puerto 80 del servicio oculto en Tor.

Guarda los cambios (Ctrl+O, Enter) y cierra el archivo (Ctrl+X).


3. Reiniciar el Servicio de Tor

Reinicia Tor para aplicar los cambios:

sudo systemctl restart tor

Tor creará automáticamente el directorio especificado en HiddenServiceDir y los archivos necesarios para tu servicio oculto.


Paso 2: Desplegar el Contenedor “itrafael/wstest”

1. Ejecutar el Contenedor

Usaremos la imagen Docker itrafael/wstest como servicio de ejemplo:

docker run -d --name wstest -p 80:80 itrafael/wstest
  • -d: Ejecuta el contenedor en segundo plano.
  • --name wstest: Asigna un nombre al contenedor.
  • -p 80:80: Mapea el puerto 80 del contenedor al puerto 80 de tu máquina anfitriona.

2. Verificar el Servicio Localmente

Si estás en la misma máquina que aloja el contenedor, abre un navegador y accede a http://localhost

Si el contenedor se está ejecutando en una VM o contenedor LXC en Proxmox (o cualquier otro servidor remoto), primero averigua la dirección IP con:

ip a

En mi caso es:

Luego, en tu navegador (desde otra máquina en la misma red), visita http://<dirección-IP>. Deberías ver la página de prueba de itrafael/wstest para confirmar que el servidor web está funcionando correctamente.


Paso 3: Obtener tu Dirección .onion

Obtener la Dirección del Servicio Oculto

sudo cat /var/lib/tor/hidden_service/hostname

Este comando te mostrará tu dirección .onion. En mi caso exakxafo34v2qcnt7ab2pntkfxxj6afeni237bkpgrvuyqxca7psveyd.onion

Proteger y Respaldar el Directorio del Hidden Service
Asegúrate de proteger las claves privadas almacenadas en /var/lib/tor/hidden_service/. Si pierdes estos archivos o se eliminan, tu dirección .onion cambiará. Para mantener la misma dirección en caso de restaurar el servicio o migrar a otra máquina, respalda este directorio de forma segura.

sudo chmod -R 700 /var/lib/tor/hidden_service/ 
sudo chown -R debian-tor:debian-tor /var/lib/tor/hidden_service/

Estas líneas restringen el acceso a las claves y garantizan que solo el usuario debian-tor (encargado de Tor) pueda modificarlas.


Paso 4: Acceder al Servicio desde Tor

  1. Instalar Tor Browser
    Descarga el navegador Tor en tu dispositivo local.
  2. Abrir la Dirección .onion
    Inicia el navegador Tor y accede a la URL .onion generada en el paso anterior.

Opciones Adicionales: HTTPS Interno

Aunque Tor cifra automáticamente el tráfico entre el cliente y el último nodo Tor, habilitar HTTPS en tu servicio local añade cifrado de extremo a extremo, asegurando que, incluso dentro de tu red local, la comunicación esté protegida. Esto resulta clave en entornos productivos donde hay varios dispositivos o usuarios que podrían interceptar el tráfico sin cifrar en la LAN


Próximos Pasos

  1. Exponer Servicios Complejos
    Tras verificar el funcionamiento con itrafael/wstest, expón aplicaciones como Uptime Kuma, Nextcloud o paneles de administración como Proxmox VE.
  2. Explorar Alternativas
    Para servicios que requieran mayor velocidad, considera opciones como Cloudflare Tunnels o Nginx Proxy Manager.
  3. Fortalecer la Seguridad
    Habilita contraseñas o autenticación en tus servicios para evitar accesos no deseados.
  4. Virtualización y Entornos de Prueba
    Si usas Proxmox VE, puedes exponer servicios en contenedores LXC o máquinas virtuales a través de Tor.

Consejos Adicionales

Registrar Logs de Tor

Para depurar errores o verificar que tu servicio se inicie correctamente, revisa los logs de Tor:

journalctl -u tor

Si deseas llevar los registros a un archivo específico, abre el archivo de configuración /etc/tor/torrc y añade la siguiente línea

Log notice file /var/log/tor/notices.log

Con esto, activarás un registro de nivel “notice” en el fichero /var/log/tor/notices.log. Asegúrate de reiniciar Tor para que los cambios surtan efecto:

sudo systemctl restart tor

De esta manera, podrás consultar eventos detallados y posibles advertencias sobre el servicio oculto.

Uso de Varios Puertos

Si quieres exponer más de un puerto (por ejemplo, 80 y 443) en tu servicio oculto, basta con añadir líneas adicionales en tu torrc:

HiddenServicePort 80 127.0.0.1:80
HiddenServicePort 443 127.0.0.1:443

De esta forma, puedes manejar HTTP y HTTPS simultáneamente.

Permisos en Contenedores

Si tu servidor aloja múltiples aplicaciones, considera hacer el binding de tus contenedores a 127.0.0.1 (en lugar de 0.0.0.0) para reforzar la seguridad. Así, el servicio solo será accesible localmente, y Tor se encargará de exponerlo a la red externa sin necesidad de un bind público.

Conclusión

Exponer servicios internos en la red Tor es una forma práctica de garantizar privacidad sin necesidad de adquirir un dominio ni abrir puertos en tu router. Aunque la velocidad de Tor es limitada, es ideal para proyectos pequeños, entornos de prueba y servicios sensibles donde el anonimato sea prioritario.

Para la mayoría de los proyectos, la velocidad y facilidad de configuración de Cloudflare Tunnels y Nginx Proxy Manager pueden resultar más atractivas. Sin embargo, si la privacidad es prioritaria o deseas un entorno experimental sin exponer puertos ni comprar un dominio, Tor es una herramienta invaluable.

¿Tienes dudas o sugerencias? ¡Déjalas en los comentarios! 😊

Deja una respuesta

*