Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Zwei Standorte per VPN-Tunnel verbinden (WireGuard)

Nach dieser Lektion: Ich kann erklären, wie ein Tunnel zwei Standorte verbindet.

Lektion, 55 Min.6 BefehleWireGuard-Lab: einen VPN-Tunnel zwischen zwei Standorten im Browser aufbauen

Der Laden hier, die Dateien dort

Eine Firma hat einen Laden in einer Stadt und ein Büro in einer anderen. Jeder Standort hat sein eigenes privates Netz. Der Laden braucht den Dateiserver im Büro.

Die einzige Verbindung ist das offene Internet. Ein Tunnel trägt den privaten Verkehr hindurch, so verpackt, dass niemand unterwegs mitlesen kann.

Am Ende dieser Lektion

Notiz

Ich kann erklären, wie ein Tunnel zwei Standorte verbindet.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Tunnelprivater Verkehr, in anderem Verkehr verpackt
Schlüsselpaarein privater Schlüssel, den Sie behalten, und ein öffentlicher, den Sie teilen
Peerdas Gerät am anderen Ende eines Tunnels
Endpointdie öffentliche Adresse und der Port, unter denen ein Peer erreichbar ist203.0.113.2:51820
AllowedIPsdie Netze, die zu einem Peer gesendet und von ihm angenommen werden
Handshakeder Austausch, der zeigt, dass beide Enden die richtigen Schlüssel haben

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Private Netze kreuzen das Internet nicht

Jeder Standort hat private Adressen. Das Internet hat keine Routen dorthin. Ein Paket von einem Standort zum anderen wird unterwegs verworfen.

Ein Tunnel löst das. Das Gateway am einen Standort steckt das ganze private Paket in ein neues Paket an das andere Gateway.

Das Internet sieht nur Verkehr zwischen den zwei Gateways.

Ein Beispiel: ein Paket, zwei Sichten

WoQuelleZielSichtbar
Im Laden192.168.50.5192.168.60.9Klare Daten
Im Internet198.51.100.1198.51.100.2Verschlüsselte Daten in UDP
Im Büro192.168.50.5192.168.60.9Klare Daten

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die zwei Standorte kennenlernen

Befehl
wglab status

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zum anderen Standort durchkommen wollen

Befehl
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Routen des Gateways lesen

Befehl
sudo ip netns exec gwA ip route

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die Antworten sagen

Der erste Run listet vier Maschinen und ihre Adressen. Jedes Gateway hat eine zweite Adresse auf wan0, der Leitung, die das Internet darstellt.

Der Ping scheitert mit Destination Net Unreachable. Die Tabelle des Gateways hat zwei Zeilen, den eigenen Standort und die Internetleitung. Für den anderen Standort hat sie keine.

Jedes Gateway hat ein Schlüsselpaar

Jedes Gateway erzeugt ein Schlüsselpaar: einen privaten Schlüssel und einen öffentlichen, der daraus entsteht. Vom öffentlichen kann niemand auf den privaten zurückrechnen.

Der private Schlüssel bleibt auf seinem Gateway. Der öffentliche geht zum anderen Ende, auf beliebigem Weg, sogar per E-Mail.

Jedes Gateway führt das andere als Peer, benannt durch dessen öffentlichen Schlüssel.

Ein Beispiel: die Teile einer Konfiguration

ZeileAbschnittWas sie sagt
PrivateKeyInterfaceDas eigene Geheimnis dieses Gateways
AddressInterfaceDie Adresse dieses Endes im Tunnel
ListenPortInterfaceDer UDP-Port, auf dem es lauscht
PublicKeyPeerDer öffentliche Schlüssel des anderen Gateways
AllowedIPsPeerNetze, die zu diesem Peer gehen
EndpointPeerWo der Peer im Internet zu finden ist

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Nach den vorhandenen Tunneln fragen

Befehl
sudo ip netns exec gwA wg show

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Ordner für die Konfiguration ansehen

Befehl
sudo ip netns exec gwA ls -ld /etc/wireguard

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Zeichen eines Wegwerfschlüssels zählen

Befehl
wg genkey | wc -c

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die drei Antworten sagen

Der erste Run gibt gar nichts aus. Es gibt noch keinen Tunnel und keine Schlüssel. Ein Befehl, der nichts findet, sagt oft nichts.

Der zweite Run beginnt mit drwx------. Nur root darf den Ordner öffnen. Das ist richtig, denn dort wird ein privater Schlüssel liegen.

Der dritte Run erzeugt einen privaten Schlüssel und zählt ihn, ohne ihn zu zeigen. Er gibt 45 aus: die 44 Zeichen des Schlüssels und den Zeilenumbruch danach.

Ein häufiger Fehler

Warnung

Viele glauben, auch der öffentliche Schlüssel sei geheim. Nur der private ist es. Den öffentlichen dürfen Sie frei teilen. Senden Sie nie den privaten, und lassen Sie die Datei, die ihn enthält, nur ihren Besitzer lesen.

AllowedIPs ist die Routenliste

Die Zeile AllowedIPs hat zwei Aufgaben. Sie nennt die Netze, die zu diesem Peer gesendet werden dürfen. Und wg-quick, das Werkzeug, das einen Tunnel startet, liest sie und legt daraus Routen in den Tunnel an.

Ein Paket vom Peer wird nur angenommen, wenn seine Quelle auf dieser Liste steht.

Ein Muster für einen Laden und ein Büro

Code: bash
# Das Gateway des Ladens. Andere Adressen als die des Labs.
[Interface]
PrivateKey = (privater Schlüssel des Laden-Gateways)
Address = 10.77.0.1/24
ListenPort = 51820

[Peer]
PublicKey = (öffentlicher Schlüssel des Büro-Gateways)
AllowedIPs = 192.168.60.0/24
Endpoint = 198.51.100.2:51820

Der Handshake beweist die Schlüssel

Braucht das erste Paket den Tunnel, führen die zwei Gateways einen Handshake durch. Jedes beweist, dass es den privaten Schlüssel zum erwarteten öffentlichen hat.

Danach fließen Pakete, und der Handshake wiederholt sich alle paar Minuten, solange Verkehr da ist. Ein Tunnel ohne Handshake trägt nichts.

Weiterführend: den Handshake absichtlich brechen

Sobald Ihr Tunnel läuft, führen Sie sudo ip netns exec gwA wg show aus, während a1 b1 anpingt. Notieren Sie die Zähler für transfer.

Ändern Sie dann einen Buchstaben des PublicKey in der wg0.conf von gwB, führen Sie wglab down und wglab up aus und pingen Sie erneut. Was sagt wg show jetzt über den letzten Handshake? Stellen Sie den Schlüssel danach wieder her.

Über dieses Lab und seinen Quellcode: WireGuard-Lab: einen VPN-Tunnel zwischen zwei Standorten im Browser aufbauen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.