open:it:vpn
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| open:it:vpn [2024/08/01 21:03] – [Schlüssel generieren] k@i | open:it:vpn [2025/12/12 19:19] (aktuell) – [Linux Client einrichten] k@i | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * https:// | ||
| ++++ | ++++ | ||
| Zeile 14: | Zeile 15: | ||
| ===== Schlüssel generieren ===== | ===== Schlüssel generieren ===== | ||
| - | < | + | < |
| - | Für den Server und für jeden Client wird je ein privater und ein öffentlicher Schlüssel generiert, die untrennbar miteinander verbunden sind. Für die Funktionalität | + | Für den Server und für jeden Client wird je ein privater und ein daran gebundener |
| - | Insbesondere der private Schlüssel ist sicherheitsrelevant und sollte entsprechend behandelt werden. \\ | + | Der jeweils |
| + | Schlüssel bedeutet hier: eine lange Zeichenkette, | ||
| </ | </ | ||
| - | Die Schlüssel | + | Die Schlüsseldateien |
| - | Zur Nutzung müssen sie so ausgetauscht werden, dass hinterlegt | + | Eine eindeutige Bezeichnung hilft die Schlüssel zu identifizieren, wenn z.B. Freigaben erteilt oder entzogen |
| - | auf dem Server in der [[# | + | Eine Kopie der Schlüssel/Keys wird in den im folgenden genannten Verzeichnissen abgelegt. \\ |
| - | * privater Key des Servers | + | |
| - | * öffentliche | + | |
| - | auf jedem Client in der [[#Linux Client einrichten|Client-Konfiguration]]((Datei: | ||
| - | * privater Key des Clients | ||
| - | * öffentlicher Key des Servers | ||
| - | |||
| - | Eine Kopie der Schlüssel/ | ||
| - | Die Generierung erfolgt hier als root (ohne sudo)\\ | ||
| **Server-Schlüssel - privat (key)** | **Server-Schlüssel - privat (key)** | ||
| wg genkey | sudo tee / | wg genkey | sudo tee / | ||
| Leserechte des privaten Server-Keys auf root begrenzen | Leserechte des privaten Server-Keys auf root begrenzen | ||
| - | chmod 0400 / | + | |
| **Server-Schlüssel öffentlich (pub) aus dem privaten Schlüssel generieren** | **Server-Schlüssel öffentlich (pub) aus dem privaten Schlüssel generieren** | ||
| - | cat / | + | |
| - | **Client-Schlüssel - privat (key)** | + | **Client-Schlüssel - privat (key)** |
| - | mkdir -p / | + | Werden die Client-Schlüssel auf dem Server generiert, dann sollten diese in das Unterverzeichnis Clients gelegt werden. In diesem Fall muss der geheime private Schlüssel zum Client transferiert werden.\\ |
| + | Besser ist es daher, die Client-Schlüssel auf dem Client-System zu erstellen und nur den öffentlichen Schlüssel zum Server zu transferieren. \\ | ||
| + | | ||
| - | wg genkey | tee / | + | |
| **Client-Schlüssel öffentlich (pub) aus dem privaten Schlüssel generieren** | **Client-Schlüssel öffentlich (pub) aus dem privaten Schlüssel generieren** | ||
| - | cat / | + | |
| + | |||
| + | **Zur Nutzung werden die Schlüssel wie folgt hinterlegt: | ||
| + | |||
| + | auf dem Server in der [[# | ||
| + | * privater Key des Servers | ||
| + | * öffentliche Keys aller Clients | ||
| + | |||
| + | auf jedem Client in der [[#Linux Client einrichten|Client-Konfiguration]] | ||
| + | * privater Key des Clients | ||
| + | * öffentlicher Key des Servers | ||
| - | Client1 kann beliebig benannt werden - z.B. mit dem Namen eines Users oder eines Laptops. Eine eindeutige Bezeichnung hilft die Schlüssel zu identifizieren, | ||
| ===== Server einrichten ===== | ===== Server einrichten ===== | ||
| ==== Server-Konfiguration erstellen ==== | ==== Server-Konfiguration erstellen ==== | ||
| - | nano / | + | |
| [Interface] | [Interface] | ||
| Zeile 59: | Zeile 64: | ||
| # Ensure any changes will be saved to the Wireguard config file | # Ensure any changes will be saved to the Wireguard config file | ||
| SaveConfig = true | SaveConfig = true | ||
| + | PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
| + | PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE | ||
| | | ||
| [Peer] | [Peer] | ||
| Zeile 71: | Zeile 78: | ||
| AllowedIPs = 10.8.0.3/32 | AllowedIPs = 10.8.0.3/32 | ||
| - | zu AllowedIPs: mit 1 Peer hat die Grundeinstellung /24 geklappt, bei mehreren musste das umgestellt | + | Muss ein einzelner |
| - | ==== Port-Forwarding ==== | + | wg set < |
| - | nano / | + | interfache z.B. wg0 \\ |
| + | |||
| + | ==== Tunnel, | ||
| + | Um den gesamten Traffic über den Tunnel zu leiten (erforderlich für den aktiven Client für Internetdaten, | ||
| + | === Debian | ||
| + | | ||
| Einfügen in die Datei | Einfügen in die Datei | ||
| # Port Forwarding for IPv4 | # Port Forwarding for IPv4 | ||
| Zeile 82: | Zeile 94: | ||
| Änderungen übernehmen | Änderungen übernehmen | ||
| - | sysctl -p | + | |
| - | + | === Ubuntu === | |
| + | Ist die Netzverwaltung auf dem Server mit Netplan realisiert, siehe: \\ | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | [[https:// | ||
| ==== Firewall ==== | ==== Firewall ==== | ||
| siehe [[open: | siehe [[open: | ||
| - | ufw allow OpenSSH | + | |
| # Tunnelendpunkt erreichbar machen | # Tunnelendpunkt erreichbar machen | ||
| Zeile 98: | Zeile 115: | ||
| sudo ufw route allow out on wg0 | sudo ufw route allow out on wg0 | ||
| - | ufw reload | + | |
| ==== Wireguard-Server starten ==== | ==== Wireguard-Server starten ==== | ||
| - | systemctl start wg-quick@wg0.service | + | |
| enable = in Zukunft automatisch mit dem System starten | enable = in Zukunft automatisch mit dem System starten | ||
| - | systemctl enable wg-quick@wg0.service | + | |
| - | systemctl status wg-quick@wg0.service | + | |
| Schnittstelle wg0 überprüfen | Schnittstelle wg0 überprüfen | ||
| ip a show wg0 | ip a show wg0 | ||
| - | WG-Server starten und stoppen | + | Verbindungsinformationen anzeigen |
| - | wg-quick up / | + | |
| - | + | ||
| - | wg-quick down / | + | |
| ===== Linux Client einrichten ===== | ===== Linux Client einrichten ===== | ||
| sudo apt install wireguard-tools | sudo apt install wireguard-tools | ||
| + | |||
| + | |||
| + | **Schlüssel generieren**\\ | ||
| + | siehe [[# | ||
| **Konfigurationsdatei erstellen. **\\ | **Konfigurationsdatei erstellen. **\\ | ||
| Diese Datei kann auch für den Import mit einem entsprechenden Client-Programm genutzt werden - Windows oder Linux. | Diese Datei kann auch für den Import mit einem entsprechenden Client-Programm genutzt werden - Windows oder Linux. | ||
| + | <WRAP important> | ||
| + | ACHTUNG: In dieser Datei ist der private Schlüssel enthalten, sie ist daher sicherheitsrelevant und sollte entsprechend behandelt werden. | ||
| + | </ | ||
| sudo nano / | sudo nano / | ||
| Zeile 140: | Zeile 162: | ||
| PersistentKeepalive = 25 | PersistentKeepalive = 25 | ||
| - | Unter DNS ist die IP-Adresse für den Internetzugang auf dem Server einzutragen. Da sämtliche Internetdaten durch den Tunnel geleitet werden, benötigt der Client die Route auf dem Server. | + | Unter DNS ist die IP-Adresse für den Internetzugang auf dem Server einzutragen. Da sämtliche Internetdaten durch den Tunnel geleitet werden, benötigt der Client die Route auf dem Server, wenn er parallel eine Internetverbindung nutzen möchte((Webseiten aufrufen, E-Mail abrufen, etc.)). \\ |
| + | Ist die DNS-Adresse des Servers nicht bekannt, kann diese wie folgt abgerufen werden: | ||
| + | |||
| + | cat / | ||
| + | |||
| + | Ist der Server (nur) über eine **IPV6**-Verbindung erreichbar > diese als < | ||
| + | Siehe auch [[https:// | ||
| ==== Wireguard starten ==== | ==== Wireguard starten ==== | ||
| Hier wird die Verwaltung über die Konsole beschrieben. Wird das Linux-System über eine GUI betrieben, ist es auch möglich, die o.a. client1.conf-Datei über die Netzwerk-Verwaltung zu importieren. | Hier wird die Verwaltung über die Konsole beschrieben. Wird das Linux-System über eine GUI betrieben, ist es auch möglich, die o.a. client1.conf-Datei über die Netzwerk-Verwaltung zu importieren. | ||
| - | wg-quick up client1 | + | |
| Evtl. installieren bei Fehlermeldung beim Start VPN | Evtl. installieren bei Fehlermeldung beim Start VPN | ||
| Zeile 164: | Zeile 192: | ||
| Wireguard beenden (Server und Client) | Wireguard beenden (Server und Client) | ||
| - | wg-quick down client1 | + | |
| ===== Windows-Client einrichten ===== | ===== Windows-Client einrichten ===== | ||
| Zeile 170: | Zeile 198: | ||
| - [[https:// | - [[https:// | ||
| - Installieren | - Installieren | ||
| - | - Konfigurationsdatei importieren, | + | - Konfigurationsdatei |
| + | - Verbindung aktivieren/ | ||
open/it/vpn.1722538989.txt.gz · Zuletzt geändert: von k@i
