Cómo alojar un sitio web en Ubuntu usando Tor

Host Tor Website Linux 00 Featured Image

La red Tor es una pieza revolucionaria de software. Con un solo programa, ahora es posible navegar y ver la Web de forma anónima. Esto convierte a Tor en una herramienta esencial para los usuarios que desean preservar su privacidad al navegar por un sitio web. También es posible utilizar Tor para alojar un servidor web local en línea, lo que lo hace increíblemente útil para los usuarios conscientes de la privacidad que desean compartir información públicamente sin revelarse.

Nota: primero averigua qué son Tor y el enrutamiento onion antes de continuar.

Tabla de Contenidos

  • ¿Por qué alojar tu sitio web a través de Tor?
  • Requisitos
  • Instalación de Nginx y Tor
  • Configuración del Firewall
  • Creación de un servicio Tor para tu sitio web
  • Creación de un sitio web simple usando Nginx
  • Accediendo a tu sitio web a través de Tor
  • Preguntas Frecuentes

¿Por qué alojar tu sitio web a través de Tor?

Una de las mayores ventajas de alojar a través de Tor es que su conexión también pasa por nodos intermedios similares al Navegador Tor. Un visitante que consulte tu sitio web no podrá saber desde dónde lo estás alojando.

Host Tor Website Linux 02 Intermediary Nodes

Aparte de eso, tampoco necesitas redirigir ningún puerto para que tu sitio web solo de Tor funcione. Esto hace que el alojamiento sea simple y accesible incluso en redes altamente restringidas. Por ejemplo, una máquina bajo una red Carrier-Grade NAT aún puede publicar un sitio web directamente a través de Tor.

Requisitos

Antes de que puedas instalar tanto Nginx como Tor, primero debes asegurarte de que tienes los siguientes recursos listos:

  • Una conexión a Internet que no restrinja Tor para solicitudes entrantes y salientes. Esto te permite transmitir tu sitio web a través de la red Tor.
  • Una máquina que pueda manejar el sitio web que estás alojando. En la mayoría de los casos, un escritorio de doble núcleo con 4GB de RAM debería ser suficiente para un sitio web básico.
  • Acceso root a tu máquina de alojamiento, ya que configurar Tor requiere que accedas a archivos del sistema.

La imagen a continuación muestra cómo alojar un sitio web solo de Nginx en una máquina Ubuntu 22.04 LTS.

Host Tor Website Linux 03 Neofetch Ubuntu Machine

Instalación de Nginx y Tor

Abre una terminal. Escribe el siguiente comando para instalar Nginx y Tor:

sudo apt install nginx tor wget

Host Tor Website Linux 05 Download Packages

Configuración del Firewall

Una vez que hayas instalado ambos paquetes en tu sistema, puedes asegurar tu servidor configurando tu firewall para aceptar solo conexiones entrantes de la red Tor escribiendo los siguientes comandos en la terminal:

sudo iptables -I INPUT -m state --state NEW -p tcp --dport80-j ACCEPT  
sudo iptables -I INPUT -m state --state NEW -p tcp --dport443-j ACCEPT  
sudo iptables -I INPUT -m state --state NEW -p tcp --dport9050-j ACCEPT

Host Tor Website Linux 06 Create Firewall Rules

Los dos primeros comandos abren tanto los puertos HTTP como HTTPS en tu sistema, mientras que el último comando abre explícitamente el puerto SOCKS para la red Tor. Este enfoque asegura que Tor podrá redirigir adecuadamente cualquier tráfico que vaya a tu máquina.

Creación de un servicio Tor para tu sitio web

A continuación, necesitas crear una entrada de servicio oculto para tu servidor web. Esta es una configuración específica del servicio que te permitirá transmitir en la red Tor.

Primero, cambia a tu cuenta root. Puedes hacerlo ejecutando el siguiente comando:

sudo-i

Host Tor Website Linux 07 Switch To Root

Una vez que estés dentro de root, crea tu servicio oculto editando el archivo “/etc/tor/torrc”. En mi caso, estoy abriendo este archivo a través de GNU Nano.

nano/etc/tor/torrc

Host Tor Website Linux 08 Torrc File

Encuentra la sección “location-hidden services” presionando Ctrl + W, luego escribiendo “location-hidden.”

Host Tor Website Linux 09 Torrc Hidden Services

Verás un par de ejemplos que demuestran cómo crear tu propio servicio oculto de Tor. Sin embargo, en su mayor parte, solo necesitas establecer dos opciones: HiddenServiceDir y HiddenServicePort.

La opción HiddenServiceDir le dice a Tor dónde debe guardar los archivos de configuración para tu servicio oculto. La opción HiddenServicePort le dice a Tor cómo debe redirigir cualquier solicitud a tu servicio oculto.

Las siguientes líneas de código crearán un nuevo servicio oculto para tu servidor web:

HiddenServiceDir /var/lib/tor/nginx-tor-service/  
HiddenServicePort 80 127.0.0.1:80  
HiddenServicePort 443 127.0.0.1:443

Host Tor Website Linux 10 Torrc Create New Hidden Service

Recarga el demonio de Tor para aplicar tus nuevos ajustes ejecutando los siguientes comandos:

systemctl enable tor  
systemctl restart tor

Consejo: aprende a usar Tor con tu conexión VPN.

Creación de un sitio web simple usando Nginx

Una vez que un servicio oculto de Tor esté en funcionamiento, comienza a configurar tu servidor web. Crea un nuevo archivo de configuración a través del comando touch:

sudotouch/etc/nginx/sites-available/nginx-tor-service

Host Tor Website Linux 11 Create New Nginx Server

Edita tu nuevo archivo de configuración de Nginx como un servidor web básico. Por ejemplo, el siguiente bloque de código desplegará un servidor web simple en el puerto 80:

server{  
listen 80 default_server;  
listen[::]:80 default_server;  
  
root /var/www/html;  
  
server_name 4tth4kzmipldb5elklravakdwlnte3ck6m5ahl73nfbe6ni67zmyvxyd.onion;  
  
location / {  
try_files$uri$uri/ =404;  
}  
}
  • Las dos variables listen establecen tanto los puertos como el host al que esta configuración del servidor debe escuchar. En este caso, Nginx escucha en el puerto 80 tanto en IPv4 como en IPv6.
  • La variable root establece la ubicación donde Nginx buscará los archivos en tu servidor web.
  • La variable server_name contiene el nombre de dominio de tu servidor. Encuéntralo ejecutando sudo less /var/lib/tor/nginx-tor-service/hostname.
  • La variable location contiene funciones sobre cómo Nginx trata los archivos en la raíz de tu sitio web. En este ejemplo, solo establece el error 404 para cualquier archivo que falte.

Host Tor Website Linux 12 Sample Server Configuration

Crea un enlace simbólico para tu nuevo archivo de configuración a “/etc/nginx/sites-enabled.”

sudoln-s/etc/nginx/sites-available/nginx-tor-service /etc/nginx/sites-enabled/

Por último, habilita tu nuevo sitio web reiniciando Nginx:

sudo systemctl enable nginx  
sudo systemctl restart nginx

Host Tor Website Linux 13 Nginx Running

Accediendo a tu sitio web a través de Tor

Con Tor y Nginx en funcionamiento, verifica si tu sitio web es accesible desde la red Tor. (¿Necesitas encontrar más sitios web en la dark web? Consulta estos motores de búsqueda.) Primero, descarga el último binario del navegador Tor:

wget https://www.torproject.org/dist/torbrowser/11.5.7/tor-browser-linux64-11.5.7_en-US.tar.xz

Host Tor Website Linux 14 Download Tor Browser

Extrae los archivos del navegador en el directorio actual ejecutando el siguiente comando:

tar xvf ./tor-browser-linux64-11.5.7_en-US.tar.xz  
cd ./tor-browser_en-US

Host Tor Website Linux 15 Extract Tor Browser

Además, asegúrate de que el binario del navegador Tor tenga los bits de ejecución correctos:

sudochmod +x ./start-tor-browser.desktop

Ejecuta e instala Tor Browser en tu máquina ejecutando el siguiente comando:

./start-tor-browser.desktop --register-app

Host Tor Website Linux 16 Tor Browser Running

Por último, navega a tu nuevo sitio web de Tor escribiendo su nombre de dominio en la barra de direcciones.

Host Tor Website Linux 17 Tor Website Running

Preguntas Frecuentes

¿Es posible alojar un servidor de juegos usando Tor?

Sí, pero ejecutar un servidor de juegos Tor resultará en una experiencia de juego muy pobre. Por ejemplo, ejecutar un servidor de Minetest a través de Tor tendrá una latencia entre 1000 y 5000 milisegundos.

Si bien hay formas de acelerar tus conexiones Tor, los desarrolladores de Tor no diseñaron la red para funcionar en aplicaciones de baja latencia. Debido a eso, Tor es principalmente útil para publicar páginas web y aplicaciones que no dependen de baja latencia.

Estoy intentando alojar un sitio web FTP pero no puedo acceder a él a través de Tor.

Este problema se debe probablemente a una configuración faltante en el archivo “/etc/tor/torrc”. Para alojar correctamente un nuevo servicio a través de Tor, asegúrate de que los puertos adecuados estén abiertos tanto en tu firewall como en torrc.

Por ejemplo, agrega HiddenServicePort 21 127.0.0.1:21 y HiddenServicePort 22 127.0.0.1:22 para crear un puerto FTP y SFTP abierto en tu máquina.

¿Es posible alojar mi sitio web a través de SSL en Tor?

Es importante señalar que SSL no es un requisito estricto al asegurar tu sitio web de Tor. Por defecto, Tor ya cifra tus conexiones tan pronto como cargas el navegador Tor, por lo que cualquier sitio web que visites en Tor está cifrado de extremo a extremo.

Si lo deseas, obtén un certificado SSL para tu sitio web de Tor, aunque el proceso puede ser complicado, ya que solo hay un puñado de autoridades de certificación que emiten activamente TLS para dominios .onion.

Crédito de la imagen: Unsplash. Todas las alteraciones y capturas de pantalla por Ramces Red.