WireGuard VPN - Client-to-Site via Docker
-
- Debian 12
- Ubuntu 22.04 | 24.04
- CloudPanel v2
-
Foxly -
15. März 2024 um 09:45 -
0 Kommentare -
2.268 Mal gelesen
Was ist ein VPN?
Das konventionelle VPN bezeichnet ein virtuelles privates Kommunikationsnetz. Virtuell in dem Sinne, dass es sich nicht um eine eigene physische Verbindung handelt, sondern um ein bestehendes Kommunikationsnetz (Internet), das als Transportmedium verwendet wird. Das VPN dient dazu, Teilnehmer des bestehenden Kommunikationsnetzes an ein anderes Netz zu binden.
WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerkes (VPN) über eine verschlüsselte Verbindung. WireGuard verfügt zudem aufgrund des Aufbaus über einige Vorteile gegenüber anderen VPN-Protokollen:
- Eine einfache, minimierte Codebasis, die somit auch leicht verständlich und überprüfbar ist
- hohe Übertragungsgeschwindigkeiten, da für die Verschlüsselung und Übertragung kaum Ressourcen der Server und Clients belastet werden
- plattformübergreifende Integration in verschiedene Betriebssysteme wie Windows, Linux, macOS, Android, iOS und weitere.
WireGuard funktioniert auf Linux- und BSD-Betriebssystemen sowie auf Android und iOS.
Client-to-Site VPN
Für diese Art von VPN wird i. d. R. eine VPN-Software auf dem Client eingesetzt, welche mit einem hinterlegten Account eine Verbindung zu einem VPN-Server aufbauen kann. Diese Verbindung zwischen Client und Server erfolgt über ein Transportnetz, und ist in der heutigen Zeit immer verschlüsselt.
Installation
Vorbereitung
Für dieses Tutorial, setzte ich Folgendes voraus:
- Installiertes Ubuntu 22.04 oder Debian 11
- Installiertes Server Control Panel »CloudPanel v2« wie hier beschrieben CloudPanel v2 installieren
- Installiertes Docker & Docker Compose wie hier beschrieben Docker & Docker Compose installieren
Docker Container
Mit dem unten stehenden Befehl können Sie den Container starten. Sie müssen jedoch die öffentliche IP-Adresse, Passwort und ggf. den DNS-Server anpassen.
In meinem Beispiel wird der DNS-Server von AdGuard genutzt. Dieser sorgt bereits dafür, dass Werbung (sog. Ads) geblockt wird.
Sollten Sie die grafische Oberfläche nicht über eine Subdomain aufrufen wollen, können Sie nach dem Starten des Containers diese hierüber aufrufen.
http://öffentliche-IP:51821
docker run -d \
--name=wg-easy \
-e WG_HOST=öffentliche IPv4 \
-e PASSWORD=P@ssw0rd \
-e WG_DEFAULT_DNS=94.140.14.14 \
-e WG_PERSISTENT_KEEPALIVE=25 \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy
Alles anzeigen
Client Einrichtung
Der WireGuard Client kann auf der offiziellen Seite heruntergeladen werden.
Des Weiteren finden sich im Google Play Store sowie App Store von Apple, die Apps für Mobile Endgeräte.
Die Einrichtung ist über den QR-Code oder der Konfigurationsdatei, welcher in der grafischen Oberfläche erstellt oder heruntergeladen werden kann, spielend einfach und bedarf i. d. R. keiner weiteren Erklärung.
Troubleshooting
Können Sie die grafische Oberfläche nicht aufrufen, ist meist der Port in der Firewall nicht freigegeben. Für WireGuard müssen Sie den Port 51820 UDP und für die grafische Oberfläche den Port 51821 TCP freigeben.
Optional
WireGuard Subdomain
vHost-Templates
CloudPanel v2 bietet sogenannte vHost-Templates für verschiedene PHP-Applikation an. Jedoch beziehen sich diese Templates nur auf das Setup genauer gesagt der Grundbetrieb ohne Anpassungen und weitere Einstellungen. Damit Sie jedoch gleich eine fertig konfigurierte vHost haben, die die meisten Szenarien abdeckt, stellen wir Ihnen unser Template zur Verfügung. Um das Template hinzuzufügen, müssen Sie sich via SSH auf Ihren Server einloggen und folgenden Befehl absetzten. Anschließend befindet sich in der Applikationsauswahl das neue Template.
clpctl vhost-template:add --name='WireGuard VPN - Foxly IT' --file=https://gist.githubusercontent.com/foxly-it/a243c1e981d5581d98cba5483eb67cdc/raw/0e3c6c29251f52ee88805dc816b0dfbd38c8d3d4/WireGuard%2520VPN%2520-%2520CloudPanel%2520v2
Erstellen Sie nun mit dem zuvor erstellten Template eine Subdomain, z. B. vpn.example.tld.
Sicherheit
Da die grafische Oberfläche des WireGuard-Docker-Containers keine 2FA enthält, bietet es sich an, die Basisauthentifizierung in CloudPanel für diese Subdomain zu aktivieren.
Über den Autor
Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.
Kommentare
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.