Zu allen Tipps
Linux
Richten Sie Ihren eigenen WireGuard VPN-Server unter Debian 11 und Debian 10 ein
Basis für die Installation ist ein Debian 11 Server mit SSH Zugriff auf einem ESXI Host Dieses Tutorial zeigt Ihnen, wie Sie Ihren eigenen WireGuard VPN-Server unter Debian 11 Bullseye und Debian 10 Buster einrichten. WireGuard wurde speziell für den…
Basis für die Installation ist ein Debian 11 Server mit SSH Zugriff auf einem ESXI Host
Dieses Tutorial zeigt Ihnen, wie Sie Ihren eigenen WireGuard VPN-Server unter Debian 11 Bullseye und Debian 10 Buster einrichten. WireGuard wurde speziell für den Linux-Kernel entwickelt. Es läuft im Linux-Kernel und ermöglicht Ihnen die Erstellung eines schnellen, modernen und sicheren VPN-Tunnels.
Funktionen von WireGuard VPN
Leichte und superschnelle Geschwindigkeit, die OpenVPN in den Schatten stellt.
Plattformübergreifend. WireGuard kann unter Linux, BSD, macOS, Windows, Android, iOS und OpenWRT ausgeführt werden.
Die Benutzerauthentifizierung erfolgt durch den Austausch öffentlicher Schlüssel, ähnlich wie bei SSH-Schlüsseln.
Es weist VPN-Clients statische Tunnel-IP-Adressen zu. Manchen Leuten gefällt es vielleicht nicht, aber in manchen Fällen kann es nützlich sein.
Mobile Geräte können nahtlos zwischen WLAN und Mobilfunknetz wechseln, ohne dass die Verbindung unterbrochen wird.
Ziel ist es, OpenVPN und IPSec in den meisten Anwendungsfällen zu ersetzen.
Speichern und schließen Sie die Datei. Bearbeiten Sie dann die /etc/default/named-Dateien.
Schritt 1: Installieren Sie WireGuard auf dem Debian-Server und -Desktop
Melden Sie sich bei Ihrem Debian-Server an. WireGuard ist im Debian 11 (Bullseye)-Repository enthalten, sodass Sie die folgenden Befehle ausführen können, um es zu installieren.apt update apt install wireguard wireguard-tools linux-headers-$(uname -r)Debian 10-Benutzer müssen das Backport-Repository mit dem folgenden Befehl hinzufügen.
echo "deb http://deb.debian.org/debian buster-backports main" | tee /etc/apt/sources.list.d/buster-backports.listDann installieren Sie WireGuard.
apt update apt -t buster-backports install wireguard wireguard-tools wireguard-dkms linux-headers-$(uname -r)Verwenden Sie dieselben Befehle, um WireGuard auf Ihrem lokalen Debian-Computer (dem VPN-Client) zu installieren. Beachten Sie, dass Sie auch das openresolv-Paket auf dem Client installieren müssen, um den DNS-Server zu konfigurieren.
apt install openresolv
Schritt 2: Öffentliches/privates Schlüsselpaar generieren
Führen Sie den folgenden Befehl auf dem Debian-Server aus, um ein öffentliches/privates Schlüsselpaar zu erstellen, das im Verzeichnis /etc/wireguard/ gespeichert wird.wg genkey | tee /etc/wireguard/server_private.key | wg pubkey | tee /etc/wireguard/server_public.key
Schritt 3: WireGuard-Konfigurationsdatei erstellen
Verwenden Sie einen Befehlszeilen-Texteditor wie Nano, um eine WireGuard-Konfigurationsdatei auf dem Debian-Server zu erstellen. wg0 ist der Name der Netzwerkschnittstelle.nano /etc/wireguard/wg0.confKopieren Sie den folgenden Text und fügen Sie ihn in Ihre Konfigurationsdatei ein. Sie müssen Ihren eigenen privaten Serverschlüssel und Ihren eigenen öffentlichen Clientschlüssel verwenden.
[Interface] Address = 10.10.10.1/24 ListenPort = 51820 ## Ihr eigener privater Serverschlüssel PrivateKey = cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc= [Peer] PublicKey = AYQJf6HbkQ0X0Xyt+cTMTuJe3RFwbuCMF46LKgTwzz4= AllowedIPs = 10.10.10.2/32Wo:
-
- Adresse: Geben Sie die private IP-Adresse des VPN-Servers an. Hier verwende ich den Netzwerkbereich 10.10.10.0/24, damit es nicht zu Konflikten mit dem Bereich Ihres Heimnetzwerks kommt. (Die meisten Heimrouter verwenden 192.168.0.0/24 oder 192.168.1.0/24). 10.10.10.1 ist die private IP-Adresse für den VPN-Server.
- PrivateKey: Der private Schlüssel des VPN-Servers, der in der Datei /etc/wireguard/server_private.key auf dem Server zu finden ist.
- ListenPort: Der WireGuard VPN-Server überwacht den UDP-Port 51820, was die Standardeinstellung ist.
- PublicKey: Der öffentliche Schlüssel des VPN-Clients, der in der Datei /etc/wireguard/client_public.key auf dem Client-Computer zu finden ist.
- AllowedIPs: IP-Adressen, die der VPN-Client verwenden darf. In diesem Beispiel kann der Client nur die IP-Adresse 10.10.10.2 innerhalb des VPN-Tunnels verwenden.
chmod 600 /etc/wireguard/ -R
Schritt 4: Aktivieren Sie die IP-Weiterleitung auf dem Server
Damit der VPN-Server Pakete zwischen VPN-Clients und dem Internet weiterleiten kann, müssen wir die IP-Weiterleitung aktivieren. Bearbeiten Sie die Datei sysctl.conf.nano /etc/sysctl.confFügen Sie am Ende dieser Datei die folgende Zeile hinzu.
net.ipv4.ip_forward = 1Speichern und schließen Sie die Datei. Wenden Sie dann die Änderungen mit dem folgenden Befehl an. Die Option -p lädt die Sysctl-Einstellungen aus der Datei /etc/sysctl.conf. Dieser Befehl behält unsere Änderungen über Systemneustarts hinweg bei.
sysctl -p
Schritt 5: IP-Masquerading auf dem Server konfigurieren
Wir müssen IP-Masquerading in der Server-Firewall einrichten, damit der Server zu einem virtuellen Router für VPN-Clients wird. Ich werde UFW verwenden, ein Frontend der iptables-Firewall. Installieren Sie UFW unter Debian mit:apt install ufwZunächst müssen Sie SSH-Verkehr zulassen.
ufw allow 22/tcpSuchen Sie als Nächstes den Namen der Hauptnetzwerkschnittstelle Ihres Servers.
ip addrAuf meinem Debian-Server unter ESXI heisst es ens192. Um die IP-Masquerading zu konfigurieren, müssen wir den Befehl iptables in einer UFW-Konfigurationsdatei hinzufügen.
nano /etc/ufw/before.rulesStandardmäßig gibt es einige Regeln für die Filtertabelle. Fügen Sie am Ende dieser Datei die folgenden Zeilen hinzu. Ersetzen Sie ens192 durch Ihren eigenen Netzwerkschnittstellennamen.
# NAT table rules *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o ens192 -j MASQUERADE # End each table with the 'COMMIT' line or these rules won't be processed COMMITDie obigen Zeilen hängen (-A) eine Regel an das Ende der POSTROUTING-Kette der NAT-Tabelle an. Es verbindet Ihr virtuelles privates Netzwerk mit dem Internet. Und verbergen Sie Ihr Netzwerk auch vor der Außenwelt. Das Internet kann also nur die IP Ihres VPN-Servers sehen, nicht aber die IP Ihres VPN-Clients, genau wie Ihr Heimrouter Ihr privates Heimnetzwerk verbirgt. Standardmäßig verbietet UFW die Paketweiterleitung. Wir können die Weiterleitung für unser privates Netzwerk zulassen. Suchen Sie in dieser Datei nach der ufw-before-forward-Kette und fügen Sie die folgenden drei Zeilen hinzu, die die Paketweiterleitung akzeptieren, wenn die Quell-IP oder Ziel-IP im Bereich 10.10.10.0/24 liegt. in der gleichen Datei /etc/ufw/before.rules müssen noch folgende Regeln
# allow forwarding for trusted network -A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT -A ufw-before-forward -d 10.10.10.0/24 -j ACCEPTnach
# ok icmp code for FORWARD -A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPTeingetragen werden. Speichern und schließen Sie die Datei. Aktivieren Sie dann UFW.
ufw enableWenn Sie UFW zuvor aktiviert haben, können Sie systemctl verwenden, um UFW neu zu starten.
systemctl restart ufwWenn Sie nun die Regeln in der POSTROUTING-Kette der NAT-Tabelle auflisten, indem Sie den folgenden Befehl verwenden:
iptables -t nat -L POSTROUTINGSie könnte die Maskerade-Regel sehen.
Schritt 6: Installieren Sie einen DNS-Resolver auf dem Server.
Da wir den VPN-Server als DNS-Server für den Client angegeben haben, müssen wir einen DNS-Resolver auf dem VPN-Server ausführen. Wir können den bind9-DNS-Server installieren.apt install bind9Sobald es installiert ist, wird BIND automatisch gestartet. Sie können den Status überprüfen mit:
systemctl status bind9Beispielausgabe:
named.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-05-17 08:11:26 UTC; 37s ago
Docs: man:named(8)
Main PID: 13820 (named)
Tasks: 5 (limit: 1074)
Memory: 14.3M
CGroup: /system.slice/named.service
└─13820 /usr/sbin/named -f -u bind
Wenn es nicht läuft, starten Sie es mit:
systemctl start bind9Bearbeiten Sie die Konfigurationsdatei des BIND-DNS-Servers.
nano /etc/bind/named.conf.optionsFügen Sie die folgende Zeile hinzu, um VPN-Clients das Senden rekursiver DNS-Abfragen zu ermöglichen.
allow-recursion { 127.0.0.1; 10.10.10.0/24; };
Speichern und schließen Sie die Datei. Bearbeiten Sie dann die /etc/default/named-Dateien.
nano /etc/default/namedFügen Sie -4 zu den OPTIONEN hinzu, um sicherzustellen, dass BIND Root-DNS-Server abfragen kann.
OPTIONS="-u bind -4"Speichern und schließen Sie die Datei. Standardmäßig aktiviert BIND DNSSEC, wodurch sichergestellt wird, dass DNS-Antworten korrekt sind und nicht manipuliert werden. Aufgrund des Vertrauensanker-Rollovers und aus anderen Gründen funktioniert es jedoch möglicherweise nicht sofort. Damit es ordnungsgemäß funktioniert, können wir die verwaltete Schlüsseldatenbank mit den folgenden Befehlen neu erstellen.
rndc managed-keys destroy rdnc reconfigEs kann vorkommen, das der Befehl rdnc reconfig nicht gefunden wird, was nicht weiter schlimm ist. Starten Sie BIND9 neu, damit die Änderungen wirksam werden.
systemctl restart bind9Anschließend müssen Sie den folgenden Befehl ausführen, damit VPN-Clients eine Verbindung zu Port 53 herstellen können.
ufw insert 1 allow in from 10.10.10.0/24
Schritt 7: Öffnen Sie den WireGuard-Port in der Firewall
Führen Sie den folgenden Befehl aus, um den UDP-Port 51820 auf dem Server zu öffnen.ufw allow 51820/udp
Schritt 8: Starten Sie WireGuard
Führen Sie den folgenden Befehl auf dem Server aus, um WireGuard zu starten.wg-quick up /etc/wireguard/wg0.confUm Wiregard zu stoppen, führen Sie folgendes aus
wg-quick down /etc/wireguard/wg0.confSie können WireGuard auch mit dem Systemd-Dienst starten.
systemctl start wg-quick@wg0.serviceAktivieren Sie den automatischen Start beim Systemstart.
systemctl enable wg-quick@wg0.serviceÜberprüfen Sie den Status mit dem folgenden Befehl. Sein Status sollte aktiv (exited) sein.
systemctl status wg-quick@wg0.serviceJetzt ist der WireGuard-Server bereit, Client-Verbindungen zu akzeptieren.
Schritt 9: Client
Erstellen Sie einen Client auf dem Windows PC
hier ein Beispiel
[Interface] PrivateKey = CMQW4OSB4DKvCJuIM5KYhRWVCLHyBu5RB/nTBFFoz1w= Address = 10.10.10.2/24 DNS = 10.10.10.1, 1.1.1.1 [Peer] PublicKey = Public Key Ihres Wiregard Servers AllowedIPs = 0.0.0.0/1, 128.0.0.0/1 Endpoint = ihre öffentliche IP Adresse:51820 PersistentKeepalive = 25
Eintragen des Peers am Server
[Peer] PublicKey = Public Key Ihres Clienten AllowedIPs = 10.10.10.2/32Sollten Sie einen weiteren Peer/Client hinzufügen, muss zwingen der Wiregard Server neu gestartet werden, damit die neuen Einstellungen greifen. Dazu geben Sie folgende Befehle ein
wg-quick down /etc/wireguard/wg0.conf wg-quick up /etc/wireguard/wg0.conf
Gadget
Der Konfigurationsgenerator auf dieser Webseite ermöglicht es Ihnen, mühelos alle notwendigen Schlüssel und QR-Codes direkt in Ihrem Browser zu generieren. Dieser benutzerfreundliche Ansatz vereinfacht den gesamten Vorgang erheblich, sodass Sie sich nicht mit komplexen Schritten herumschlagen müssen. Besuchen Sie die Webseite und folgen Sie den einfachen Anweisungen, um die erforderlichen Konfigurationsdaten für Ihr Vorhaben zu erstellen. Dieser Service ist besonders nützlich für diejenigen, die eine schnelle und unkomplizierte Lösung suchen, ohne tief in die technischen Details einzusteigen. Denken Sie daran, sicherzustellen, dass Sie vertrauenswürdige und sichere Quellen für solche Dienste nutzen. Es ist ratsam, Bewertungen zu lesen oder Empfehlungen von vertrauenswürdigen Quellen einzuholen, um sicherzustellen, dass Ihre Daten geschützt sind. Nutzen Sie diese Webseite, um den Konfigurationsprozess zu vereinfachen und Zeit zu sparen, während Sie gleichzeitig sicherstellen, dass alle erforderlichen Schlüssel und QR-Codes korrekt generiert werden. KonfigurationsgeneratorEigenes IT-Problem?
Nicht jeder Fall passt in einen Tipp
Wenn es bei Ihnen komplizierter wird, übernehmen wir das gerne direkt für Sie.