Ce guide vous aidera à configurer un pont WebTunnel pour aider les utilisateurs censurés à se connecter au réseau Tor. WebTunnel is a pluggable transport that attempts to imitate web browsing activities based on HTTPT.

The requirements for deploying a WebTunnel bridge are:

  1. Une IPv4 statique (de préférence) ;
  2. La possibilité d'exposer des ports TCP à l'Internet ( veiller à ce que le NAT ne soit pas un obstacle) ;
  3. Un site web auto-hébergé, comprenant un serveur web configurable (tel que NGINX ou Apache) et un domaine sous votre contrôle ;
  4. Un certificat TLS valide.

Le déploiement d'un pont WebTunnel implique la configuration d'un serveur web et d'un pont Tor avec ce transport amovible. La première partie de ce guide fournit des instructions détaillées pour configurer votre serveur web pour prendre en charge WebTunnel. The second part, you will choose between two methods for running the WebTunnel bridge: either using Docker or by compiling from the source code.

Veuillez noter que si vous ne remplissez pas les conditions requises pour utiliser un WebTunnel ou un pont obfs4, l'utilisation d'un proxy Snowflake est un excellent moyen de faire don de votre bande passante pour aider les utilisateurs à contourner la censure.

Configuration du serveur web

Étape 1. Configurez votre domaine

Si vous disposez déjà d'un domaine de site web, vous pouvez soit utiliser le domaine principal, soit créer un sous-domaine. Dans ce guide, le pont WebTunnel est hébergé sur le même serveur que votre site web, mais il est possible de l'héberger sur un autre serveur.

Étape 2. Obtenir un certificat valide

Si votre site n'a pas de certificat TLS, vous pouvez en obtenir un en utilisant acme.sh, qui est un client du protocole ACME écrit en Shell.

2.1. Installer ACME

Remplacez my@example.com avec votre adresse électronique :

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

Ou

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

2.2. Délivrer un certificat

Remplacez example.com avec votre nom de domaine de site web.

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

Étape 3. Installer NGINX

To coexist with other content on a single port, you should install a reverse proxy, such as NGINX. Installer NGINX :

$ sudo apt install nginx

Étape 4. Configurer NGINX

4.1. Générer une chaîne aléatoire

Lorsque les clients se connectent à votre serveur web, ils sont redirigé vers votre proxy WebTunnel quand ils utilisent un chemin secret. Vous pouvez générer une chaîne de caractères aléatoire en exécutant cette commande :

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

4.2. Créer ou modifier un serveur vhost NGINX

Créez un nouveau fichier vhost tel que /etc/nginx/sites-available/webtunnel-vhost qui redirige le trafic vers le pont WebTunnel. Voici un exemple complet de serveur vhost NGINX avec WebTunnel.

Ou si vous voulez utiliser un serveur vhost existant, vous pouvez simplement l'éditer et y ajouter le bloc location {}. Remplacer $PATH par une chaîne de caractères aléatoire.

# NGINX bloc de serveur virtuel exemple
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### Définir les en-têtes WebSocket ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Définir les en-têtes 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. Tester la configuration du serveur vhost et recharger NGINX

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

Étape 5. Configurez votre pont Tor WebTunnel

Félicitations ! Vous avez configuré avec succès votre serveur web pour qu'il transfère les requêtes vers votre pont Tor. Vous devez maintenant installer et configurer votre pont pour qu'il reçoive ces requêtes du serveur web. Veuillez suivre la deuxième partie de ce guide. Vous avez deux options disponibles : soit compilez un fichier binaire Go à partir du source ou utilisez Docker.

Configuration WebTunnel Docker

How to run a WebTunnel bridge on Docker

Compile and run WebTunnel from the source

How to run a WebTunnel bridge from the source