Esta guía te ayudará a configurar un puente WebTunnel para ayudar a los usuarios censurados a conectarse a la red Tor. WebTunnel es un transporte conectable que intenta imitar las actividades de navegación web basadas en HTTPT.

Los requisitos para implementar un puente WebTunnel son:

  1. Un IPv4 estático (preferiblemente);
  2. La capacidad de exponer puertos TCP a Internet (asegúrate de que NAT no se interponga en su camino);
  3. Un sitio web autohospedado, incluido un servidor web configurable (como NGINX o Apache) y un dominio bajo tu control;
  4. Un certificado TLS válido.

La implementación de un puente WebTunnel implica configurar tanto un servidor web como un puente Tor con este transporte conectable. La primera parte de esta guía proporciona instrucciones detalladas para configurar tu servidor web para que admita WebTunnel. En la segunda parte, elegirás entre dos métodos para ejecutar el puente WebTunnel: usando Docker o compilando desde el código fuente.

Ten en cuenta que si no cumples con los requisitos para ejecutar un WebTunnel o un puente obfs4, ejecutar un Snowflake proxy es una excelente manera de ceder tu ancho de banda para ayudar a los usuarios a eludir la censura.

configuración del servidor web

Paso 1. Configura tu dominio

Si ya tienes un dominio de sitio web, puedes usar el dominio principal o crear un subdominio. En esta guía, el puente WebTunnel está alojado en el mismo servidor que tu sitio web, pero es posible alojarlo en un servidor diferente.

Paso 2. Obtener un certificado válido

Si tu sitio web no tiene un certificado TLS, puedes obtener uno usando acme.sh, que es un cliente de protocolo ACME escrito en lenguaje Shell. .

2.1. Instalar ACME

Reemplaza mi@ejemplo.com con tu dirección de correo electrónico:

$ curl https://get.acme.sh | sh -s email=my@example.com

O

$ wget -O - https://get.acme.sh | sh -s email=my@example.com

2.2.Emitir un certificado

Reemplaza example.com con el dominio de su sitio web.

$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com

Paso 3. Instalar NGINX

Para coexistir con otro contenido en un solo puerto, debes instalar un proxy inverso, como NGINX. Instalar NGINX:

$ sudo apt install nginx

Paso 4. Configurar NGINX

4.1. Generar una cadena aleatoria

Cuando los clientes se conectan a tu servidor web, serán redirigidos a tu proxy WebTunnel cuando usen una ruta secreta. Puedes generar una cadena aleatoria ejecutando este comando:

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

4.2. Crear o editar un vhost NGINX

Crear un nuevo archivo vhost como /etc/nginx/sites-available/webtunnel-vhost que reenvíe el tráfico al puente WebTunnel. He aquí un completo ejemplo NGINX de vhost con WebTunnel.

O si deseas usar un vhost existente, simplemente puedes editarlo y añadir el bloque location {} . Reemplaza $PATH con la cadena aleatoria.

# Ejemplo de bloque vhost NGINX
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### Establecer encabezados WebSocket ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Establecer encabezados de proxy ###
        proxy_set_header        Accept-Encoding   "";
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        add_header              Front-End-Https   on;

        proxy_redirect     off;
        access_log  off;
        error_log off;
}

4.3. Probar la configuración de vhost y recargar NGINX

sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Paso 5. Configura tu puente Tor WebTunnel

¡Felicidades! Has configurado correctamente el servidor web para enviar solicitudes a tu puente Tor. Ahora, debes instalar y configurar el puente para recibir estas solicitudes del servidor web. Sigue la segunda parte de esta guía. Tienes dos opciones disponibles: compilar un Go binario desde sourceo usar Docker.

Configurar WebTunnel Docker

Cómo ejecutar un puente WebTunnel en Docker

Compila y ejecuta WebTunnel desde la fuente

Cómo ejecutar un puente WebTunnel desde la fuente