Diese Anleitung hilft dir, eine WebTunnel-Brücke einzurichten, die aus der Quelle kompiliert wurde, um zensierten Nutzern zu helfen, sich mit dem Tor-Netzwerk zu verbinden.

0. Konfiguriere deine Domain und deinen Webserver

Bevor du mit den folgenden Anweisungen fortfährst, musst du zuerst deine Domain und deinen Webserver konfigurieren. Im ersten Teil der WebTunnel-Anleitung erfährst du, wie du deinen Webserver einrichtest.

1. Installiere Golang

Um das WebTunnel-Server-Binary zu erstellen, musst du Golang installieren. Du kannst Go unter Debian installieren, indem du folgendes ausführst:

$ sudo apt install golang

2. Klonen und kompilieren

Klone das WebTunnel-Git-Repository:

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

Und kompiliere die WebTunnel-Server-Binärdatei:

$ cd webtunnel/main/server
$ go build

Kopiere schließlich die Binärdatei an einen anderen Ort:

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

3. Installiere Tor

Auf einem Debian-ähnlichen System installierst du Tor aus dem Tor Debian Repository.

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

Und führe diese Befehle aus, um das Tor-Debian-Repository zu aktivieren:

$ 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

Importiere den Tor Project Schlüsselbund:

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

Zum Schluss aktualisierst du deine Paketliste und installierst Tor:

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

4. Bearbeite dein torrc

Bearbeite deine Tor-Konfigurationsdatei, die normalerweise unter /etc/tor/torrc zu finden ist, und ersetze ihren Inhalt durch:

  • url=https://yourdomain/path mit deiner WebTunnel-URL einschließlich deiner Domain und dem geheimen Pfad;
  • <address@email.com> with your contact email address;
  • Nickname WebTunnelTest mit dem Nickname deiner Brücke.
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. Tor neustarten

Aktiviere und starte Tor:

$ sudo systemctl enable --now tor.service

Oder starte Tor neu, wenn es schon lief, so dass die Änderungen angewandt werden:

$ sudo systemctl restart tor.service

6. AppArmor tor-Berechtigung bearbeiten und neu laden

Um Tor zu erlauben, dein WebTunnel-Binary auszuführen, bearbeite das AppArmor system_tor-Profil unter /etc/apparmor.d/system_tor und füge einen Eintrag hinzu, der es Tor erlaubt, WebTunnel auszuführen:

  # During startup, tor (as root) tries to open various things such as
  # directories via check_private_dir().  Let it.
  /usr/local/bin/webtunnel ix,

Lade das AppArmor-Profil neu:

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

Nachdem du das Profil geändert und neu geladen hast, teste, ob der tor-Prozess nun /usr/local/bin/webtunnel ohne jegliche AppArmor-Verweigerung ausführen kann. Überprüfe die Systemprotokolle (z. B. dmesg oder /var/log/syslog), um sicherzustellen, dass der Fehler nicht erneut auftritt.

7. Überwache deine Protokolle

Um zu bestätigen, dass deine Brücke ohne Probleme läuft, solltest du etwas wie das hier sehen (normalerweise in /var/log/syslog oder führe sudo journalctl -e -u tor@default aus):

[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

Du kannst die Nutzung deiner WebTunnel-Brücke auf Relay Search überwachen. Gib einfach den <HASHED FINGERPRINT> deiner Brücke in das Formular ein und klicke auf "Suchen". Nach dem Einrichten der Brücke dauert es etwa drei Stunden, bis die Brücke in der Relaysuche angezeigt wird.

8. Abschließende Anmerkungen

Your WebTunnel bridge will by default be automatically distributed via the Bridges website, also known as the HTTPS distributor. This default applies unless an operator explicitly configures the BridgeDistribution setting in the torrc file to a different option. If set to any option other than HTTPS, the bridge will not be distributed to users. Wenn du Probleme beim Einrichten deiner Brücke hast, wirf einen Blick in unseren Hilfebereich.

If your bridge is now running, you can test it by copying and pasting your bridge line into Tor Browser. Um deine WebTunnel-Brückenlinie zu erstellen, musst du den FINGERPRINT deiner Brücke kopieren, aber verwechsle ihn nicht mit deinem gehashten Fingerprint, welcher der Fingerprint ist, den du auf der Tor Relay Search Webseite findest. Wenn du den gehashten Fingerprint anstelle deines Brücken-Fingerprints kopierst, kannst du keine Verbindung herstellen. Du kannst deinen Brücken-Fingerprint in der Datei /var/lib/tor/fingerprint finden. Denk dran, nur den Fingerprint zu kopieren und den Nickname der Brücke nicht mit einzubeziehen.

Schließlich kannst du den Inhalt der URL durch deine Domain und den geheimen Pfad ersetzen. Du kannst dies in deiner torrc-Zeile unter ServerTransportOptions finden.

Now, just replace the content below to create your WebTunnel bridge line. 10.0.0.2:443 is just a random IP address that's never used. It's just there because the pluggable transport specification requires an IP address there.

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