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:
- Eine statische IPv4 (vorzugsweise);
- Die Möglichkeit, TCP-Anschlüsse für das Internet zugänglich zu machen (stelle sicher, dass NAT nicht im Weg ist);
- Eine selbst gehostete Website, einschließlich eines konfigurierbaren Webservers (z. B. NGINX oder Apache) und einer von dir kontrollierten Domain;
- 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.