Lancom Router VPN IPSec

IPsec Tips (Lancom)

Phasen bei IPSec IKEv1 und IKEv2 (Quelle: Cisco):

understanding-ikev2-packet-exch-debug-01.gif

Der VPN-Tunnelaufbau beim Einsatz von IKEv2/IPSec erfolgt mit 4 IKE-Telegramme.
- 2 Telegramme sind für die Aushandlung der Verschlüsselung (des Steuerkanals IKE) => IKE_SA_INIT-REQUEST + IKE_SA_INIT-RESPONSE.
- 2 Telegramme sind für die Authentifizierung der beiden VPN-Endpunkte => IKE_AUTH-REQUEST + IKE_AUTH-RESPONSE.

Zuerst erfolgt der Austausch der IKE_SA_INIT-Telegramme, danach kommen die IKE_AUTH-Telegramme.
Die IKE_SA_INIT-Telegramme werden unverschlüsselt übertragen.
Die IKE_AUTH-Telegramme sind bereits verschlüsselt.
Die REQUEST-Telegramme kommen immer vom Initiator (Client) des VPN-Tunnels.
Die RESPONSE-Telegramme werden immer vom Responder (Server) versendet.

 

Main Mode - setzt feste IP auf beiden Seiten voraus
Aggressive Mode - erforderlich für dynam. IP

IP wird automatisch zugewisen (IKE-CFG, bsp. Lancom Adv.VPN-Client) oder fest:
ike1: Routing-Tabelle: VPN-Verbindung in "Router" auswählen, feste IP-Adresse (Mask 255.255.255.255)
ike2: Lanconfig: VPN -> IKEv2 -> IPv4-Adressen: IP-Pool festlegen, VPN -> IKEv2 -> Verbindungsliste: IPv4-Adress-Pool auswählen (es darf kein fester IP-Eintrag in der Routing-Tabelle sein)

Local ID - Peer ID
Muss auf beiden Seiten gleich (gedreht natürlich) sein.
Als ID kommt Feste-IP oder FQDN in Frage. Der FQDN muss kein gültiger Domainname sein. Lange Zeichenkette ist besser.

PSK Preshared Key - möglichst 20-30 Zeichen lang, (bei Fritzbox und Lucom keine Sonderzeichen)

phase2localid - phase2remoteid
Proxy-IDs, definieren den Subnetbereich, von und zu dem das VPN getunnelt wird. (Bsp.: 192.168.110.0/24)

PPP-Liste: Gegenstelle eintragen mit (Benutzer) + Passwort.

IPv4-Regeln:
RAS-WITH-NETWORK-SELECTION | 0.0.0.0/0 - 0.0.0.0/0  -> alle IPv4-Adressen (Default-Route) - bei Router-Router
RAS-WITH-CONFIG-PAYLOAD | 0.0.0.0/0 - 0.0.0.0/32 -> nur IPv4-Adresse des VPN-Clients - bei Clientverbindungen

Aktuelle und empfohlene Parameter:
- DH-Gruppe 14
- AES-256
- SHA-256
- Lifetime = 8 Std.

 

DEFAULT-Einträge nicht löschen!
• VPN IKE2 Verbindungsliste:
Bei fehlendem DEFAULT-Eintrag in /Setup/VPN/IKEv2/Gegenstellen/ verarbeitet das VPN-Modul des LANCOM-Router nur einkommende IKE_SA_INIT-REQUEST's, deren Absender-IP-Adresse in /Setup/VPN/IKEv2/Gegenstellen/Entferntes-Gateway eingetragen sind (=> statische IP-Adressen) ODER für welche die Absender-IP-Adresse einer in /Setup/VPN/IKEv2/Gegenstellen/Entferntes-Gateway eingetragen DNS-Adresse entspricht (=> dynamische IP-Adresse). Vom LANCOM-Router nicht akzeptierte IKE_SA_INIT-REQUEST's werden mit Fehlermeldung (Peer <UNKNOWN>: Received an IKE_SA_INIT-REQUEST of 632 bytes) unverarbeitet verworfen.

DEFAULT-Eintrag in Verbindungsliste ist wichtig für alle Geräte, deren IP der Router nicht kennt (Mobilfunk, dyn. IP)!
Es werden Verschlüsselungen zugewiesen und PSK oder Zertifikat entschieden.
Der Default-Eintrag darf keinen Eintrag in IPv4-CFG-Pool und IPv4-Regeln aufweisen.

Ab LCOS Fw 10.50 änder sich das Verhalten der Actionstabellen bei IP v6.
Ein "gerne" gemachter Fehler dabei ist, daß das IPv6-Modul eingeschaltet ist, obwohl es nicht genutzt wird.

Konfiguration einer Fritzbox (entsprechend langsam und ohne detaillierte Filter) in CT 2017/15 S.160ff.
Die Fritzbox kann nur IPSec (IKE v.1) + neuerdings Wireguard, kein PPTP oder SSL.

Für zertifikatsbasierte VPN sollte der Router mit der festen IP einen gültigen FQDN besitzen.
Alternativ: X509v3 Subjekt Alternative Name: IP-Adresse oder DNS
Kontrolle der Zertifikate in SSH-Konsole mittels "show vpn cert" und "show vpn ca".

VPN siehe auch:
• VPN zu Android: https://uwe-kernchen.de/phpmyfaq/index.php?solution_id=1120
• VPN Zertifikate erstellen: https://uwe-kernchen.de/phpmyfaq/index.php?solution_id=1393
• Adv.VPN Client für Windows lizenzieren: https://uwe-kernchen.de/phpmyfaq/index.php?solution_id=1376
• VPN über Router hinweg: https://uwe-kernchen.de/phpmyfaq/index.php?solution_id=1111
• Lancom Router: https://uwe-kernchen.de/phpmyfaq/index.php?solution_id=1159
• IPSec erklärt: https://administrator.de/tutorial/ipsec-protokoll-einsatz-aufbau-benoetigte-ports-und-begriffserlaeuterungen-73117.html

VPN IPSec (Client -> LAN) zwischen Android und Lancom Router

Vor der nachfolgenden Erstellung der VPN-Verbindung müssen die » Zertifikate erstellt werden «.

VPN-Verbindung zwischen Lancom Router und Android Client (IPSec IKE.v2 mit Zertifikat)
mit StrongSwan VPN-Client

Lancom-Router:

  • Verschlüsselung: DH28, DH14, kein PFS, AES-CBC-256, AES-CGM-256, SHA-256
  • Authentifizierung: 2x RSA-Signatur, lokale Identität: IPv4-Adresse, entfernte Identität: ASN.1-Distinguished-Name, VPN1, CRL-Check: Ja
    (Variante 2: Authentifizierung: 2x RSA-Signatur, lokale Identität: IPv4-Adresse, entfernte Identität: FQDN (DNS aus Zertifikat und Client-ID), VPN1, CRL-Check: Ja)
  • Verbindungsparameter: Default (30 sek, keine)
  • Gültigkeitsdauer: Default (86.400 sek, 0 kB, 14.400 sek, 2.000.000 kB)
  • Regelerzeugung: Manuell
  • IKE-CFG: Server
  • IPv4-Adress-Pool eintragen

StrongSwan VPN-Client:

  • CA-Zertifikat und Client-Zertifikatskette auf Android übertragen
    (muss als X509v3 Subjekt Alternative Name -> IP des Routers enthalten)
  • CA-Zertifikate: Zertifikat importieren (ca.crt)
  • Verbindungsprotil erstellen
  • Server: IP-Adresse
  • VPN-Typ: IKEv2 Zertifikat
  • Benutzer-Zertifikat: client.pfx
  • CA-Zertifikat: auswäheln -> importiert -> ca.crt
  • Erweitert: Server-Identität ist per Default = Server-IP (passt: X509v3 SAN -> IP)
  • Erweitert: Client-Identität: Identität aus Client-Zertifikat -> Inhaber -> RFC-2253 (CN=... , ggf. gedreht!)
    (Variante 2: Client-Identität: Identität aus Client-Zertifikat -> X509v3 SAN -> DNS)
  • Erweitert: NAT-T Keepalive-Interval: 15
  • Erweitert: RSA/PSS-Signaturen verwenden: on

 

Fehlersuche:

  • SSH Fehlersuche: trace # vpn status  (mit "Cursor-hoch" -> "ENTER" kann man on/off umschalten)
  • trace + vpn - Auswerten mit Putty: Copy-All-To-Clipboard
  • SSH: show vpn long - zeigt VPN-Tunnel Regeln, Verschlüsselung und Einstellungen
  • SSH: show vpn rules- zeigt VPN Security Policies
  • SSH: show vpn sadb - zeigt ausgehandelte SA
  • Trace (LanConfig oder LanMonitor): vpn-debug / vpn-ike / vpn-status  laufen lassen und Verbindung aufbauen

Typischer Fehler:
• DEFAULT-Eintrag in Verbindungsliste bis zum letzten Parameter prüfen!
• im Trace:
Compare: -Received-ID C=de,O=netdesign,CN=tw-pls-tw-client:DER_ASN1_DN != Expected-ID CN=tw-pls-hdf-client,O=netdesign,C=de:DER_ASN1_DN
-> die Geräte drehen die Reihenfolge!

Tip:
• VPN/Allgemein/Flexiber Identitätsvergleich aktivieren
• VPN IKEv1 Default-Parameter: alle 3 Defaults von Gruppe 2 (1024) auf Gruppe 14 (2048) stellen

 

Quellen und Links:

VPN IPSec zwischen Lancom und MikroTik Router

Allgemeines
IPSec IKE v.2 Lan-to-Lan Verbindung mit Preshare.
Der Lancom-Router als Empfänger muß eine feste IP haben und die VPN-Ports müssen beim Router ankommen.
Lancom Router (FW 10.50 RU5)
  • VPN-Verbindung LAN-LAN mit Assistent erstellen (IKEv2, Router als Responder)
  • IPv4 Routing-Tabelle: Route zum Dst.LAN erstellen
  • Firewall: keine Einträge
  • VPN IKEv2 Verbindungsliste:
  • Verschlüsselung: DH-Gruppen: DH14, PFS: nein,
    IKE-SA: AES-CBC-256, Hash-Liste: SHA-256, SHA1,
    Child-SA: AES-CBC-256, AES-GCM-256, Hash-Liste: SHA-256, SHA1
  • Authentifizierung: FQUN, Identität + Passwort
  • Verbindungsparameter: DPD: 30 sek., Encapsulation: keine
  • Gültigkeitsdauer: IKE SA: 108.000 sek, 0 kBytes, Child SA: 28.800 sek, 2.000.000 kBytes
  • IPv4-Regel: Zieladressen einschränken
MikroTik Router (FW 7.8)
  • IP -> IPSec -> Profiles
    neues Profil anlegen, Parameter passend zu Gegenseite
  • IP -> IPSec -> Peers
    neues Peer anlegen, [Gateway-Adresse/32], Profil wie oben, IKE2, Send INITIAL_CONTACT
  • IP -> IPSec -> Identities
    neuer Eintrag, Preshare Key, ID Type (beide Seiten): user fqdn, Match By: remote id
  • IP -> IPSec -> Prosposals
    neuer Eintrag, IKEv2-Prosposals setzen
  • IP -> IPSec -> Policies
    neuer Eintrag, Peer: wie oben, Tunnel anhaken, Src.Netzwerk/24 und Dst.Netzwerk/24, Protocol: 255(all), Action: encrypt, Level: require, IPSec Protocols: esp, Prosposal: wie oben
  • Test - Ergebnis/Verbindung ok:
    IP -> IPSec -> Policies, PH2 State = established
    IP -> IPSec -> Active Peers, State = established, Local- und Remote IP, TX/RX Bytes

  • IP -> Firewall -> NAT darf für VPN-Verbindung nicht maskiert sein! (srcnat für VPN-Quell- und VPN-Zielnetz, action= accept)
  • IP -> Firewall ->Rules: forward-accept für Src.LAN und Dst.LAN
  • Routingtabelle: nicht erforderlich

Lancom VPN Client f.Windows lizenzieren

Lizenz aktivieren

  • Hilfe -> Lizenzinfo und Aktivierung
  • Online aktivieren
  • Lizenzkey und Seriennummer eingeben
  • Onlineaktivierung
  • Erfolgreiche Aktivierung abwarten -> Fertigstellen

Lizenz auf neues Gerät übertragen

  • Hilfe -> Client deaktivieren
  • Assistent zur Deaktivierung ausfüllen
  • Daten an Deaktivierungsserver übertragen
  • E-Mail mit neuem Lizenzschlüssel

VPN-Zertifikate erstellen

Um (zertifikatsbasierende) VPN-Verbindungen herzustellen, benötigt man VPN-Zertifikate für alle Geräte, die von derselben VPN-Zertifizierungsstelle (CA) signiert wurden.
Es empfiehlt sich, die VPN-CA und die VPN-Zertifikate an einem Standort zu verwalten und die VPN-Zertifikate von dort an alle weiteren Standorte/Geräte zu exportieren. Die VPN-CA muß nicht öffentlich vertrauenswürdig sein, sondern stellt nur das Vertrauen für die beteiligten VPN-Gegenstellen dar.

Für VPN-Verbindungen werden drei Zertifikate benötigt.

- 1 Stammzertifikat (root certificate), welches die Maschinenzertifikate beglaubigt (nur öffentlicher Schlüssel) .CRT
- 1 Maschinenzertifikat für den LANCOM-Router (öffentlicher .CRT und privater Schlüssel .PEM)
- 1 Maschinenzertifikat für die Gegenstelle (öffentlicher .CRT und privater Schlüssel .PEM)

Prinzip: https://www.lancom-systems.de/docs/LCOS/Refmanual/DE/topics/aa1120076.html

Jede weitere VPN-Verbindung benötigt ein eigenes Maschinen-Zertifikat, damit der Router den jeweiligen Client identifizieren kann.

Lancom spezifisch:
Die Router-integrierte CA (nur ab VPN-25 Option) sollte man aus Sicherheitsgründen nicht benutzen.
Das Erstellen einer eigenen CA ist vorzuziehen (gilt für alle VPN-Gateways).
Der Assistent zum Erstellen der Zertifikate im Lancom-Router funktioniert nur mit der integrierten CA.

Die Maschinen-Zertifikate werden bei Lancom-Routern mit ihrer Zertifikatskette als PXSC#12 .p12 -Datei in die Container VPN1..VPN9 geladen.
Die Zertifikate werden erst nach einem Neustart aktiviert!
Es ist (bei Lancom) nicht erforderlich, das extern erstellte CA-Zertifikat in den Router zu laden.
Die .PEM Maschinenzertifikate müssen unverschlüsselt ohne Passwort sein. Nur die Zertifikatskette .P12 ist verschlüsselt.
Der jeweilige VPN-Container wird in der VPN-Verbindung ausgewählt.

 

Zum Erstellen der CA + Zertifikate empfiehlt sich das grafische OpenSSL-Tool XCA.
Anleitung siehe:
https://docs.insys-icom.de/pages/de_m3_creating_certificates_xca.html
https://support.lancom-systems.com/knowledge/display/KB/Erstellen+von+X.509-Zertifikaten+mit+der+Anwendung+XCA

Root-CA (Stammzertifikat)
mit XCA erstellen.

Konfiguration:
- keine Leerzeichen oder Sonderzeichen verwenden
- Groß- und Kleinschreibung ist wichtig!
- Description Name und Common Name sollten identisch sein,
  Common-Name muss eindeutig sein
- der Inhalt muß bei den untegeordneten Zertifikaten identisch sein

  • Zertifikate: "Neues Zertifikat"
  • Selbstsigniertes Zertifikat erstellen
  • Signatur algorithmus: SHA 256
  • Vorlage: "[default] CA" (oder eigene Vorlage) -> "Alles übernehmen"
  • Inhaber: Interner Name = commonName
  • Inhaber: countryName: DE, organizationName: FIRMA
  • Inhaber: Privater Schlüssel erstellen: RSA-2048bit
  • Erweiterungen: Typ: Zertifikats Authorität
  • Erweiterungen: Gültigkeit Zeitspanne höher setzen
  • Schlüsselverwendung laut Vorlage, min. "Certificate Sign, CRL Sign"
  • "OK" erstellt CA-Zertifikat
  • Zertifikate: Export -> Öffentl. CA-Zertifikat als PEM (ca.crt)
  • Private Key der CA wird von XCA verwaltet und muß nicht exportiert werden.

 

Geräte-Zertifikate (Server und Client)
mit XCA erstellen.
Es werden 2 Zertifikatspaare (Server und Client) erstellt, die jeweils mit dem CA-Zertifikat beglaubigt sind.

  • Zertifikate: "Neues Zertifikat"
  • Verwende dieses Zertifikat zum Unterschreiben: "CA-Zertifikat" auswählen
  • Signatur algorithmus: SHA 256
  • Vorlage: "[default] TLS_server" (oder eigene Vorlage) -> "Alles übernehmen"
  • Inhaber: Interner Name = commonName : "server" und "client"
  • Inhaber: wie CA
  • Inhaber: Privater Schlüssel erstellen: RSA-2048bit
  • Erweiterungen: Typ: End Instanz
  • Erweiterungen: Gültigkeit Zeitspanne höher setzen
  • Erweiterungen: ggf. X509v3 Subjekt Alternative Name -> Bearbeiten, IP, E-Mail, DNS hinzu fügen (dyn. Clients)
  • Schlüsselverwendung laut Vorlage, min. "Certificate Sign, Non Repudiation, Key Encipherment, Key Agreement" und "TLS-Server" bzw. "TLS-Client"
  • "OK" erstellt CA-Zertifikat
  • unter Inhaber: RFC-2253 steht die Identität für die Gegenstelle
  • Maschinenzertifikat -> Export: PKCS#12 Zertifikatskette exportieren (client.pfx, server.pfx)
  • je nach Gegenstelle ggf. Privaten Schlüssel des Maschienenzertifikats exportieren

Lancom:
Zertifikatsinstallation überprüfen:
show vpn cert
show vpn ca

Lancom Router

  • WebConfig: Extras -> Dateimanagement -> Zertifikat hoch laden -> Typ: VPN-Container (VPN1..9) PKCS#12 (vorhandene CA ersetzen) -> server.pfx laden, Passphrase erforderlich
  • Zertifikate mit SSH prüfen: "show vpn ca" und "show vpn cert"
  • VPN-Verbindung IPSec (ike2) mit Wizard erstellen
  • Lanconfig: VPN -> IKEv2 -> Authentifizierung -> Verbindung editieren
  • Authentifizierung lokal / entfernt = RSA Signatur
  • Identitätstyp = ASN.1-Distinguished-Name
  • ID lokal/entfernt= jeweils Name im RFC Format, der unter xca -> Inhaber -> RFC2253 steht (CN=netdesign-client,O=netdesign,C=de)
  • Lokales Zertifikat = Container (VPN1) auswählen

Besonderheiten bei Clients mit dynam. IP:

  • Lanconfig: VPN -> IKEv2 -> IPv4-Adressen: IP-Pool festlegen
  • VPN -> IKEv2 -> Verbindungsliste: IPv4-Adress-Pool auswählen
  • VPN -> IKEv2 -> Verbindungsliste: IKE-CFG-Mode= Server
  • bei IOS werden "FQDN" statt "ASN.1.." verwendet
  • ggf. muss das Server-Zertifikat (Lancom Router) die Eigenschaft "X509v3 Subject Alternative Name" besitzen im Format DNS oder IP,
    Inhalt ist dann die WAN IP / Domain Name von Gegenüber.
  • Das Maschinenzertifikat des LANCOM-Routers (VPN-Server) muss den "Common Name" ("CN=") des LANCOM-Routers ausweisen.
    Das Maschinenzertifikat des VPN-Clients bzw. Endpunkt muss den "Common Name" ("CN=") des VPN-Clients bzw. -Endpunktes ausweisen.
  • Fehlermeldungen abarbeiten (in der Regel sowas wie Remote ID doesnt match != ..)
  • Im Internet nachlesen, was der jeweilige Client zwingend benötigt, meist irgendwas am Zertifikat.
    Logmeldungen im Client abarbeiten

Fehlersuche:

  • SSH Fehlersuche: trace # vpn status  (mit "Cursor-hoch" -> "ENTER" kann man on/off umschalten)
  • trace + vpn - Auswerten mit Putty: Copy-All-To-Clipboard
  • SSH: show vpn long - zeigt VPN-Tunnel Regeln, Verschlüsselung und Einstellungen
  • SSH: show vpn rules- zeigt VPN Security Policies
  • SSH: show vpn sadb - zeigt ausgehandelte SA
  • Trace (LanConfig oder LanMonitor): vpn-debug / vpn-ike / vpn-status  laufen lassen und Verbindung aufbauen

Danke an Dr.Einstein: https://www.lancom-forum.de/viewtopic.php?p=110121#p110121

Wenn die Zertifikate erstellt sind, werden die VPN-Verbindungen konfiguriert.


Quellen und Links:

von Uwe Backend-Admin

Kommentare

Einen Kommentar schreiben

Bitte rechnen Sie 2 plus 3.