9. Security Considerations (Sicherheitsüberlegungen)
Das L2TP-Protokoll selbst bietet keine Verschlüsselung oder starke Authentifizierungsdienste. Dieses Kapitel behandelt Sicherheitsüberlegungen bei L2TP-Bereitstellungen und verfügbare Sicherheitsmechanismen.
9.1 Tunnel Endpoint Security (Sicherheit der Tunnelendpunkte)
Die Vertrauensbeziehung zwischen Tunnelendpunkten ist grundlegend für die L2TP-Sicherheit.
Endpunkt-Authentifizierung:
LAC und LNS müssen in der Lage sein, die Identität des jeweils anderen zu überprüfen. L2TP bietet einen optionalen Tunnel-Authentifizierungsmechanismus:
- Challenge AVP: Der Initiator sendet einen zufälligen Challenge-Wert im SCCRQ (Start-Control-Connection-Request).
- Challenge Response AVP: Der Responder berechnet eine Antwort basierend auf einem gemeinsamen Geheimnis und gibt sie im SCCRP (Start-Control-Connection-Reply) zurück.
- Antwortberechnung: Verwendet MD5-Hash-Funktion:
MD5(Nachrichtentyp + gemeinsames_Geheimnis + Challenge + Sitzungs_ID)
Verwaltung gemeinsamer Geheimnisse:
- Gemeinsame Geheimnisse sollten ausreichende Entropie haben (mindestens 128 Bit empfohlen).
- Gemeinsame Geheimnisse sollten sicher gespeichert werden (verschlüsselte Speicherung).
- Gemeinsame Geheimnisse sollten regelmäßig erneuert werden.
- Verschiedene Tunnelpaare sollten verschiedene gemeinsame Geheimnisse verwenden.
Tunnel-Autorisierung:
Zusätzlich zur Authentifizierung sollten Autorisierungsmechanismen implementiert werden:
- Überprüfen, ob der Peer berechtigt ist, einen Tunnel einzurichten.
- Prüfen, ob der Peer die Berechtigung hat, auf bestimmte Ressourcen oder Dienste zuzugreifen.
- Access Control Lists (ACLs) verwenden, um einzuschränken, welche Peers Tunnel einrichten können.
Schwachstellen und Gegenmaßnahmen:
-
Man-in-the-Middle-Angriff:
- Risiko: L2TP-Tunnel-Authentifizierung basierend auf gemeinsamen Geheimnissen ist anfällig für MITM-Angriffe.
- Gegenmaßnahme: IPsec verwenden, um Ende-zu-Ende-Verschlüsselung und -Authentifizierung bereitzustellen.
-
Replay-Angriff:
- Risiko: Angreifer können erfasste Kontrollnachrichten wiedergeben.
- Gegenmaßnahme: Sequenznummern und ZLB-ACK-Mechanismen verwenden, um Replay-Angriffe zu erkennen und zu verhindern.
-
Denial-of-Service-Angriff:
- Risiko: Angreifer können große Mengen von Tunnel-Einrichtungsanforderungen senden.
- Gegenmaßnahme:
- Anzahl gleichzeitiger Tunnel pro Quelladresse begrenzen.
- Rate-Limiting implementieren.
- Cookie-Mechanismen verwenden (ähnlich wie TCP SYN Cookies).
9.2 Packet Level Security (Sicherheit auf Paketebene)
L2TP selbst bietet keine Paketverschlüsselung oder Integritätsschutz.
Risiken der Klartextübertragung:
- Abhören: Angreifer können PPP-Paketinhalte abfangen und lesen, einschließlich Benutzeranmeldeinformationen und Anwendungsdaten.
- Manipulation: Angreifer können Pakete während der Übertragung ändern.
- Injektion: Angreifer können bösartige Pakete in den Tunnel injizieren.
AVP-Verbergungsmechanismus:
L2TP bietet einen AVP-Verbergungsmechanismus zum Schutz sensibler Kontrollinformationen:
-
Verbergungsprozess:
- MD5-Hash mit gemeinsamem Geheimnis und Random Vector generieren.
- Hash-Wert mit AVP-Wert XOR verknüpfen.
- Prozess wiederholen, wenn der AVP-Wert 16 Bytes überschreitet.
-
Einschränkungen:
- AVP-Verbergung ist Verschleierung, keine echte Verschlüsselung.
- Schützt nicht den Datenkanal, nur bestimmte AVPs im Kontrollkanal.
- Anfällig für Wörterbuchangriffe (wenn das gemeinsame Geheimnis schwach ist).
Empfehlungen:
- Nicht auf AVP-Verbergung als alleinigen Sicherheitsmechanismus verlassen.
- IPsec oder andere Verschlüsselungstechnologien auf Tunnelebene verwenden.
9.3 End to End Security (Ende-zu-Ende-Sicherheit)
Auch wenn der L2TP-Tunnel selbst geschützt ist, bleibt Ende-zu-Ende-Sicherheit wichtig.
PPP-Ebenen-Authentifizierung:
Unabhängige Authentifizierung sollte zwischen dem entfernten System und dem LNS stattfinden:
-
PAP (Password Authentication Protocol):
- Einfache Klartext-Passwort-Authentifizierung.
- Nicht empfohlen, da Passwörter im Klartext übertragen werden (sollte auch innerhalb verschlüsselter L2TP-Tunnel vermieden werden).
-
CHAP (Challenge Handshake Authentication Protocol):
- Challenge-Response-Authentifizierungsmechanismus.
- Passwörter werden nicht im Klartext übertragen.
- Regelmäßige Neuauthentifizierung zur Verhinderung von Replay-Angriffen.
-
EAP (Extensible Authentication Protocol):
- Unterstützt verschiedene Authentifizierungsmethoden (EAP-TLS, EAP-TTLS, PEAP usw.).
- Kann gegenseitige Authentifizierung und Schlüsselverhandlung bereitstellen.
- EAP-TLS wird empfohlen für die stärkste Sicherheit.
Ende-zu-Ende-Verschlüsselung:
Verschlüsselung auf Anwendungsebene bietet eine zusätzliche Sicherheitsschicht:
- TLS/SSL: Wird zum Schutz von Anwendungsdaten verwendet (z. B. HTTPS).
- VPN-Client-Software: Bietet zusätzliche Verschlüsselungsschicht über PPP.
Verteidigung in der Tiefe-Strategie:
Entferntes System <--PPP-Auth/Verschl.--> LNS
| |
+--<L2TP-Tunnel>--LAC------------------+
|
<IPsec-Schutz>
- Schicht 1: PPP-Ebenen-Authentifizierung (CHAP/EAP)
- Schicht 2: L2TP-Tunnel-Authentifizierung
- Schicht 3: IPsec-Verschlüsselung und -Authentifizierung
- Schicht 4: Verschlüsselung auf Anwendungsebene (TLS/SSL)
9.4 L2TP and IPsec (L2TP und IPsec)
Es wird dringend empfohlen, L2TP in Kombination mit IPsec zu verwenden, allgemein als L2TP/IPsec bezeichnet.
Von IPsec bereitgestellte Sicherheitsdienste:
-
Vertraulichkeit:
- Bereitgestellt durch ESP-Verschlüsselung (Encapsulating Security Payload).
- Unterstützt mehrere Verschlüsselungsalgorithmen: AES, 3DES, ChaCha20 usw.
-
Integrität:
- Bereitgestellt durch AH (Authentication Header) oder ESP-Authentifizierung.
- Verwendet HMAC (z. B. HMAC-SHA256) zur Überprüfung der Datenintegrität.
-
Quellen-Authentifizierung:
- Überprüft die Authentizität von Paketquellen.
- Verhindert IP-Spoofing-Angriffe.
-
Anti-Replay:
- Verwendet Sequenznummern zur Verhinderung von Replay-Angriffen.
L2TP/IPsec-Architektur:
+-------------------+
| PPP-Nutzlast |
+-------------------+
| L2TP-Header |
+-------------------+
| UDP-Header |
+-------------------+
| ESP-Header | <-- IPsec-Verschlüsselung und -Authentifizierung
+-------------------+
| IP-Header |
+-------------------+
IPsec-Konfigurationsoptionen:
-
Transportmodus:
- Verschlüsselt und authentifiziert nur die IP-Nutzlast.
- Geeignet für Ende-zu-Ende-Kommunikation.
- Empfohlen für L2TP/IPsec.
-
Tunnelmodus:
- Verschlüsselt und authentifiziert das gesamte IP-Paket.
- Fügt einen neuen äußeren IP-Header hinzu.
- Geeignet für Gateway-zu-Gateway-Kommunikation.
Schlüsselverwaltung:
-
IKE (Internet Key Exchange):
- IKEv1: Originalversion, zweiphasige Verhandlung.
- IKEv2: Verbesserte Version, rationalisierter und effizienter.
- IKEv2 wird empfohlen für Schlüsselverhandlung.
-
Vorab geteilte Schlüssel vs. Zertifikate:
- Vorab geteilte Schlüssel (PSK): Einfach zu konfigurieren, aber schwierig, Schlüssel zu verteilen.
- Zertifikate: Sicherer, unterstützt große Bereitstellungen, dringend empfohlen.
NAT-Durchquerung (NAT-T):
Wenn L2TP/IPsec NAT-Geräte durchqueren muss:
- UDP-Kapselung von ESP verwenden (UDP-Port 4500).
- Regelmäßig NAT-Keepalive-Pakete senden.
- IKEv2 hat integrierte NAT-T-Unterstützung.
Leistungsüberlegungen:
- IPsec-Verschlüsselung erhöht den CPU-Overhead.
- Verwendung von Hardware-Beschleunigung in Betracht ziehen (AES-NI usw.).
- MTU-Reduzierung muss berücksichtigt werden (ESP-Header + ESP-Trailer + Authentifizierungsdaten).
9.5 Proxy PPP Authentication (Proxy-PPP-Authentifizierung)
L2TP ermöglicht es dem LAC, die anfängliche PPP-Authentifizierung im Namen des LNS durchzuführen.
Proxy-Authentifizierungsmechanismus:
Der LAC kann LCP verhandeln und eine Authentifizierung mit dem entfernten System durchführen, bevor er den Anruf an den LNS weiterleitet:
-
LAC führt PPP-Authentifizierung durch:
- LAC verhandelt LCP mit dem entfernten System.
- LAC führt PAP- oder CHAP-Authentifizierung durch.
- LAC sammelt Authentifizierungsinformationen (Benutzername, Passwort-Hash usw.).
-
LAC leitet Authentifizierungsinformationen an LNS weiter:
- Verwendet Proxy-AVPs zur Weitergabe von Authentifizierungsinformationen:
- Proxy Authen Type AVP (29): Authentifizierungstyp (PAP, CHAP usw.)
- Proxy Authen Name AVP (30): Benutzername
- Proxy Authen Challenge AVP (31): CHAP-Challenge-Wert
- Proxy Authen Response AVP (33): Authentifizierungsantwort
- Verwendet Proxy-AVPs zur Weitergabe von Authentifizierungsinformationen:
-
LNS überprüft Authentifizierungsinformationen:
- LNS überprüft den Benutzer basierend auf den vom LAC bereitgestellten Informationen.
- LNS kann die Sitzung akzeptieren oder ablehnen.
Sicherheitsrisiken:
-
LAC-Kompromittierung:
- Wenn der LAC kompromittiert ist, können Angreifer Benutzeranmeldeinformationen erlangen.
- Gegenmaßnahme: IPsec verwenden, um die Kommunikation zwischen LAC und LNS zu schützen.
-
Klartext-Passwortübertragung:
- PAP-Passwörter werden im Klartext vom LAC zum LNS übertragen (in AVPs).
- Gegenmaßnahme: AVP-Verbergungsmechanismus oder IPsec-Verschlüsselung verwenden.
-
Vertrauensgrenze:
- LNS muss den vom LAC bereitgestellten Authentifizierungsinformationen vollständig vertrauen.
- Ein böswilliger LAC kann Authentifizierungsinformationen fälschen.
- Gegenmaßnahme:
- Proxy-Authentifizierung nur zwischen vertrauenswürdigen Verwaltungsdomänen verwenden.
- Ende-zu-Ende-Neuauthentifizierung in Betracht ziehen.
Best Practices:
-
Proxy-PAP-Authentifizierung vermeiden:
- PAP-Passwörter sind anfällig für Angriffe, auch wenn sie verborgen sind.
- Wenn es verwendet werden muss, IPsec-Schutz sicherstellen.
-
Ende-zu-Ende-Authentifizierung bevorzugen:
- Das entfernte System direkt mit dem LNS authentifizieren lassen (ohne Proxy).
- EAP-Methoden für stärkere Sicherheit verwenden.
-
Verwendungsfälle für Proxy-Authentifizierung einschränken:
- Nur bei Bedarf verwenden (z. B. schnelle Anrufeinrichtung).
- In vertrauenswürdigen Netzwerkumgebungen verwenden.
-
Mehrere Authentifizierungsmethoden kombinieren:
- LAC führt vorläufige Authentifizierung durch (für schnelles Filtern).
- LNS führt sekundäre Authentifizierung durch (Ende-zu-Ende-Verifizierung).
Proxy-Authentifizierung mit RADIUS-Integration:
Entferntes System <--PAP/CHAP--> LAC <--RADIUS--> RADIUS-Server
|
|
v
(Auth-Info weiterleiten)
|
v
LNS <--RADIUS--> RADIUS-Server
- LAC kann RADIUS verwenden, um Benutzeranmeldeinformationen zu überprüfen.
- LNS kann auch unabhängig mit RADIUS überprüfen.
- Doppelte Überprüfung bietet eine zusätzliche Sicherheitsschicht.
Sicherheitskonfigurations-Checkliste:
- IPsec zwischen LAC und LNS verwenden
- Starke gemeinsame Geheimnisse oder Zertifikate für Tunnel-Authentifizierung verwenden
- Eindeutige gemeinsame Geheimnisse für jedes Tunnelpaar verwenden
- PPP-Ebenen-Authentifizierung aktivieren (CHAP oder EAP)
- Verwendung von PAP-Authentifizierung vermeiden
- Gemeinsame Geheimnisse regelmäßig wechseln
- Zugriffskontrolllisten zur Einschränkung der Tunnel-Einrichtung implementieren
- Protokollierung und Überwachung aktivieren
- Intrusion Detection Systeme (IDS) einsetzen
- Regelmäßige Sicherheitsaudits und Penetrationstests durchführen