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.
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:
- SSL-Zertifikate (SSH - RSA-Schlüssel) nach Firmware-Aktualisierung neu erstellen
Ab LCOS 10.20 wurde die minimale Schlüssellänge (Min-Hostkey-Length) auf 2048 Bit angehoben und veraltete Verschlüsselungs- und Signatur-Algorithmen werden im Standard nicht mehr angeboten. (Default: AES256, SHA256, DH14)
https://support.lancom-systems.com/knowledge/pages/viewpage.action?pageId=36458346 - SSL VPN-Zertifikate auf R&S Firewall erstellen: https://support.lancom-systems.com/knowledge/pages/viewpage.action?pageId=42108821
- zertifikatsbasierte VPN-Verbindung zwischen 2 Lancom Routern
https://support.lancom-systems.com/knowledge/display/KB/Konfiguration+einer+zertifikatsbasierten+IKEv2+VPN-Verbindung+zwischen+zwei+LANCOM+Routern - gute Universalanleitung: VPN Client -> Router alle Geräte: https://administrator.de/tutorial/ipsec-vpn-fuer-mobile-benutzer-auf-der-pfsense-oder-opnsense-firewall-einrichten-337198.html
- Konfiguration einer Active Directory Anbindung mit IKEv2-EAP (RADIUS) und einem LANCOM Router
https://support.lancom-systems.com/knowledge/display/KB/Konfiguration+einer+Active+Directory+Anbindung+mit+IKEv2-EAP+und+einem+LANCOM+Router - allg. Zertifikatstypen: https://serverfault.com/questions/9708/what-is-a-pem-file-and-how-does-it-differ-from-other-openssl-generated-key-file