Instalación de Webtunnel

Guía para la instalación de un puente de la red Tor Webtunnel con Docker en Linux. Publicada originalmente en Acuare.la

WebTunnel es un puente de transporte conectable (PT) para el ecosistema Tor. Es un proxy resistente a la censura que intenta imitar el tráfico HTTPS.

Pasos para la instalación y puesta en marcha de un puente Webtunnel

  1. Requerimientos previos
  2. Instalación de software
  3. Configuración
  4. Inicio de la aplicación Webtunnel en un contenedor
  5. Actualización

1. Requerimientos previos

  • Dominio de internet con sus DNS habilitados
  • Una máquina virtual o dedicada con Debian 11 o 12
  • Dirección IP pública

2. Instalación de software

  • Docker CE
  • Cerbot
  • Nginx
Instalación de docker
sudo apt install curl
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh'
Instalación de cerbot
sudo apt install certbot
Instalación de nginx
sudo apt install nginx python3-certbot-nginx

3. Configuración

  • Creación de certificados
  • Configuración del servidor nginx
  • Crear el archivo de configuración .env para docker-compose.yml
Creación de certificados

Antes de proceder a la creación de los certificados con Certbot es necesario agregar a los DNS de nuestro dominio el registro A necesario para que el dominio apunte a la dirección IP de nuestra máquina.

sudo certbot --nginx -d mydominio.org
Configuración del servidor nginx

Configuración de reenvío de http para el dominio en /etc/nginx/site-enabled/default

Reemplace $PATH con una cadena aleatoria que se genera con el siguiente comando:

echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)

Agregamos el siguiente bloque de configuración al archivo /etc/nginx/site-enabled/default

Docker

Descarga del archivo docker-compose.yml

curl https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel/-/raw/main/release/container/docker-compose.yml?inline=false > docker-compose.yml

Creamos en el mismo directorio el archivo .env

truncate --size 0 .env

Agregamos las siguientes variables de configuración. Esto creará un archivo de entorno para la configuración del puente.

Variable de nombre de dominio o subdominio. Tendremos que cambiar el nombre de dominio o subdominio que dispongamos para nuestro puente

echo "URL=https://mydominio.org/$path" >> .env

Variable de dirección de correo electrónica que estará asociada a nuestro puente

echo "OPERATOR_EMAIL=your@email.org" >> .env

Agregamos nombre del puente

echo "BRIDGE_NICKNAME=WTBr$(cat /dev/urandom | tr -cd 'qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321'|head -c 10)" >> .env

Agregamos número de puerto

echo "GENEDORPORT=4$(cat /dev/urandom | tr -cd '0987654321'|head -c 4)" >> .env

4. Inicio de la aplicación Webtunnel en un contenedor

Una vez que tenemos nuestro .env con las variables completas iniciamos nuestra aplicación con docker compose. Para así ejecutar la aplicación Webtunnel en un contenedor dentro de nuestra máquina.

docker compose up -d

Ahora podemos comprobar que nuestro puente Webtunnel se está funcionando adecuadamente


docker compose exec webtunnel-bridge get-bridge-line.sh

5. Actualización

Para mantener actualizado el software por medio de docker compose. Utiliza los siguientes comandos

docker compose pull
docker compose up -d
Renovación de certificados
certbot renew

Referencias

Pluggable Transport based on HTTP Upgrade(HTTPT), the Tor Project

Imagen destacada, “Tunel” by Sah Elizabeth is licensed under CC BY 2.0

HTTPT: A Probe-Resistant Proxy