VPN & IPsec Cheatsheet

6 Kernkonzepte
Die wichtigsten Konzepte und Protokolle für IPsec-VPNs: Tunnel / Transport · IKE · ESP / AH · ISAKMP · StrongSwan · ipsec.conf IPsec (Internet Protocol Security) ist der Standard für sichere VPN-Verbindungen auf Netzwerkebene. Es bietet Vertraulichkeit, Integrität und Authentifizierung für IP-Pakete.

Tunnel vs. Transport – Betriebsmodi

Tunnel-Modus · Transport-Modus
// Tunnel-Modus: Gesamtes IP-Paket wird verschlüsselt [Neuer IP-Header] [IPsec-Header] [Original-IP-Header] [Payload] // Transport-Modus: Nur die Nutzlast wird verschlüsselt [Original-IP-Header] [IPsec-Header] [Payload]

Tunnel-Modus verschlüsselt das gesamte IP-Paket und fügt einen neuen IP-Header hinzu – ideal für Gateway-to-Gateway-VPNs. Transport-Modus verschlüsselt nur die Nutzlast und wird meist für End-to-End-Kommunikation verwendet.

Vergleich

Merkmal Tunnel-Modus Transport-Modus
Verschlüsselung Gesamtes IP-Paket (Header + Payload) Nur die Nutzlast (Payload)
Neuer IP-Header Ja (neue Quell- und Ziel-IP) Nein (Original-Header bleibt)
Anwendung Site-to-Site VPN, Remote-Access Host-to-Host, End-to-End
Overhead Höher (zusätzlicher Header) Geringer
NAT-Kompatibilität Besser (neuer Header) Schlechter (NAT-Traversal erforderlich)
Tipp: Der Tunnel-Modus ist der Standard für die meisten VPN-Anwendungen. Der Transport-Modus wird nur in speziellen Szenarien verwendet, z.B. für sichere Verbindungen zwischen zwei Hosts im selben Netzwerk.

IKE – Schlüsselaustausch

IKEv1 · IKEv2 · ISAKMP
// IKE-Phasen Phase 1: Authentifizierung + ISAKMP-SA Phase 2: Aushandlung der IPsec-SA (Quick Mode) // IKE-Ports: UDP 500 (ISAKMP) und UDP 4500 (NAT-T)

IKE (Internet Key Exchange) ist das Protokoll für den sicheren Schlüsselaustausch bei IPsec. IKEv2 ist der moderne Standard, IKEv1 wird noch in vielen Legacy-Systemen verwendet.

IKEv1 vs. IKEv2

Merkmal IKEv1 IKEv2
Phasen Phase 1 + Phase 2 (Quick Mode) Einheitlicher Austausch (4 Messages)
NAT-Traversal Unterstützt (RFC 3947) Integriert
MOBIKE Nicht unterstützt Unterstützt (IP-Wechsel)
Komplexität Höher Niedriger
Kompatibilität Weit verbreitet (ältere Systeme) Moderner Standard
Beispiel (StrongSwan ipsec.conf)
# IKEv2 Konfiguration
conn %default
ike=aes256-sha2_256-modp2048
esp=aes256-sha2_256
conn myvpn
left=192.168.1.1
leftsubnet=192.168.1.0/24
right=203.0.113.1
rightsubnet=10.0.0.0/24
keyexchange=ikev2
authby=secret
auto=start
Tipp: IKEv2 ist sicherer und schneller als IKEv1 und sollte bevorzugt werden. MOBIKE ermöglicht den nahtlosen Wechsel zwischen Netzwerken (z.B. WLAN → Mobilfunk).

ESP & AH – Verschlüsselung und Authentifizierung

ESP · AH · Authenticated Encryption
// ESP (Encapsulating Security Payload) Verschlüsselung + Authentifizierung (optional) // AH (Authentication Header) Nur Authentifizierung (keine Verschlüsselung) // ESP mit Authentifizierung (Empfohlen) Integrität + Vertraulichkeit + Anti-Replay

ESP (Encapsulating Security Payload) bietet Verschlüsselung und optionale Authentifizierung. AH (Authentication Header) bietet nur Authentifizierung ohne Verschlüsselung und wird heute kaum noch verwendet.

ESP vs. AH

Merkmal ESP AH
Verschlüsselung Ja Nein
Authentifizierung Optional (empfohlen) Ja
IP-Header-Schutz Nein Ja (Teile des Headers)
NAT-Kompatibilität Ja (mit NAT-T) Nein (bricht durch Header-Änderungen)
Protokollnummer 50 51
Verwendung Standard für IPsec-VPNs Veraltet, kaum noch verwendet
Tipp: Verwenden Sie ESP mit Authentifizierung (z.B. AES-GCM), das bietet Verschlüsselung + Integrität in einem Modus. AH wird nicht mehr empfohlen, da es mit NAT nicht kompatibel ist.

ISAKMP – Security Association Management

ISAKMP · SA · UDP 500
// ISAKMP (Internet Security Association and Key Management Protocol) UDP 500 // ISAKMP-Port UDP 4500 // NAT-Traversal // Security Association (SA) SA = { Verschlüsselungsalgorithmus, Hash, Authentifizierung, Schlüssel, Lebensdauer }

ISAKMP ist das Framework für die Aushandlung von Security Associations (SA). Es wird von IKE verwendet, um die Parameter für die IPsec-Verbindung auszuhandeln.

ISAKMP/SA in StrongSwan
# Security Association anzeigen
ipsec statusall
# ISAKMP-SA anzeigen
ipsec listalgs
# Verbindung mit SA-Parametern
conn vpn
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
lifetime=86400s
ikelifetime=86400s
Typische Ausgabe von ipsec statusall:
Security Associations (1 up, 0 connecting):
myvpn[1]: ESTABLISHED 5 minutes ago, 192.168.1.1[192.168.1.1]...203.0.113.1[203.0.113.1]
myvpn{1}: INSTALLED, TUNNEL, ESP SPIs: c1234567_i c89abcdef_o
Tipp: ISAKMP-SA werden auch als IKE-SA bezeichnet. Die Lebensdauer von IKE-SA und IPsec-SA sollte regelmäßig erneuert werden (z.B. alle 8 Stunden) für maximale Sicherheit.

StrongSwan – IPsec-Implementierung

ipsec · swanctl · charon
// StrongSwan ist die führende Open-Source-IPsec-Implementierung ipsec start // Daemon starten ipsec stop // Daemon stoppen ipsec statusall // Status aller Verbindungen ipsec up myvpn // Verbindung herstellen

StrongSwan ist die bekannteste Open-Source-IPsec-Implementierung für Linux. Sie unterstützt IKEv1, IKEv2 und bietet umfangreiche Konfigurationsmöglichkeiten.

Wichtige StrongSwan-Befehle

Befehl Beschreibung
ipsec start StrongSwan-Daemon (charon) starten
ipsec stop StrongSwan-Daemon stoppen
ipsec restart Daemon neu starten (nach Konfigurationsänderungen)
ipsec statusall Alle Verbindungen und SAs anzeigen
ipsec up <conn> Bestimmte Verbindung aufbauen
ipsec down <conn> Bestimmte Verbindung trennen
ipsec listalgs Unterstützte Algorithmen anzeigen
ipsec listcerts Installierte Zertifikate anzeigen
ipsec pki PKI-Tool für Zertifikate
StrongSwan-Konfiguration
# /etc/ipsec.conf
config setup
charondebug="ike 2, knl 2, cfg 2"
conn %default
ikelifetime=86400s
lifetime=86400s
keyexchange=ikev2
authby=secret
conn myvpn
left=192.168.1.1
leftsubnet=192.168.1.0/24
right=203.0.113.1
rightsubnet=10.0.0.0/24
auto=start
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
Tipp: StrongSwan verwendet /etc/ipsec.conf für die Konfiguration und /etc/ipsec.secrets für Geheimnisse (PSK, Zertifikate). Nach Änderungen: ipsec restart.

IPsec-Praxis – Typische Szenarien

Site-to-Site · Road Warrior · NAT-T
// Site-to-Site VPN Gateway A --(Internet)-- Gateway B // Road Warrior (Client-to-Site) Client --(Internet)-- Gateway

IPsec-VPNs werden in verschiedenen Szenarien eingesetzt – von der Verbindung ganzer Netzwerke (Site-to-Site) bis zum individuellen Zugriff einzelner Clients (Road Warrior).

Typische Szenarien

Szenario Beschreibung Typischer Modus
Site-to-Site Verbindung zwischen zwei Standorten (Gateway-to-Gateway) Tunnel-Modus
Road Warrior Einzelner Client verbindet sich mit einem Gateway Tunnel-Modus mit virtuellem IP-Pool
Host-to-Host Direkte sichere Verbindung zwischen zwei Hosts Transport-Modus
NAT-Traversal IPsec durch NAT-Geräte (UDP 4500) Tunnel-Modus mit NAT-T
Beispiele
# Site-to-Site (ipsec.conf)
conn site-to-site
left=192.168.1.1
leftsubnet=192.168.1.0/24
right=203.0.113.1
rightsubnet=10.0.0.0/24
type=tunnel
# Road Warrior (Client)
conn roadwarrior
left=%defaultroute
leftsourceip=%config
right=203.0.113.1
rightsubnet=0.0.0.0/0
auto=start
# NAT-T aktivieren (in ipsec.conf)
config setup
nat-traversal=yes
charondebug="ike 2, knl 2, cfg 2"
Tipp: Für Road-Warrior-Szenarien mit dynamischen IPs verwenden Sie left=%defaultroute und leftsourceip=%config. Für NAT-T ist UDP 4500 erforderlich.

IPsec im Überblick

Tunnel Gesamtes Paket verschlüsselt
Gateway-to-Gateway
Transport Nur Payload verschlüsselt
Host-to-Host
ESP Verschlüsselung + Integrität
Protokoll 50
IKE Schlüsselaustausch
UDP 500, 4500
SA Security Association
Alg., Schlüssel, Lifetime
StrongSwan Open-Source-IPsec
ipsec, swanctl

Quick Summary

Tunnel
Gateway-to-Gateway
IKEv2
Moderner Standard
ESP
Verschlüsselung
AH
Nur Authentifizierung
ipsec
StrongSwan
UDP 500
ISAKMP-Port
ipsec start · ipsec statusall · ipsec up myvpn