Esta guía te ayudará a configurar un puente WebTunnel compilado desde la fuente para ayudar a los usuarios censurados a conectarse a la red Tor.

0. Configura tu dominio y servidor web

Antes de continuar con las instrucciones a continuación, primero es necesario configurar tu dominio y servidor web. Consulta la primera parte de la Guía WebTunnel para ver cómo configurar tu servidor web.

1. Instalar Golang

Para construir el binario del servidor WebTunnel, necesitas instalar Golang. Puedes instalar Go en Debian ejecutando:

$ sudo apt install golang

2. Clonar y compilar

Clona el repositorio git de WebTunnel:

$ git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webtunnel

Y compila el binario del servidor WebTunnel:

$ cd webtunnel/main/server
$ go build

Finalmente, copiar el binario en otra ubicación:

$ sudo cp server /usr/local/bin/webtunnel

3. Instalar Tor

En un sistema tipo Debian, instala Tor desde el repositorio Tor Debian.

$ sudo apt install apt-transport-https lsb-release

Y ejecuta estos comandos para habilitar el repositorio Tor Debian:

$ CODENAME=$(lsb_release -cs)

$ cat <<EOF > /etc/apt/sources.list.d/tor.list
   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $CODENAME main
EOF

Importar el llavero del Proyecto Tor:

$ wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

Finalmente, actualizar la lista de paquetes e instalar Tor:

$ sudo apt update && sudo apt install tor deb.torproject.org-keyring -y

4. Edita tu torrc

Edita tu archivo de configuración Tor, generalmente situado en /etc/tor/torrc y reemplaza su contenido con:

  • url=https://yourdomain/path con tu URL de WebTunnel, incluido tu dominio y ruta secreta;
  • <address@email.com> with your contact email address;
  • Nickname WebTunnetTest con el apodo de tu puente.
BridgeRelay 1
ORPort 127.0.0.1:auto
AssumeReachable 1
ServerTransportPlugin webtunnel exec /usr/local/bin/webtunnel
ServerTransportListenAddr webtunnel 127.0.0.1:15000
ServerTransportOptions webtunnel url=https://yourdomain/path
ExtORPort auto
ContactInfo <address@email.com>
Nickname WebTunnelTest
SocksPort 0

5. Reiniciar Tor

Habilitar e iniciar tor:

$ sudo systemctl enable --now tor.service

O reinícialo si ya estaba en marcha, para que las configuraciones surtan efecto:

$ sudo systemctl restart tor.service

6. Edita y reinicia los permisos de tor de AppArmor

Para permitir que tor ejecute tu binario WebTunnel, edita el perfil system_tor de AppArmor en /etc/apparmor.d/system_tor y añade una entrada que permita a tor ejecutar WebTunnel:

  # During startup, tor (as root) tries to open various things such as
  # directories via check_private_dir().  Let it.
  /usr/local/bin/webtunnel ix,

Recarga el perfil de AppArmor:

$ sudo apparmor_parser -r /etc/apparmor.d/system_tor

Después de modificar el perfil y recargarlo, comprueba si el proceso tor puede ahora ejecutar /usr/local/bin/webtunnel sin ninguna denegación de AppArmor. Comprueba los registros del sistema (por ejemplo, dmesg o /var/log/syslog) para asegurarte de que el error no reaparece.

7. Supervisa los registros

Para confirmar que tu puente está funcionando sin problemas, deberíad ver algo como esto (generalmente en /var/log/syslog o ejecutar sudo journalctl -e -u tor@default):

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done

Puedes monitorear el uso de tu puente WebTunnel en Búsqueda de repetidores. Simplemente ingresa la <HASHED FINGERPRINT> de tu puente en el formulario y haz clic "Search". Después de haber configurado el puente, el puente tarda aproximadamente tres horas en aparecer en la Búsqueda de Relé.

8. Notas finales

Por defecto, tu puente WebTunnel se distribuirá automáticamente a través de la página web de los puentes, también conocida como distribuidor HTTPS. Este valor por defecto se aplica a menos que un operador configure explícitamente el ajuste BridgeDistribution en el archivo torrc a una opción diferente. Si se establece en cualquier opción que no sea HTTPS, el puente no se distribuirá a los usuarios. Si tienes problemas para configurar tu puente, echa un vistazo a nuestra sección de ayuda.

Si tu puente se está ejecutando, puedes probarlo copiando y pegando la línea del puente en el Navegador Tor. Para construir tu línea de puente WebTunnel, necesitas copiar tu puente FINGERPRINT, pero no lo confundas con tu huella digital hash, que es la huella digital que encontrará en el sitio web de Tor Relay Search. Si copias la huella digital codificada en lugar de la huella digital del puente, no podrás conectarte. Puedes encontrar la huella digital de tu puente en el archivo /var/lib/tor/fingerprint. Recuerda copiar solo la huella digital y no incluir el apodo del puente.

Finalmente, puedes reemplazar el contenido de la URL con tu dominio y ruta secreta. Puedes encontrar esto en tu línea torrc en ServerTransportOptions.

Ahora, solo reemplaza el contenido de abajo para crear tu línea puente WebTunnel. 10.0.0.2:443 es solo una dirección IP aleatoria que nunca se utiliza. Solo está ahí porque la especificación de transporte conectable requiere una dirección IP ahí.

webtunnel 10.0.0.2:443 FINGERPRINT url=https://yourdomain/path