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 :
- Une IPv4 statique (de préférence) ;
- La possibilité d’exposer des ports TCP à Internet (veillez à ce que le NAT ne fasse pas obstacle) ;
- Un site web auto-hébergé, comprenant un serveur web configurable (tel que NGINX ou Apache) et un domaine sous votre contrôle ;
- Un certificat TLS valide ;
- 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.