# WireGuard VPN: Grundlagen

WireGuard ist ein modernes Virtual Private Network (VPN)-Protokoll, das sichere, verschlüsselte Verbindungen zwischen Geräten ermöglicht. Mit einer einfachen Codebasis und hoher Leistung hat es sich als leistungsstarke und ressourcenschonende Alternative zu älteren VPN-Protokollen wie IPsec und OpenVPN etabliert. In diesem Artikel erfahren Sie, was WireGuard auszeichnet, wie es funktioniert und wie Sie die VPN-Lösung auf dem eigenen System installieren.

## Was ist WireGuard?

WireGuard ist ein Open-Source-[VPN](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-vpn-virtual-private-network/)-Protokoll, das für den **Aufbau verschlüsselter Tunnel zwischen Geräten** genutzt wird. Datenströme werden durch den Tunnel geleitet und sind somit vor unbefugtem Zugriff geschützt. Neben dem Fokus auf starke Verschlüsselung bietet WireGuard auch Optimierungen für mobile Systeme und das [Internet of Things (IoT)](https://www.ionos.de/digitalguide/websites/online-recht/internet-of-things/). Die Software ist unter der GPLv2-Lizenz als freie Software lizenziert und plattformübergreifend verfügbar. WireGuard ist in den Sprachen C und [Go](https://www.ionos.de/digitalguide/server/knowhow/golang/) geschrieben und läuft unter Windows, macOS, BSD, iOS und Android.

Seit 2020 ist WireGuard **direkt in den Linux-Kernel integriert**. Da Linux als Standard-Betriebssystem auf Milliarden von vernetzten Geräten weltweit läuft, kann WireGuard nahezu überall eingesetzt werden. Dank seiner einfachen Konfiguration und der geringen Systembelastung wird WireGuard zunehmend von [VPN-Diensten](https://www.ionos.de/digitalguide/server/tools/vpn-services/) und Unternehmen genutzt.

## Welche Features hat WireGuard?

Ein zentrales Merkmal von WireGuard ist das sogenannte **Cryptokey Routing**. Dabei werden dem öffentlichen Schlüssel eines Verbindungspartners die innerhalb eines Tunnels erlaubten IP-Adressbereiche zugeordnet. Eingehende Pakete eines Verbindungspartners werden mithilfe des öffentlichen Schlüssels entschlüsselt. Ein eingehendes Paket wird nach der Entschlüsselung nur dann zugestellt, wenn es von einer zum Schlüssel korrespondierenden [IP-Adresse](https://www.ionos.de/digitalguide/server/knowhow/was-ist-eine-ip-adresse/) stammt. Andernfalls wird das Paket verworfen.

Im Gegensatz zu älteren VPN-Protokollen wie [IPsec](https://www.ionos.de/digitalguide/server/knowhow/ipsec-sicherheitsarchitektur-fuer-ipv4-und-ipv6/) und OpenVPN verwendet WireGuard einen festen Satz moderner kryptografischer Primitive ohne Verhandlung. Während bei den etablierten Protokollen die kryptografischen Grundlagen während des Handshakes ausgehandelt werden, setzt WireGuard auf eine feste, versionierte **Kombination von Algorithmen**. Sollte eine kryptografische Grundlage in Zukunft als unsicher gelten, wird eine neue Version des Protokolls veröffentlicht, die dann eine aktualisierte und sichere Algorithmuswahl enthält.

Das Protokoll verwendet moderne und hochsichere **Verschlüsselungsalgorithmen**, darunter:

- **Noise Protocol Framework** für die Handshake- und Schlüsselaustauschprozesse
- **Curve25519** für den sicheren Schlüsselaustausch
- **ChaCha20** für die symmetrische Verschlüsselung
- **Poly1305** für Authentifizierung
- **BLAKE2** für eine schnelle kryptografische Hash-Funktion
- **SipHash24** für die Erzeugung von kryptografisch sicheren [Hashes](https://www.ionos.de/digitalguide/websites/web-entwicklung/hashing/)
- **HKDF** für den sicheren Schlüsselableitungsprozess

## Was sind die Vorteile von WireGuard?

WireGuard bietet viele Vorteile, die es zu einer bevorzugten Wahl für moderne VPN-Verbindungen machen. Die wichtigsten Vorteile im Überblick:

- **Schlanke Codebasis:** WireGuard hat mit nur ca. 4.000 Codezeilen eine signifikant kleinere Codebasis im Vergleich zu OpenVPN oder IPsec (ca. 100.000 bis 600.000 Zeilen). Diese Reduzierung macht das Protokoll sicherer, da Bugs leichter gefunden werden können, und ressourcenschonender, da weniger Rechenleistung erforderlich ist.
- **Höhere Performance:** Durch die geringere Komplexität liefert WireGuard eine höhere Übertragungsgeschwindigkeit und niedrigere [Latenz](https://www.ionos.de/digitalguide/server/knowhow/was-ist-latenz/) als viele konkurrierende Protokolle. Das macht es ideal für Anwendungen, die eine schnelle und stabile Verbindung erfordern, wie z. B. Streaming, Online-Gaming und Video-Conferencing.
- **Energieeffizienz:** WireGuard wird nur dann aktiv, wenn tatsächlich Daten übertragen werden. Diese Energieeinsparung ist insbesondere für mobile Geräte von Vorteil, da sie die Akkulaufzeit verlängert.
- **Roaming-Unterstützung:** WireGuard unterstützt den nahtlosen Wechsel zwischen WLAN und mobilen Netzwerken, ohne dass die Verbindung verloren geht. Sollte die Verbindung dennoch abbrechen, erfolgt der Wiederaufbau in der Regel schneller als bei anderen VPN-Protokollen.
- **Einfache Konfiguration:** Im Vergleich zu anderen VPN-Protokollen erfordert WireGuard keine manuelle Einstellung einer Vielzahl kryptografischer Optionen. Es verwendet eine fest definierte Konfiguration, die sowohl für erfahrene Nutzer als auch für Anfänger zugänglich ist.

## Wie funktioniert WireGuard?

WireGuard ist ein dezentrales [Peer-to-Peer](https://www.ionos.de/digitalguide/server/knowhow/was-ist-peer-to-peer/)-VPN-Protokoll, das **keinen zentralen Server benötigt**. Stattdessen kann direkt ein Tunnel zwischen zwei Geräten („Peers“) aufgebaut werden. Ein „WireGuard-Server“ ist in diesem Fall einfach ein Gerät, das Konfigurationsdaten für mehrere Peers enthält.

Der Verbindungsaufbau funktioniert ähnlich wie bei [Secure Shell](https://www.ionos.de/digitalguide/server/tools/secure-shell-ssh/) (SSH): Peers generieren öffentliche und private Schlüsselpaare, tauschen diese aus und verwenden sie zur Authentifizierung und Verschlüsselung der übertragenen Daten. Die Verschlüsselung basiert auf modernen kryptografischen Verfahren, die für hohe Sicherheit sorgen.

Neben der Erstellung der kryptografischen Schlüssel müssen auf den Peers **Netzwerk- und Routing-Einstellungen** vorgenommen werden (siehe dazu unsere Anleitung weiter unten). Dies umfasst die Konfiguration der erlaubten IP-Adressbereiche, die mit den öffentlichen Schlüsseln verknüpft werden. Nur Pakete von diesen IP-Adressen werden akzeptiert.

Der Datenversand läuft über das [User Datagram Protocol](https://www.ionos.de/digitalguide/server/knowhow/udp-user-datagram-protocol/) (UDP), das aufgrund seiner Geschwindigkeit und Effizienz bevorzugt wird. Es benötigt keine umfangreiche Fehlerkorrektur wie das [Transmission Control Protocol](https://www.ionos.de/digitalguide/server/knowhow/tcp-vorgestellt/) (TCP), was eine schnellere Übertragung ermöglicht.

Die Konfiguration erfolgt in der Regel über das **WireGuard-Kommandozeilen-Tool** und gängige Netzwerktools. Für weniger erfahrene Nutzer bieten kommerzielle VPN-Dienste benutzerfreundliche Apps zur einfachen Konfiguration.

## Erste Schritte mit WireGuard

Prinzipiell lässt sich WireGuard auf einem Linux-System mit geringem Aufwand installieren und konfigurieren. Auf **neueren Ubuntu-Versionen (ab 20.04 LTS)** ist WireGuard bereits als Kernelmodul integriert, sodass keine zusätzliche Installation von Personal-Package-Archive-(PPA)-[Repositories](https://www.ionos.de/digitalguide/server/knowhow/repository/) erforderlich ist. Führen Sie einfach den folgenden Befehl aus:

```bash
sudo apt install wireguard
```

## WireGuard auf dem eigenen System installieren

Die Installation von WireGuard auf Ihrem eigenen System ist einfach und kann mit wenigen Befehlen durchgeführt werden.

**Für Ubuntu 20.04 LTS oder neuer:**

WireGuard ist bereits als Kernelmodul integriert, sodass keine zusätzlichen PPA-Repositorys erforderlich sind. Führen Sie einfach den folgenden Befehl aus:

```bash
sudo apt update
sudo apt install wireguard
```

**Für ältere Ubuntu-Versionen:**

Hier müssen Sie das PPA von WireGuard hinzufügen, um die Installation vorzunehmen:

```bash
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard
```

### WireGuard-Schlüssel erzeugen

Wie bei vielen anderen modernen VPN-Protokollen basiert auch WireGuard auf der Verwendung von kryptografischen Schlüsseln, um sichere Verbindungen zwischen Peers herzustellen. Jeder Peer benötigt ein **privates und ein öffentliches Schlüsselpaar**. Der private Schlüssel bleibt immer geheim, während der öffentliche Schlüssel mit anderen Peers geteilt wird.

Führen Sie die folgenden Befehle auf der Kommandozeile aus, um einen **privaten und öffentlichen WireGuard-Schlüssel zu erzeugen**:

```bash
# Schlüsselverzeichnis erstellen und Berechtigungen setzen
sudo mkdir -p /etc/wireguard/keys
sudo chmod 700 /etc/wireguard/keys
cd /etc/wireguard/keys
# Umask so setzen, dass nur root lesen/schreiben kann
umask 077
# Privaten Schlüssel erzeugen und in Datei speichern
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey
# Ausgabe der erzeugten Schlüssel prüfen
sudo cat privatekey
sudo cat publickey
```

Hinweis Die Schlüssel sollten in einer sicheren Umgebung erstellt und gespeichert werden. Die obigen Befehle sind für Testzwecke geeignet. In einer Produktionsumgebung sollten zusätzliche Sicherheitsvorkehrungen getroffen werden, wie z. B. die Verwendung von sicheren Verzeichnissen und Zugriffssteuerungen.

### Netzwerkeinstellungen für WireGuard konfigurieren

Nachdem die kryptografischen Schlüssel erzeugt wurden, müssen auf jedem Peer bestimmte **Netzwerk- und Routing-Einstellungen** vorgenommen werden. Diese Konfiguration ist entscheidend, um die sichere Kommunikation zwischen den Peers zu ermöglichen.

Im Wesentlichen wird eine Konfigurationsdatei erstellt, die unter anderem folgende Informationen enthält:

- **Private und öffentliche Schlüssel** der Peers
- **Erlaubte IP-Adressen** (die IP-Bereiche, mit denen der Peer kommunizieren darf)
- **Peer-Adressen**, die mit den jeweiligen öffentlichen Schlüsseln verknüpft sind

Ein Beispiel für die grundlegende Konfiguration einer WireGuard-Verbindung könnte wie folgt aussehen:

```txt
[Interface]
# Interne VPN-IP des Servers
Address = 10.0.0.1/24
# Privater Schlüssel (vom Server)
PrivateKey = <SERVER_PRIVATE_KEY>
# UDP-Port, auf dem WireGuard Verbindungen akzeptiert
ListenPort = 51820
# Client-Peer
[Peer]
# Öffentlicher Schlüssel des Clients
PublicKey = <CLIENT_PUBLIC_KEY>
# Interne VPN-IP, die dem Client zugewiesen ist
AllowedIPs = 10.0.0.2/32
```

### Verbindung testen und WireGuard aktivieren

Nachdem WireGuard auf Ihrem System installiert und konfiguriert wurde, ist es an der Zeit, die Verbindung zu testen und das Netzwerkinterface zu aktivieren. Dies kann über die Kommandozeile erfolgen, indem die folgenden Befehle ausgeführt werden:

**1. Netzwerkinterface aktivieren**

Zunächst müssen Sie das WireGuard-Interface aktivieren, das Sie gerade konfiguriert haben:

```bash
sudo systemctl enable --now wg-quick@wg0
```

Dieser Befehl aktiviert das WireGuard-Interface (`wg0`), das Sie zuvor erstellt haben. Wenn dieser Befehl erfolgreich ausgeführt wird, sollte die Verbindung bereit sein, Daten zu senden.

**2. Verbindung testen**

Um sicherzustellen, dass die Verbindung funktioniert, können Sie den **Ping-Befehl** verwenden, um zu überprüfen, ob das entfernte Gerät erreichbar ist. Beispiel:

```bash
ping 192.168.1.2
```

Ersetzen Sie die IP-Adresse durch die des entfernten Peers, mit dem Sie verbunden sind. Wenn der Ping erfolgreich ist, bedeutet das, dass die VPN-Verbindung funktioniert.

**3. Fehlerbehebung**

Sollte die Verbindung nicht wie erwartet funktionieren, überprüfen Sie die folgenden Punkte:

- Stellen Sie sicher, dass die IP-Adressen korrekt konfiguriert sind.
- Überprüfen Sie, ob die öffentlichen und privaten Schlüssel korrekt miteinander ausgetauscht wurden.
- Stellen Sie sicher, dass die [Firewall](https://www.ionos.de/digitalguide/server/sicherheit/was-ist-eine-firewall/) auf beiden Geräten so konfiguriert ist, dass sie WireGuard-Verkehr zulässt (normalerweise über den Port 51820).

Falls weiterhin Probleme auftreten, können Sie auch den **WireGuard-Dienst neu starten**:

```bash
sudo systemctl restart wg-quick@wg0
```


This is a markdown version of: [https://www.ionos.de/digitalguide/server/tools/wireguard-vpn-grundlagen/](https://www.ionos.de/digitalguide/server/tools/wireguard-vpn-grundlagen/) for AI/LLM consumption.