Diese Anleitung hilft dir, eine WebTunnel-Brücke einzurichten, um zensierten Benutzern den Zugang zum Tor-Netzwerk zu ermöglichen. WebTunnel ist eine austauschbare Übertragungsart, die versucht, Web-Browsing-Aktivitäten zu imitieren, basierend auf HTTPT.

Die Voraussetzungen für den Einsatz einer WebTunnel-Brücke sind:

  1. Eine statische IPv4 (vorzugsweise);
  2. Die Möglichkeit, TCP-Anschlüsse für das Internet zugänglich zu machen (stelle sicher, dass NAT nicht im Weg ist);
  3. Eine selbst gehostete Website, einschließlich eines konfigurierbaren Webservers (z. B. NGINX oder Apache) und einer von dir kontrollierten Domain;
  4. Ein gültiges TLS-Zertifikat.

Um eine WebTunnel-Brücke einzurichten, müssen sowohl ein Webserver als auch eine Tor-Brücke mit dieser austauschbaren Übertragungsart konfiguriert werden. Der erste Teil dieser Anleitung enthält detaillierte Anweisungen zur Konfiguration deines Webservers für die Unterstützung von WebTunnel. Im zweiten Teil hast du die Wahl zwischen zwei Methoden zur Ausführung der WebTunnel-Bridge: entweder mit Docker oder durch Kompilieren aus dem Quellcode.

Bitte beachte, dass, wenn du die Anforderungen für den Betrieb einer WebTunnel- oder obfs4-Brücke nicht erfüllst, der Betrieb eines Snowflake-Proxys eine großartige Möglichkeit ist, deine Bandbreite zu spenden, um Nutzern zu helfen, die Zensur zu umgehen.

Webserver Konfiguration

Schritt 1. Konfiguriere deine Domain

Wenn du bereits eine Website-Domain hast, kannst du entweder die Hauptdomain verwenden oder eine Subdomain erstellen. In dieser Anleitung wird die WebTunnel-Brücke auf demselben Server wie deine Website gehostet, aber es ist auch möglich, sie auf einem anderen Server zu hosten.

Schritt 2. Besorge dir ein gültiges Zertifikat

Wenn deine Website kein TLS-Zertifikat hat, kannst du eines mit acme.sh, einem in Shell-Sprache geschriebenen ACME-Protokoll-Client, erhalten.

2.1. Installiere ACME

Ersetze my@example.com durch deine E-Mail Adresse:

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

Oder

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

2.2. Stelle ein Zertifikat aus

Ersetze example.com durch deine Website-Domain.

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

Schritt 3. Installiere NGINX

Um mit anderen Inhalten auf einem einzigen Port koexistieren zu können, solltest du einen Reverse Proxy, wie z.B. NGINX, installieren. Installiere NGINX:

$ sudo apt install nginx

Schritt 4. Konfiguriere NGINX

4.1. Erzeuge eine zufällige Zeichenkette

Wenn Clients eine Verbindung zu deinem Webserver herstellen, werden sie zu deinem WebTunnel-Proxy umgeleitet, wenn sie einen geheimen Pfad verwenden. Du kannst eine zufällige Zeichenfolge erzeugen, indem du diesen Befehl ausführst:

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

4.2. Erstelle oder bearbeite einen NGINX vhost

Erstelle eine neue vhost-Datei, z. B. /etc/nginx/sites-available/webtunnel-vhost, die den Verkehr an die WebTunnel-Brücke weiterleitet. Hier ist ein voller NGINX vhost mit WebTunnel-Beispiel.

Oder wenn du einen bestehenden vhost verwenden willst, kannst du ihn einfach bearbeiten und den Block location {} hinzufügen. Ersetze $PATH durch die zufällige Zeichenkette.

# NGINX vhost block example
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### WebSocket-Kopfzeilen einstellen ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Setze Proxy Kopfzeilen ###
        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. Teste die vhost-Konfiguration und lade NGINX neu

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

Schritt 5. Konfiguriere deine Tor-WebTunnel-Brücke

Herzlichen Glückwunsch! Du hast deinen Webserver erfolgreich so konfiguriert, dass er Anfragen an deine Tor-Bridge weiterleitet. Nun musst du deine Brücke installieren und konfigurieren, um diese Anfragen vom Webserver zu erhalten. Bitte beachte den zweiten Teil dieses Leitfadens. Du hast zwei Möglichkeiten: Entweder kompilierst du ein Go-Binary aus dem source oder du verwendest Docker.

WebTunnel Docker-Einrichtung

Wie man eine WebTunnel-Brücke in Docker betreibt

Kompilieren und Ausführen von WebTunnel aus dem Quellcode

Wie man eine WebTunnel-Brücke aus dem Quellcode betreibt