Ce guide vous aidera à configurer un bridge WebTunnel pour aider les utilisateurs censurés à se connecter au réseau Tor. WebTunnel est un transport enfichable qui tente d’imiter une activité de navigation web, sur la base de HTTPT.

Les prérequis pour déployer un bridge WebTunnel sont :

  1. Une IPv4 statique (de préférence) ;
  2. La possibilité d’exposer des ports TCP à Internet (veillez à ce que le NAT ne fasse pas 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 ;
  5. Au moins 1 Go de mémoire vive (4 Go recommandés) pour faire fonctionner le processus Tor et le transport WebTunnel.

Pour plus de détails sur la configuration requise, nous recommandons de lire la page Configuration requise pour un relais Tor.

Le déploiement d’un bridge WebTunnel implique la configuration d’un serveur web et d’un bridge Tor avec ce transport enfichable. La première partie de ce guide fournit des instructions détaillées pour configurer votre serveur web pour prendre en charge WebTunnel. Dans la seconde partie, vous choisirez entre deux méthodes pour faire fonctionner le bridge WebTunnel : soit avec Docker, soit en compilant à partir du code source.

Veuillez noter que si vous ne remplissez pas les conditions requises pour exploiter un bridge WebTunnel ou obfs4, exploiter un mandataire 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 bridge 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 par 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 par le nom de domaine de votre site web.

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

Étape 3. Installer NGINX

Pour coexister avec d’autres contenus sur un même port, vous devez installer un mandataire inverse, tel que NGINX. Installez 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és vers votre mandataire 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 bridge WebTunnel. Voici un exemple complet de vhost NGINX avec WebTunnel.

Ou si vous voulez utiliser un vhost existant, vous pouvez simplement le modifier et y ajouter le bloc location {}. Remplacez $PATH par la chaîne aléatoire.

# Exemple de bloc vhost NGINX
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 de mandataire ###
        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 /dev/null;
}

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 bridge Tor WebTunnel

Félicitations ! Vous avez configuré avec succès votre serveur web pour qu’il transfère les requêtes vers votre bridge Tor. Vous devez maintenant installer et configurer votre bridge pour qu’il reçoive ces requêtes du serveur web. Veuillez suivre la deuxième partie de ce guide. Deux options s’offrent à vous : soit compiler un binaire Go à partir du code source, soit utiliser Docker.

Configuration WebTunnel Docker

Comment faire fonctionner un bridge WebTunnel avec Docker

Compiler et exécuter WebTunnel à partir du code source

Comment faire tourner un bridge WebTunnel à partir du code source