Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:wireguard

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
howtos:wireguard [2022/02/16 12:59] – created morquaihowtos:wireguard [2022/02/18 08:09] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 14: Zeile 14:
 Sowohl Client als auch Server benötigen eine Konfigurationsdatei. \\ Sowohl Client als auch Server benötigen eine Konfigurationsdatei. \\
 Server und Client authentifizieren sich gegenseitig mittels eines private/puclic Key Paares. Diese Keys können wie auf der [[https://www.wireguard.com/quickstart/#key-generation|Wireguard Webseite]] beschrieben erzeugt werden.  Server und Client authentifizieren sich gegenseitig mittels eines private/puclic Key Paares. Diese Keys können wie auf der [[https://www.wireguard.com/quickstart/#key-generation|Wireguard Webseite]] beschrieben erzeugt werden. 
-Hier kurze Beispiele:+Hier kurze Beispiele, in denen der Server immer die erste IP Adress hat und die Clients beginnend mit "2" durchnummeriert werden\\ 
 +**Server Konfiguration**, dieser stellt zu einen eine Verbindung in unser Heimnetz (in diesem Fall 192.168.178.0/24) und ins Internet zur Verfügung
   /etc/wireguard/zuhause.conf:   /etc/wireguard/zuhause.conf:
   [Interface]   [Interface]
Zeile 21: Zeile 22:
   SaveConfig = false   SaveConfig = false
   ListenPort = 51196   ListenPort = 51196
-  #  +  PrivateKey = <Private Key des Servers>
-  PrivateKey = ONEauL29ZA+y28lYTn7vQojKiaOdBpG5XSPqAxYppk8= +
-  +
   [Peer]   [Peer]
   # Client cli2_zuhause   # Client cli2_zuhause
-  PublicKey = 4LBhYniPmcxoqotuaJV5Zb5XVNQRzjWj+gmse7YDW2I=+  PublicKey = <Public key des Client 2>
   AllowedIPs = 10.8.10.2/32   AllowedIPs = 10.8.10.2/32
-   
   [Peer]   [Peer]
   # Client cli3_zuhause   # Client cli3_zuhause
-  PublicKey = rAj1cBnBdyYyQDHV0brlW0b9+RpifFqDx+Keu4HHY2M=+  PublicKey = <Public key des Client 3>
   AllowedIPs = 10.8.10.3/32   AllowedIPs = 10.8.10.3/32
 +  
 +**Client 2 Konfiguration**, dieser Client nutzt den VPN nur zum Zugriff auf das heimische Netzwerk:
 +  [Interface]
 +  # Client cli2_zuhause
 +  PrivateKey = <Private Key des Client 2>
 +  Address = 10.8.10.2/24
 +  # DNS = 9.9.9.9
 +  [Peer]
 +  # Server zuhause
 +  PublicKey = <Public Key des Servers>
 +  AllowedIPs = 10.8.10.0/24,192.168.178.0/24
 +  Endpoint = dein.dyndns.de:51196
 +  PersistentKeepalive = 30
 +
 +**Client 3 Konfiguration**, dieser Client nutzt den VPN für sämtlichen Netzwerk Traffic:
 +  [Interface]
 +  # Client cli3_zuhause
 +  PrivateKey = <Private Key des Client 3>
 +  Address = 10.8.10.3/24
 +  DNS = 9.9.9.9
 +  [Peer]
 +  # Server zuhause
 +  PublicKey = <Public Key des Servers>
 +  AllowedIPs = 10.8.10.0/24,192.168.178.0/24,0.0.0.0/0
 +  Endpoint = dein.dyndns.de:51196
 +  PersistentKeepalive = 30
 +
 +Der Parameter "Endpoint =" in der Client Konfiguration nennt den (Dyn)DNS Namen oder die öffentliche IP Adresse eures Routers.\\
 +Wenn sämtlicher Traffic (Client 3) über den VPN gejagt wird ist die Angabe eines DNS erforderlich. Dies kann euer Router (i.d.R. die erste IP in eurem lokalen Heimnetz, im Beispiel also 192.168.178.1) oder ein öffentlicher DNS wie 9.9.9.9 sein. Ohne DNS Eintrag funktioniert zwar der VPN, aber eine Namensauflösung findet nicht statt. Ein ping nach 9.9.9.9 wird also funktioneren, ein ping nach dns9.quad9.net aber nicht, denn der Name kann nicht aufgelöst werden.\\
 +Der Wireguard Server Prozess wird gestartet mit
 +  systemctl start wg-quick@zuhause
 + Soll der Server im Rahmen des Raspberry Pi boot automatisch gestartet werden, geht dies so:
 +  systemctl enable wg-quick@zuhause
 +"zuhause" ist der erste Teil des Namens der /etc/wireguard/zuhause.conf Datei\\
 +===== Das geht auch einfacher =====
 +Wer keine Lust hat, sich die Konfigurationsdateien, die Keys etc selbst zu basteln, kann dies auch per Script auf den Raspberry Pi erledigen lassen. Ihr findet meine Lösung auf [[https://gitlab.com/onkelhartwig/wireguard-vpn-for-home-use/-/tree/main|Gitlab]].\\
 +Das Tool stellt ein Verzeichnis mit allen nötigen Dateien und ein paar Hilfsdateien, die das Leben erleichtern, zur Verfügung.
 +  * Private und Public Keys für Server und Clients
 +  * Für jeden Client einen QR Code, der mit der Wireguard App auf dem Client einfach gescannt werden kann
 +  * Eine .csv Datei, die es erleichtert sich zu merken (und zu verwalten) welcher Person man für welches Geräte einen Client zur Verfügung stellt.
 +
 +Viel Spass
 +
 +===== Ein wenig Technik dazu? =====
 +Stolperfallen gibt es immer. Insbesondere das Routing ist im Rahmen eines VPN Einsatzes ein gerne falsch konfigurierter Stolperstein. Im Zweifel funktioniert keinerlei Internet Zugriff mehr. Hier ein paar Gedanken dazu:\\
 +  * Der Server stellt für die Clients zum Einen den Zugriff auf das Heimnetz und zum Anderen aufs Internet zur Verfügung. "AllowedIPs" wird auf dem Server nur benötigt, um die Clients auseinander zu halten. Wer hier rumfummelt, was durchaus Sinn machen kann falls ein Client Zugriff auf ein weiteres privates Netz hat, ohne zu wissen, was er tut verliert mit hoher Wahrscheinlichkeit den Netzwerk Zugriff auf seinen Raspberry Pi.\\
 +  * Route ist nicht gleich Route. Routen werden normalerweise mit einem Ziel und einem Gateway konfiguriert, Dabei ist das Gateway die IP Adresse eines einzelnen Routers, während das Ziel ein einzelner Rechner oder ein Netzwerk sein kann. Eine andere Art des Routings findet ohne spezifisches Gateway statt und überlässt das Auffinden eines passenden Routers Anderen. Diese Interface Routen werden von der Wireguard Software unterstützt da Wireguard die Netzverbindungen aller Clients kennt.\\
 +  * Wireguard unterstützt im Gegensatz nur das UPD Protokoll, TCP kann nicht verwendet werden. Ein "Verstecken" des VPN hinter Port "443", wie bei OpenVPN, ist nicht möglich.\\
 +
 +
 +
      
      
howtos/wireguard.1645016353.txt.gz · Zuletzt geändert: 2022/02/16 12:59 von morquai