Bei Wireguard handelt es sich um eine serverlose VPN-Verbindung, bei der eine Direktverbindung zwischen zwei gleichberechtigten Clients (Peers) aufgebaut wird. Da das Gateway / der Router meist als zentrale Anlaufstelle für verschiedene Geräte dient um sich mit dem Firmen- / Heimnetzwerk zu verbinden, wird der Peer oft auch als Wireguard Server bezeichnet, um dem allgemeinen Verständnis der Client-Serverarchitektur gerecht zu werden, auch wenn das technisch nicht ganz korrekt ist.
Wenn in dieser Anleitung also vom Wireguard-Server gesprochen wird, dann ist damit der Peer des Omada Gateway gemeint.
Voraussetzungen
- Omada Software Controller V5.13.22
- TP-Link ER706W V1 Fw:1.0.2
- Android 14 – WireGuard für Android v1.0.20231018
- Feste öffentliche IP-Adresse / DynDNS-Adresse
Omada Wireguard Server einrichten
Als erstes richten wir den Server auf dem Omada Gateway ein:
- Site -> Einstellungen (1) -> VPN (2) -> Wireguard (3)
- Neues Wireguard erstellen (4)
- der Abhörport sollte für jede Server-Verbindung verschieden gewählt werden, da es sonst zu Problemen bei mehren gleichzeitigen Verbindungen kommt
- der Port kann frei aus dem Bereich der High-Ports (49152 – 65535) gewählt werden
- die Lokale IP-Adresse stellt die IP-Adresse des Wireguard-Server im lokalen Netzwerk dar und darf nicht anderweitig vergeben sein
- in diesem Bespiel hat das eigene Netzwerk auf Seite des Gateway die 192.168.100.0/24
- der Private Schlüssel wird automatisch erzeugt und dient später dem entschlüsseln der Pakete die über das entfernte Gerät verschickt werden (z.B. Handy)
- wird bei der weiteren Einrichtung der Verbindung nicht benötigt
- sobald die Einstellungen übernommen wurden erscheint der Server in der Übersicht und zeigt den öffentlichen Schlüssel (6), auch Public Key genannt, des Wireguard Servers an
- dieser wird für die Einrichtung des Wireguard Peers im Handy benötigt
Wireguard Konfigurationsdatei
- Wireguard Verbindungen können über einen QR-Code, eine conf-Datei oder manuell hinzugefügt werden
- zur Zeit unterstützt der Omada-Controller weder eine Ausgabe per QR-Code noch als Textdatei
- zur Vereinfachung füge ich eine Beispielkonfiguration an, die nach eigenen Bedürfnissen bearbeitet und importiert werden kann
- im Beispiel kann auf das Netzwerk 192.168.100.0/24 zugegriffen werden und der Netzwerkverkehr ins Internet wird ebenfalls durch den VPN Tunnel geschickt
- die Verbindungen ins Internet können dadurch sehr langsam werden, wird dies nicht gewünscht, müssen die Einträge 0.0.0.0/1 und 128.0.0.0/1 weggelassen werden
- die Einträge 0.0.0.0/1 und 128.0.0.0/1 bewirken dabei das Gleiche wie 0.0.0.0/0 (Weiterleitung von Datenpaketen jeglicher Netzwerke)
- durch diesen Eintrag wird die Gesamtheit der verfügbaren Netzwerke, welche sonst als 0.0.0.0/0 angebenen wird, in 2 Hälften geteilt und hat den Vorteil das das Default-Gateway nicht überschrieben wird, sondern durch diesen Kniff umgangen wird, was diverse Vorteile beim Abbruch von Verbindungen etc. mit sich bringt
- 0.0.0.0/1 = 0.0.0.0-127.255.255.255
- 128.0.0.0/1 = 128.0.0.0-255.255.255.255
Konfigurationsdatei im Detail
[Interface]
Private Key – privater Schlüssel des Peers (hier Android-Handy), der zur Entschlüsselung der Datenpakete vom Wireguard-Server benutzt wird
Adress – IP-Adresse des Handys im Wireguard Netzwerk
DNS – DNS Server der genutzt werden soll (IP-Adresse des Gateway)
[Peer]
PublicKey – öffentlicher Schlüssel des Wireguard Server, siehe Punkt (6)
PresharedKey – eine gemeinsamer Verschlüsselungsschlüssel der die Verbindung noch sicherer macht (optional)
AllowedIPs – legt fest welche Datenpakete in welche Netzwerke weitergeleitet werden
Endpoint – feste öffentliche IP-Adresse / DynDNS-Adresse des Wireguard-Server
PersistentKeepalive – hält die Verbindung für 25 sec Aufrecht, auch wenn keine Daten fließen (schont den Akku bei Nichtnutzung)
[Interface]
PrivateKey = EFEkErAilAQpUHkWhiE+3JJUKmC25I8K/Bewt64lMWw=
Address = 192.168.90.4/24
DNS = 192.168.100.1
[Peer]
PublicKey = oeQltP7RDhAijcTaUjsteDIKlXlsfPPcNdwWLSGlwOs=
PresharedKey = qx2X0BujJx4kq2E9y964PlpGzWtpnesLUAQ7F2Rnjuw=
AllowedIPs = 192.168.100.0/24, 0.0.0.0/1, 128.0.0.0/1
Endpoint = eigeneDynDNSAdresse:51820
PersistentKeepalive = 25
Peer am Beispiel eines Android Handy einrichten
- wenn ich Ihnen einen Wireguard Tunnel einrichte, bekommen sie von mir eine vorgefertigte Konfigurationsdatei
- öffnen sie jetzt die Wireguard App auf Ihrem Handy (auch auf anderen Geräten wie Windows o.ä. möglich)
- fügen sie einen neuen Tunnel hinzu (7)
- wählen sie Aus Datei oder Archiv importieren (8) aus
- suchen sie die Datei auf hrem Handy und übernehmen sie diese
- der Tunnel ist eingerichtet und kann gestartet werden (9)