Ce guide vous aidera à mettre en place un bridge WebTunnel compilé à partir des sources pour aider les utilisateurs censurés à se connecter au réseau Tor.

0. Configurez votre domaine et votre serveur web

Avant de suivre les instructions ci-dessous, il est nécessaire de configurer votre domaine et votre serveur Web. Reportez-vous à la première partie du guide WebTunnel pour voir comment configurer votre serveur web.

1. Installer Golang

Pour compiler le binaire du serveur WebTunnel, vous devez installer Golang. Vous pouvez installer Go sur Debian en exécutant :

$ sudo apt install golang

2. Cloner et compiler

Clonez le dépôt git de WebTunnel :

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

Et compilez le binaire du serveur WebTunnel :

$ cd webtunnel/main/server
$ go build

Enfin, copiez le binaire vers un autre emplacement :

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

3. Installez Tor

Sur un système de type Debian, installez Tor à partir du dépôt Debian de Tor.

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

Et exécutez ces commandes pour activer le dépôt Debian de Tor :

$ 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

Importez le trousseau de clés du Projet Tor :

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

Enfin, mettez à jour votre liste de paquets et installez Tor :

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

4. Modifier votre torrc

Modifiez votre fichier de configuration de Tor, généralement situé dans /etc/tor/torrc, et remplacez son contenu par :

  • url=https://yourdomain/path par l’URL de votre WebTunnel, avec votre domaine et votre chemin secret ;
  • <address@email.com> with your contact email address;
  • Nickname WebTunnetTest par le surnom de votre bridge.
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. Redémarrer Tor

Activer et démarrer tor :

$ sudo systemctl enable --now tor.service

Ou redémarrez-le s’il était déjà en cours d’exécution, afin que les configurations prennent effet :

$ sudo systemctl restart tor.service

6. Modifier et recharger les permissions AppArmor de tor

Pour permettre à tor d’exécuter votre binaire WebTunnel, modifiez le profil AppArmor system_tor dans /etc/apparmor.d/system_tor et ajoutez une entrée autorisant tor à exécuter 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,

Rechargez le profil AppArmor :

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

Après avoir modifié le profil et l’avoir rechargé, vérifiez que le processus tor peut désormais exécuter /usr/local/bin/webtunnel sans aucun refus d’AppArmor. Vérifiez les journaux système (par exemple dmesg ou /var/log/syslog) pour vous assurer que l’erreur ne réapparaît pas.

7. Surveillez vos journaux

Pour confirmer que votre bridge fonctionne sans problème, vous devriez voir quelque chose comme ceci (généralement dans /var/log/syslog, ou exécutez 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

Vous pouvez suivre l’utilisation de votre bridge WebTunnel sur Relay Search. Saisissez simplement l’<HASHED FINGERPRINT> de votre bridge dans le formulaire et cliquez sur « Search ». Une fois le bridge configuré, il faut environ trois heures pour qu’il apparaisse dans Relay Search.

8. Notes finales

Par défaut, votre bridge WebTunnel sera distribué automatiquement par le site web des bridges, aussi appelé distributeur HTTPS. Cette valeur par défaut s’applique à moins qu’un opérateur ne définisse explicitement le paramètre BridgeDistribution sur une autre option dans le fichier torrc. Si elle est définie sur une autre option que HTTPS, le bridge ne sera pas distribué aux utilisateurs. Si vous avez des difficultés à configurer votre bridge, consultez notre section d’aide.

Si votre bridge fonctionne maintenant, vous pouvez le tester en copiant-collant votre ligne de bridge dans le Navigateur Tor. Pour construire votre ligne de bridge WebTunnel, vous devez copier le FINGERPRINT de votre bridge, mais ne le confondez pas avec votre empreinte hachée, qui est celle que vous trouverez sur le site Relay Search de Tor. Si vous copiez l’empreinte hachée au lieu de l’empreinte de votre bridge, vous ne pourrez pas vous connecter. Vous trouverez l’empreinte de votre bridge dans le fichier /var/lib/tor/fingerprint. N’oubliez pas de copier uniquement l’empreinte, sans inclure le pseudonyme du bridge.

Enfin, vous pouvez remplacer le contenu de l’URL par votre domaine et votre chemin secret. Vous trouverez cela dans la ligne de votre torrc, sous ServerTransportOptions.

Maintenant, remplacez simplement le contenu ci-dessous pour créer votre ligne de bridge WebTunnel. 10.0.0.2:443 est simplement une adresse IP aléatoire qui n’est jamais utilisée. Elle n’est là que parce que la spécification des transports enfichables exige une adresse IP à cet endroit.

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