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
- Requerimientos previos
- Instalación de software
- Configuración
- Inicio de la aplicación Webtunnel en un contenedor
- 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