Installation eines eigenen, sicheren Wireguard VPN Servers auf einem Raspberry Pi oder einem Ubuntu/Debian Server/VM
Im nachfolgenden Artikel beschreibe ich, wie man einen eigenen Wireguard VPN Server installieren kann. Das kann sinnvoll sein, um z.B. von unterwegs auf seinen Computer oder Server zugreifen zu können. Anders als OpenVPN ist Wireguard sehr einfach zu konfigurieren und selbst fĂŒr Menschen mit weniger IT-Sachverstand problemlos einzurichten.
Die Basis fĂŒr dieses Projekt ist das Paket PiVPN. Wer jetzt denkt: âMoment, das ist doch fĂŒr den Raspberry Piâ, der hat grundsĂ€tzlich natĂŒrlich recht. Allerdings funktioniert das auch absolut problemlos auf normalen Ubuntu und Debian-Systemen.
Diese Anleitung fĂŒr die Wireguard VPN Installation ist also universell fĂŒr Raspberry Pi, aber auch alle anderen VMs, Server, usw. die ein Debian-Basiertes Betriebssystem (Debian, Ubuntu, etc.) verwenden.
Vorbereitung
ZunÀchst muss mittels SSH eine Verbindung zum Zielsystem hergestellt werden und mit einem Root-User angemeldet werden.
Das Zielsystem muss ĂŒber eine funktionierende Internetverbindung verfĂŒgen, damit wir die notwendigen Pakete fĂŒr Wireguard installieren können.
Du benötigst fĂŒr den produktiven Betrieb ggf. eine Feste IP-Adresse an deinem Internet-Anschluss oder z.B. einen DynDNS Service (https://www.noip.com/de-DE/free). Sonst wĂŒrde beim nĂ€chsten Mal, wenn dein Provider deine öffentliche IP Ă€ndert dein VPN Server nicht mehr erreichbar sein.
Updaten der Repositorys:
sudo apt updatesudo apt upgrade -y
Installation von Wireguard ĂŒber PiVPN
Nun wird einfach folgender Befehl ausgefĂŒhrt, der den Download aller notwendigen Pakete vornimmt und den Konfigurationsassistenten automatisch startet.
curl -L https://install.pivpn.io | bash
Falls bei dir eine Fehlermeldung erscheint, dass Curl nicht gefunden werden konnte, musst du es ggf. zunÀchst installieren:
sudo apt install curl
Konfigurationsassistent
Der PiVPN Installationsassistent startet mit der oben zu sehenden Meldung. Diese wird natĂŒrlich mit Ok bestĂ€tigt.
Die nachfolgenden Meldungen dienen der Information und können bestÀtigt werden.
AnschlieĂend wird nach einem User gefragt, der die VPN Konfiguration âhĂ€ltâ. Hier wĂ€hle ich meinen Admin-User aus. Einen anderen habe ich nicht eingerichtet.
Nun folgt der wichtigste Schritt. Hier wird erfragt, welche VPN-Lösung benutzt werden soll. Hier wĂ€hlen wir natĂŒrlich Wireguard-VPN. Stelle sicher, dass im Feld vor Wireguard ein Stern (*) ist.
Nun wird nach dem Port gefragt, welcher benutzt werden soll. Ich empfehle den Standard-Port zu belassen. Dieser ist Port 51820 ĂŒber das UDP. Falls du hier einen anderen Port verwendest, merke dir diese Portnummer â du musst Sie spĂ€ter in deiner Firewall bzw. auf deinem Router freigeben.
Im nachfolgenden Dialog wird nach einem DNS-Service gefragt. Hier kannst du dir deine PrĂ€ferenz frei auswĂ€hlen. Ich empfehle Quad9 oder Google als DNS-Service. Die VerfĂŒgbarkeit ist hier sehr gut.
Nun steht eine Entscheidung an, wie deine bestehende Infrastruktur aussieht. Ist dein Internetanschluss ĂŒber eine Feste IP erreichbar, oder nutzt du einen DynDNS Service?
Je nachdem kannst du hier deine Auswahl treffen. Meine IP ist fest, deshalb nehme ich die erste Option. Zum Testen verwende im Zweifel ebenfalls die IP.
BestÀtige alle weiteren Dialoge mit Ok bzw. Yes.
Damit werden alle Einstellungen getĂ€tigt, die Empfohlen sind â u.a. nimmt PiVPN automatisch Sicherheitsupdates vor, damit dein VPN Server stehts sicher ist.
Die letzte Frage, ob ein Reboot durchgefĂŒhrt werden soll, empfehle ich dir zu bestĂ€tigen.
Wireguard VPN User anlegen
Um nach erfolgtem Reboot nun VPN ZugĂ€nge anzulegen wird folgender Befehl ausgefĂŒhrt:
pivpn add
Der Befehl fragt dich nach der AusfĂŒhrung nach einem Namen fĂŒr den VPN-Client. Trage hier am Besten etwas sprechendes ein, damit du spĂ€ter noch weiĂt, um was es sich handelt.
Unter /home/user/configs sind die Konfigurationen abgelegt.
Die Config benötigst du auf dem Client, der sich per VPN verbinden soll. Du kannst die Config-Datei also entweder per SFTP vom Server herunterladen oder den Inhalt einfach aus der SSH-Console kopieren und in einer Textdatei einfĂŒgen. Ăffne die Config dazu per
nano Philips-Iphone.conf
Den Namen entsprechend gegen den deines Clients tauschen. Der Inhalt sieht z.B. so aus:
[Interface]PrivateKey = OGUTZKET3Edasd7i1KgUYNxqq7AJfup83iNfbXh9529RZGg=Address = 10.105.250.2/24DNS = 9.9.9.9, 149.112.112.112[Peer]PublicKey = 95Aal8jh6kJ+FWcafsQNweldNHtZRNyc5rqm16PasQddDE=PresharedKey = l0KqrtVleaSGZ/33lmfasfaN1D2TiFoK3DB2jtJUnKuHq2os=Endpoint = 31.17.94.176:51820AllowedIPs = 0.0.0.0/0, ::0/0
Diesen Inhalt deiner Datei kopierst du einfach und fĂŒgst sie in eine Textdatei (notepad unter Windows) ein und speicherst die Textdatei als .conf Datei. Diese .conf-Datei kannst du dann auf das jeweilige GerĂ€t per USB Stick, Mail oder Ă€hnlich ĂŒbertragen und dort den Wireguard Client einrichten. https://www.wireguard.com/install/
Die Einrichtung auf Smartphones ist einfacher
Was die Einrichtung nun so phantastisch einfach macht, ist das die Konfiguration fĂŒr den Client einfach ĂŒber einen QR Code machbar ist. Dies ist z.B. fĂŒr Handys super geeignet.
Um einen QR Code zu erstellen nutze folgenden Befehl:
pivpn -qr
WĂ€hle bei der Abfrage, den Client fĂŒr den du den QR Code anzeigen möchtest und drĂŒcke Enter.
Der QR-Code sieht dann so aus:
Hier kannst du einfach in der Wireguard App auf deinem Handy den QR-Code Scannen und fertig ist die Konfiguration.
Finale Schritte
AbschlieĂend muss, damit der Server erreichbar ist, ein Port-Forwarding auf deiner Firewall bzw. deinem Router angelegt werden. Suche dazu nach deinem Router-Modell und dem Begriff Port-Forwarding bei Google, wenn du nicht weiĂt, wie die Einrichtung bei deinem GerĂ€t funktioniert.
Damit du ein VPN aufbauen kannst, musst du auf deinem Router ein Port-Forwarding des Ports 51820(UDP) anlegen und an deinen Server/VM/Raspberry Pi weiterleiten.
Dein VPN Server ist somit grundsÀtzlich einsatzbereit.
Ich empfehle fĂŒr die Verwendung des Wireguard VPN Servers die Nutzung eines Stromsparenden PCs. Am Besten kompatibel ist und bleibt der Raspberry Pi. Das Modell 4 ist mittlerweile gut verfĂŒgbar. Die 1GB Variante reicht völlig aus.
Um die Verwaltung von PiVPN zu vereinfachen, gibt es auch ein Projekt, um PiVPN um eine Web-UI zu erweitern. Dieses Projekt basiert auf Docker. Hier der Link: