Guía para la instalación de un puente de la red Tor Webtunnel con el servidor web Caddy y Docker en Linux.
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
- Caddy
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 Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
3. Configuración
Crear el archivo de configuración .env para docker-compose.yml
Configuración del servidor Caddy
Agregamos el archivo de configuración /etc/caddy/Caddy
dominio.org {
reverse_proxy /somepath 127.0.0.1:15000
}
Reemplaza /somepath con una cadena aleatoria que se genera con el siguiente comando:
echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)
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
Referencias
Pluggable Transport based on HTTP Upgrade(HTTPT), the Tor Project
Imagen destacada, “Tunel” by Sah Elizabeth is licensed under CC BY 2.0