LEAP Docs
GitHub Wechsel zwischen Dunkel/Hell/Auto Modus Wechsel zwischen Dunkel/Hell/Auto Modus Wechsel zwischen Dunkel/Hell/Auto Modus Zurück zur Startseite
Seite bearbeiten

Einrichten eines obfuskierten VPN Services (2/2)

Autor

kikki

Last edited

28 Aug 2025

Automatisches Wechseln der Bridge (aka Hopping)

Es gibt 2 verschiedene Arten des Hopping Modus: einer erlaubt das automatische Wechseln zwischen verschiedenen Ports auf der gleichen IP Addresse, während der andere das Springen zwischen verschiedenen IP-Adressen und Ports ermöglicht.

Im vorherigen Teil dieses Tutorials hatten wir ein OpenVPN-Gateway und eine darauf verweisende obfs4-Bridge eingerichtet und überprüft, ob unsere Einrichtung einwandfrei funktioniert.

Jetzt wollen wir den Zensoren endgültig den Wind aus den Segeln nehmen, indem wir ständig von einer Bridge zur nächsten wechseln. Das ist ein neuer Pluggable-Transport, den wir im Moment "Hopping PT" nennen.

Tip
Wir sind offen für Vorschläge für einen besseren Namen! Bei LEAP haben wir eine lange Tradition darin, Dinge nach Tieren zu benennen, die springen, also vielleicht Grashüpfer?

Anpassen des Gateways

Wir müssen die openvpn-Konfiguration ändern, um UDP zu verwenden, und ein paar weitere Kniffe vornehmen:

Öffne eine Shell in der Gateway-Box:

cd /etc/openvpn
cp server.conf server-hopping.conf

Editiere /etc/openvpn/server-hopping.conf so, dass sie wie folgt aussieht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
proto udp

push "ip link set mtu 48000 dev tun0"
float
tun-mtu 48000
fragment 0
mssfix 0

cipher AES-256-CBC
[...]

Starte das OpenVPN-Gateway mit den neuen Einstellungen neu

  • systemctl stop openvpn@server.service

  • systemctl start openvpn@server-hopping.service

Eine zweite Bridge einrichten

Erstelle eine neue obfs4-Bridge, indem du den Anweisungen im ersten Teil des Tutorials folgst, bis es Zeit ist, :https://docs.leap.se/de/tutorials/obfsvpn-part-1/#_start_the_bridge[die Brücke zu starten].

Option 1: obfs4-Hopping Modus

./server --hop --addr ${LHOST} --remote {RHOST} --state test_data --config test_data/obfs4.json

Option 2: kcp-Hopping Modus

./server --kcp --hop --addr ${LHOST} --remote ${RHOST} --state test_data --config test_data/obfs4.json

Option 3: QUIC-Hopping Modus

QUIC benötigt ein Zertifikat und einen privaten Schlüssel, den du mit openssl erstellen kannst:

openssl genpkey -algorithm Ed25519 -out quic.key
openssl req -x509 -new -key quic.key -out quic.crt -subj "/CN=quic"
./server --quic --udp --addr ${LHOST} --remote ${RHOST} --state test_data --config test_data/obfs4.json --quic-tls-key-file quic.key --quic-tls-cert-file quic.crt

Wenn du die Brücke im Hopping Modus laufen lassen willst, kannst du mithilfe einiger zusätzlicher Umgebungsvariablen den Bereich der erlaubten Ports, die Anzahl der Ports und weitere Einstellungen konfigurieren:

export OBFSVPN_MIN_HOP_PORT=<Untergrenze des erlaubten Portbereiches zum Springen zwischen Ports>
export OBFSVPN_MAX_HOP_PORT=<Obergrenze des erlaubten Portbereiches zum Springen zwischen Ports>
export OBFSVPN_PORT_SEED=<Seed, der bestimmt, welche randomisierten Ports genutzt werden>
export OBFSVPN_PORT_COUNT=<Anzahl der genutzten Port Hopping Ports>

obfsvpn Client im Port Hopping Modus starten

Auf deinem Client-Rechner musst du folgende Anpassungen vornehmen: * Falls dein obfsvpn Client noch läuft, beende ihn mit Strg+c im entsprechenden Terminal Fenster * Starte obfsvpn mit folgenden Argumenten:

Option 1: Verbinden zum Server im obfs4-hopping Modus

./obfsvpn-client -c <Zertifikat aus statedir/obfs4_bridgeline.txt> -r <your bridge ip, LHOST> -h

Option 2: Verbinden zum Server im kcp-hopping Modus

./obfsvpn-client -c <Zertifikat aus statedir/obfs4_bridgeline.txt> -r <your bridge ip, LHOST> -h -kcp

Option 3: Verbinden zum Server im QUIC-hopping Modus

./obfsvpn-client -c <Zertifikat aus statedir/obfs4_bridgeline.txt> -r <your bridge ip, LHOST> -h -quic

Falls du serverseitig mithilfe von Umgebungsvariablen den Portbereich, den Seed oder die Anzahl der Ports manuell konfiguriert hast, musst du diese Änderungen auch clientseitig einstellen:

./obfsvpn-client -h -c <Brücken-Zertifikat> -r <Brücken-IP> -min-port <OBFSVPN_MIN_HOP_PORT> -max-port <OBFSVPN_MAX_HOP_PORT> -ps <OBFSVPN_PORT_SEED> -pc <OBFSVPN_PORT_COUNT> <ggf. -kcp oder -quic für den gewählten Hopping Modus>

Jetzt wird der Client zwischen verschiedenen Ports auf dem gleichen Brücken-Server springen.

Anpassen des OpenVPN-Clients

sudo su
cd /etc/openvpn
cp client.conf client-hopping.conf

Und nun bearbeite client-hopping.conf wie folgt:

1
2
3
4
5
6
7
8
proto udp 

replay-window 65535
tun-mtu 48000
fragment 0
mssfix 0

Verschlüsselung AES-256-CBC

Start!

Der Hopping-Modus unterscheidet sich wesentlich dadurch, dass wir nicht Socks zwischen openvpn und obfsvpn-Client verwenden. Stattdessen verbinden wir uns mit dem obfsvpn-Client über udp, als ob dieser Client ein openvpn-Server wäre.

openvpn --config client-hopping.conf --remote 127.0.0.1:8080

Hoffentlich hat das zu einer erfolgreichen Tunnelinitialisierung geführt. Aus der Sicht von openvpn sollte die Verwendung des Hopping-Modus keinen Unterschied machen.

Anpassungen zum Springen zwischen verschiedenen Bridges

  • Verbinde dich mit deiner ersten Bridge, stoppe sie, falls sie noch läuft

  • Starte den Server neu entsprechend der Anleitung https://docs.leap.se/de/tutorials/obfsvpn-part-2-hopping/#_set_up_a_bridge_in_port_hopping_mode[zum Aufsetzen einer Brücke mit Port Hopping].

  • Stelle sicher, dass beide Server im gleichen Hopping Modus laufen und die gleichen Portkonfigurationen nutzen.

  • Nach dem Neustart der Brücken-Server, kannst dein obfsvpn client mit folgendem Befehl zusätzlich zwischen beiden Servern (IPs) springen.

  • Füge dabei -kcp oder -quic entsprechend deines Hopping Modus hinzu

./obfsvpn-client -h -c <Brücke1_Zertifikat>,<Brücke2_Zertifikat> -r <Brücke1_IP>,<Brücke2_IP> -min-port <OBFSVPN_MIN_HOP_PORT> -max-port <OBFSVPN_MAX_HOP_PORT> -ps <OBFSVPN_PORT_SEED> -pc <OBFSVPN_PORT_COUNT> -v

Natürlich musst du auch den Openvpn client neu starten, aber dieses Mal musst du Routen für beide Brücken-Server hinzufügen:

openvpn --config client-hopping.conf --remote 127.0.0.1:8080 --route <Brück1_IP> 255.255.255.255 net_gateway --route <Brücke2_IP> 255.255.255.255 net_gateway

Jetzt sollte dein Tunnel aufgebaut worden sein.

Glückwunsch!
Das war’s für den Moment! Du hast nun eine Möglichkeit, dich mit deinem eigenen VPN-Gateway zu verbinden und den Datenverkehr automatisch zwischen zwei verschiedenen verschleierten Brücken aufzuteilen. HAPPY CIRCUMVENTING! 🥳