<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=OPNsense_-_IPsec_Road_Warrior_mit_IKEv2</id>
	<title>OPNsense - IPsec Road Warrior mit IKEv2 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://techcorner.max-it.de/index.php?action=history&amp;feed=atom&amp;title=OPNsense_-_IPsec_Road_Warrior_mit_IKEv2"/>
	<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=OPNsense_-_IPsec_Road_Warrior_mit_IKEv2&amp;action=history"/>
	<updated>2026-10-11T11:22:45Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in maxTechCorner</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://techcorner.max-it.de/index.php?title=OPNsense_-_IPsec_Road_Warrior_mit_IKEv2&amp;diff=4125&amp;oldid=prev</id>
		<title>imported&gt;TechCorner-Redaktion: Verlinkung auf den Artikel OPNsense - NAT und Portweiterleitungen ergänzt</title>
		<link rel="alternate" type="text/html" href="https://techcorner.max-it.de/index.php?title=OPNsense_-_IPsec_Road_Warrior_mit_IKEv2&amp;diff=4125&amp;oldid=prev"/>
		<updated>2026-10-08T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;Verlinkung auf den Artikel OPNsense - NAT und Portweiterleitungen ergänzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Steckbrief&lt;br /&gt;
| gilt_fuer   = OPNsense 26.1 und 26.7 (VPN → IPsec → Connections, Pools), IKEv2, Clients unter Windows, macOS, iOS, Android und Linux&lt;br /&gt;
| bereich     = IT-Security&lt;br /&gt;
| dauer       = ca. 45 Minuten (Server mit EAP-MSCHAPv2), ca. 15 Minuten je Client-Plattform&lt;br /&gt;
| rechte      = Administrator (OPNsense-WebUI), Zugriff auf den öffentlichen DNS&lt;br /&gt;
| stand       = Oktober 2026 (OPNsense 26.7.5)&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;IPsec Road Warrior auf OPNsense&amp;#039;&amp;#039;&amp;#039; bindet Notebooks und Smartphones per &amp;#039;&amp;#039;&amp;#039;IKEv2&amp;#039;&amp;#039;&amp;#039; an das Firmennetz an – ohne zusätzliche Software, denn Windows, macOS, iOS und Android bringen IKEv2-Clients bereits mit. Der Server authentisiert sich mit einem Zertifikat, die Benutzer per Benutzername und Passwort (EAP-MSCHAPv2), per RADIUS mit Anbindung an Active Directory (EAP-RADIUS) oder mit eigenem Client-Zertifikat (EAP-TLS). Die Adressen werden aus einem &amp;#039;&amp;#039;&amp;#039;Pool&amp;#039;&amp;#039;&amp;#039; vergeben, DNS-Server direkt mitgeliefert.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel zeigt die Einrichtung mit der aktuellen Connections-Oberfläche (Stand OPNsense 26.7): Voraussetzungen, Server mit EAP-MSCHAPv2 (gemeinsamer Pool oder feste Adresse je Benutzer), Firewall, NAT und DNS, die Alternativen EAP-RADIUS und EAP-TLS sowie die Einrichtung der Clients und die Fehlersuche.&lt;br /&gt;
&lt;br /&gt;
== IPsec Road Warrior, OpenVPN oder WireGuard? ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kriterium !! IPsec IKEv2 !! [[OPNsense - OpenVPN Site-to-Site und Client-VPN|OpenVPN]] !! [[OPNsense - WireGuard Site-to-Site und Road Warrior|WireGuard]]&lt;br /&gt;
|-&lt;br /&gt;
| Client-Software || &amp;#039;&amp;#039;&amp;#039;in allen Betriebssystemen eingebaut&amp;#039;&amp;#039;&amp;#039; || OpenVPN-Client nötig || WireGuard-App nötig&lt;br /&gt;
|-&lt;br /&gt;
| Benutzeranmeldung || EAP-MSCHAPv2 (lokal oder per RADIUS), Zertifikat; MFA nur eingeschränkt (Push) || LDAP, RADIUS, TOTP, Zertifikat || nur Schlüssel pro Gerät&lt;br /&gt;
|-&lt;br /&gt;
| Roaming (WLAN ↔ Mobilfunk) || sehr gut (MOBIKE) || Neuverbindung || sehr gut&lt;br /&gt;
|-&lt;br /&gt;
| Typischer Einsatz || verwaltete Geräte ohne Zusatzsoftware, Smartphones || Benutzer-VPN mit integrierter MFA || einfache, schnelle Geräte-VPNs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Datei:OPNsense-IPsec-Road-Warrior.png|thumb|center|750px|IPsec Road Warrior auf der OPNsense: Clients verbinden sich per IKEv2 über UDP 500/4500 mit vpn1.example.com; der Server weist sich per Zertifikat aus, Benutzer melden sich per EAP-MSCHAPv2, EAP-RADIUS oder EAP-TLS an und erhalten eine Adresse aus dem Pool 172.16.203.0/24 samt DNS-Server.]]&lt;br /&gt;
&lt;br /&gt;
== Beispiel und Voraussetzungen ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Element !! Wert&lt;br /&gt;
|-&lt;br /&gt;
| Öffentlicher Name || &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt; → WAN-Adresse &amp;lt;code&amp;gt;203.0.113.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| LAN || &amp;lt;code&amp;gt;192.168.1.0/24&amp;lt;/code&amp;gt; (Firewall &amp;lt;code&amp;gt;192.168.1.1&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Pool für die Clients || &amp;lt;code&amp;gt;172.16.203.0/24&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;DNS:&amp;#039;&amp;#039;&amp;#039; A-Eintrag (und ggf. AAAA) für &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt; beim DNS-Anbieter.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Zertifikate&amp;#039;&amp;#039;&amp;#039; unter &amp;#039;&amp;#039;System → Trust&amp;#039;&amp;#039;: eine eigene CA (z. B. &amp;#039;&amp;#039;IPsec CA&amp;#039;&amp;#039;) und ein &amp;#039;&amp;#039;&amp;#039;Server-Zertifikat&amp;#039;&amp;#039;&amp;#039; für &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt; mit diesem Namen als Subject Alternative Name. Die CA muss später auf den Clients installiert werden. Alternativ ein öffentlich vertrauenswürdiges Zertifikat über den [[OPNsense - ACME-Client für Let&amp;#039;s Encrypt-Zertifikate|ACME-Client]] – dann entfällt in der Regel die Verteilung der CA.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Firewall-Regel&amp;#039;&amp;#039;&amp;#039; auf dem WAN (&amp;#039;&amp;#039;Firewall → Rules&amp;#039;&amp;#039;): &amp;#039;&amp;#039;Pass, UDP, Quelle any, Ziel WAN-Adresse bzw. Alias für vpn1.example.com, Ports 500 und 4500&amp;#039;&amp;#039;. Da Road Warrior mit UDP-Kapselung arbeiten, ist keine Regel für ESP nötig.&lt;br /&gt;
&lt;br /&gt;
== Server mit EAP-MSCHAPv2 ==&lt;br /&gt;
EAP-MSCHAPv2 ist die universellste Variante: Der Server weist sich per Zertifikat aus, die Benutzer per Benutzername und Passwort. Die OPNsense-Dokumentation beschreibt zwei Methoden – nur &amp;#039;&amp;#039;&amp;#039;eine&amp;#039;&amp;#039;&amp;#039; davon verwenden:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Methode !! Vorteil !! Nachteil&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;1: Gemeinsamer Pool&amp;#039;&amp;#039;&amp;#039; (EAP Id &amp;lt;code&amp;gt;%any&amp;lt;/code&amp;gt;) || einfach, funktioniert mit praktisch allen Clients (auch dem Windows-Client) || alle Benutzer im selben Netz, keine individuellen Regeln&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;2: Feste Adresse je Benutzer&amp;#039;&amp;#039;&amp;#039; (eigene Connection und Pool je Benutzer) || individuelle Firewall-Regeln pro Benutzer || mehr Aufwand; der eingebaute Windows-Client erwartet &amp;lt;code&amp;gt;%any&amp;lt;/code&amp;gt; und funktioniert damit nicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Schritt 1: Pools ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Connections&amp;#039;&amp;#039;&amp;#039;, Bereich &amp;#039;&amp;#039;&amp;#039;Pools&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Name:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;pool-roadwarrior-ipv4&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Network:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;172.16.203.0/24&amp;lt;/code&amp;gt;, &amp;#039;&amp;#039;&amp;#039;DNS:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;192.168.1.1&amp;lt;/code&amp;gt; (Unbound auf der Firewall)&lt;br /&gt;
* optional IPv6: &amp;#039;&amp;#039;pool-roadwarrior-ipv6&amp;#039;&amp;#039; mit z. B. &amp;lt;code&amp;gt;2001:db8:1234:ec::/120&amp;lt;/code&amp;gt; (strongSwan-Pools höchstens &amp;lt;code&amp;gt;/97&amp;lt;/code&amp;gt;)&lt;br /&gt;
Für Methode 2 stattdessen je Benutzer einen Pool mit einer Adresse (&amp;lt;code&amp;gt;172.16.203.1/32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;172.16.203.2/32&amp;lt;/code&amp;gt; …).&lt;br /&gt;
&lt;br /&gt;
=== Schritt 2: Benutzer (EAP-Schlüssel) ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Pre-Shared Keys&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; je Benutzer:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Local Identifier:&amp;#039;&amp;#039;&amp;#039; Benutzername, z. B. &amp;lt;code&amp;gt;mueller@vpn1.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Remote Identifier:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt; (für den eingebauten Android-Client nötig; bei Problemen leer lassen)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pre-Shared Key:&amp;#039;&amp;#039;&amp;#039; das Passwort des Benutzers – lang und zufällig&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type:&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;EAP&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Schritt 3: Connection ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Connections&amp;#039;&amp;#039;&amp;#039;: unten &amp;#039;&amp;#039;&amp;#039;Enable IPsec&amp;#039;&amp;#039;&amp;#039; anhaken und anwenden, dann &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039; (erweiterter Modus):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feld !! Wert&lt;br /&gt;
|-&lt;br /&gt;
| Proposals || &amp;lt;code&amp;gt;aes256-sha256-modp2048&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;default&amp;#039;&amp;#039; entfernen) – auf die Clients abstimmen&lt;br /&gt;
|-&lt;br /&gt;
| Version || IKEv2&lt;br /&gt;
|-&lt;br /&gt;
| Local addresses || &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UDP encapsulation || aktiv&lt;br /&gt;
|-&lt;br /&gt;
| Rekey time || &amp;lt;code&amp;gt;2400&amp;lt;/code&amp;gt;; beim eingebauten Windows-Client &amp;lt;code&amp;gt;86400&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| DPD delay || 30&lt;br /&gt;
|-&lt;br /&gt;
| Pools || &amp;#039;&amp;#039;pool-roadwarrior-ipv4&amp;#039;&amp;#039; (und &amp;#039;&amp;#039;-ipv6&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
| Send certificate || Always&lt;br /&gt;
|-&lt;br /&gt;
| Keyingtries || 0&lt;br /&gt;
|}&lt;br /&gt;
Speichern, dann:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Local Authentication:&amp;#039;&amp;#039;&amp;#039; Authentication &amp;#039;&amp;#039;Public Key&amp;#039;&amp;#039;, Id &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt;, Certificates = Server-Zertifikat&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Remote Authentication:&amp;#039;&amp;#039;&amp;#039; Authentication &amp;#039;&amp;#039;EAP-MSCHAPv2&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;EAP Id&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;%any&amp;lt;/code&amp;gt; (Methode 2: der jeweilige Benutzername)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Children&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;: Start action &amp;#039;&amp;#039;None&amp;#039;&amp;#039;, ESP proposals &amp;lt;code&amp;gt;aes256-sha256-modp2048&amp;lt;/code&amp;gt;, &amp;#039;&amp;#039;&amp;#039;Local&amp;#039;&amp;#039;&amp;#039; = freigegebene Netze, Rekey time &amp;lt;code&amp;gt;600&amp;lt;/code&amp;gt; (Windows-Client: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Split Tunnel&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Full Tunnel&amp;#039;&amp;#039;&amp;#039; entscheidet das Feld &amp;#039;&amp;#039;Local&amp;#039;&amp;#039; im Child: &amp;lt;code&amp;gt;192.168.1.0/24&amp;lt;/code&amp;gt; leitet nur das Firmennetz durch den Tunnel, &amp;lt;code&amp;gt;0.0.0.0/0&amp;lt;/code&amp;gt; (und &amp;lt;code&amp;gt;::/0&amp;lt;/code&amp;gt;) den gesamten Verkehr. Ein Full Tunnel ist sicherer, weil kein Verkehr am Tunnel vorbei läuft – vor allem bei Dual-Stack-Netzen.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Nur &amp;#039;&amp;#039;&amp;#039;eine&amp;#039;&amp;#039;&amp;#039; Connection mit &amp;#039;&amp;#039;EAP Id %any&amp;#039;&amp;#039; anlegen. Mehrere davon würden es jedem Benutzer erlauben, sich an jeder dieser Connections anzumelden.}}&lt;br /&gt;
&lt;br /&gt;
== Firewall, NAT und DNS ==&lt;br /&gt;
=== Regeln auf der IPsec-Schnittstelle ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Firewall → Rules&amp;#039;&amp;#039;&amp;#039;, Interface &amp;#039;&amp;#039;&amp;#039;IPsec&amp;#039;&amp;#039;&amp;#039; (Reihenfolge beachten):&lt;br /&gt;
# ICMP von den Clients zur Firewall (Fehlersuche).&lt;br /&gt;
# Zugriff des Pools (Alias &amp;#039;&amp;#039;net_pool_roadwarrior&amp;#039;&amp;#039;) auf die benötigten Ziele, z. B. &amp;#039;&amp;#039;LAN net&amp;#039;&amp;#039; – bei Methode 2 je Benutzer-Alias eigene Regeln.&lt;br /&gt;
# Bei Full Tunnel Internetzugriff: Ziel = Alias mit den privaten Netzen, &amp;#039;&amp;#039;&amp;#039;invertiert&amp;#039;&amp;#039;&amp;#039; – nicht &amp;#039;&amp;#039;any&amp;#039;&amp;#039;, da &amp;#039;&amp;#039;any&amp;#039;&amp;#039; auch alle lokal angeschlossenen Netze umfasst.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Benutzerrechte begrenzen:&amp;#039;&amp;#039;&amp;#039; Statt dem ganzen Pool das ganze LAN zu öffnen, die Ziele auf benötigte Server und Ports beschränken.&lt;br /&gt;
&lt;br /&gt;
=== Source NAT ===&lt;br /&gt;
Für den Internetzugriff im Full Tunnel unter &amp;#039;&amp;#039;&amp;#039;Firewall → NAT → Source NAT&amp;#039;&amp;#039;&amp;#039; (Modus &amp;#039;&amp;#039;Hybrid&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Manual&amp;#039;&amp;#039;, siehe [[OPNsense - NAT und Portweiterleitungen|NAT in OPNsense]]): &amp;#039;&amp;#039;Interface WAN, Quelle Pool-Netz, Übersetzung WAN address&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
Den Clients per Pool einen internen DNS-Server mitgeben (z. B. [[OPNsense - Unbound DNS Resolver|Unbound]] auf der Firewall) und das Pool-Netz in den Access Lists von Unbound erlauben. Interne Zonen wie die Active-Directory-Domain per Query Forwarding an die Domain Controller. Bei einem reinen IPv4-Full-Tunnel in Dual-Stack-Netzen bevorzugen Clients sonst unter Umständen IPv6-DNS-Server des lokalen Netzes (DNS-Leak).&lt;br /&gt;
&lt;br /&gt;
== Alternative Anmeldeverfahren ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Verfahren !! Remote Authentication !! Einsatz&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;EAP-MSCHAPv2&amp;#039;&amp;#039;&amp;#039; || Benutzer und Passwörter unter &amp;#039;&amp;#039;Pre-Shared Keys&amp;#039;&amp;#039; (Typ EAP) || kleine Umgebungen, universell&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;EAP-RADIUS&amp;#039;&amp;#039;&amp;#039; || Benutzer werden per RADIUS geprüft || Active Directory (z. B. über Microsoft NPS oder FreeRADIUS), Gruppensteuerung; MFA nur per Push-Verfahren (siehe unten)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;EAP-TLS&amp;#039;&amp;#039;&amp;#039; || Client-Zertifikat je Gerät oder Benutzer || verwaltete Geräte, keine Passwörter; Zertifikate unter &amp;#039;&amp;#039;System → Trust&amp;#039;&amp;#039; ausstellen und sperren&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Public Key&amp;#039;&amp;#039;&amp;#039; || Zertifikat direkt im IKEv2-Austausch || Geräte- bzw. strongSwan-Clients&lt;br /&gt;
|-&lt;br /&gt;
| Xauth PAM || nur IKEv1 || Altlösungen – für neue Installationen nicht verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== EAP-RADIUS einrichten ===&lt;br /&gt;
# RADIUS-Server unter &amp;#039;&amp;#039;&amp;#039;System → Access → Servers&amp;#039;&amp;#039;&amp;#039; anlegen (Typ &amp;#039;&amp;#039;Radius&amp;#039;&amp;#039;, Shared Secret, ausreichendes Timeout – bei Push-Bestätigungen z. B. 30 Sekunden).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Mobile &amp;amp; Advanced Settings&amp;#039;&amp;#039;&amp;#039;: im RADIUS-Bereich den Server unter &amp;#039;&amp;#039;&amp;#039;Servers&amp;#039;&amp;#039;&amp;#039; auswählen; optional &amp;#039;&amp;#039;&amp;#039;Accounting&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Group selection (class_group)&amp;#039;&amp;#039;&amp;#039; für Gruppenrechte.&lt;br /&gt;
# In der Connection unter Remote Authentication &amp;#039;&amp;#039;EAP RADIUS&amp;#039;&amp;#039; mit &amp;#039;&amp;#039;EAP Id&amp;#039;&amp;#039; &amp;lt;code&amp;gt;%any&amp;lt;/code&amp;gt; wählen.&lt;br /&gt;
# Auf dem RADIUS-Server die OPNsense als Client eintragen und EAP-MSCHAPv2 (bzw. das vom Client genutzte EAP-Verfahren) zulassen.&lt;br /&gt;
So werden Benutzer zentral im Verzeichnis gepflegt, etwa über Microsoft NPS oder [[OPNsense - FreeRADIUS für WLAN, 802.1X und VPN|FreeRADIUS]].&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&amp;#039;&amp;#039;&amp;#039;MFA mit EAP-RADIUS:&amp;#039;&amp;#039;&amp;#039; Die Clients melden sich per EAP-MSCHAPv2 an, und die OPNsense reicht dieses Verfahren an den RADIUS-Server weiter. MSCHAPv2 ist ein Challenge-Response-Verfahren, das das Passwort nicht im Klartext überträgt – ein an das Passwort angehängtes &amp;#039;&amp;#039;&amp;#039;Einmalpasswort&amp;#039;&amp;#039;&amp;#039; (OTP), wie es z. B. [[PrivacyIDEA – Open-Source-Mehr-Faktor-Authentifizierung|privacyIDEA]] per RADIUS prüft, funktioniert damit nicht. Möglich ist ein zweiter Faktor nur, wenn der RADIUS-Server ihn außerhalb des Passworts abfragt, etwa per &amp;#039;&amp;#039;&amp;#039;Push-Bestätigung&amp;#039;&amp;#039;&amp;#039; auf dem Smartphone; das RADIUS-Timeout muss dafür ausreichend lang sein. Wer Einmalpasswörter einsetzen möchte, nutzt für das Client-VPN [[OPNsense - OpenVPN Site-to-Site und Client-VPN|OpenVPN mit TOTP oder RADIUS]] oder für IPsec EAP-TLS mit Gerätezertifikaten.}}&lt;br /&gt;
&lt;br /&gt;
=== EAP-TLS einrichten ===&lt;br /&gt;
Für jeden Benutzer bzw. jedes Gerät unter &amp;#039;&amp;#039;System → Trust → Certificates&amp;#039;&amp;#039; ein Client-Zertifikat der IPsec-CA ausstellen (als PKCS#12 mit Passwort exportieren). In der Connection Remote Authentication &amp;#039;&amp;#039;EAP TLS&amp;#039;&amp;#039; wählen und unter &amp;#039;&amp;#039;&amp;#039;Certificate Authorities&amp;#039;&amp;#039;&amp;#039; die IPsec-CA. Verlorene Geräte werden über die Sperrliste (&amp;#039;&amp;#039;System → Trust → Revocation&amp;#039;&amp;#039;) ausgeschlossen.&lt;br /&gt;
&lt;br /&gt;
== Clients einrichten ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Plattform !! Einrichtung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Windows 10/11&amp;#039;&amp;#039;&amp;#039; || CA in den Speicher &amp;#039;&amp;#039;Vertrauenswürdige Stammzertifizierungsstellen&amp;#039;&amp;#039; des &amp;#039;&amp;#039;&amp;#039;Computers&amp;#039;&amp;#039;&amp;#039; importieren. VPN-Verbindung „IKEv2“ mit Server &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt;, Anmeldung mit Benutzername/Passwort (EAP-MSCHAPv2). Die Standard-Algorithmen von Windows sind schwach – per PowerShell anpassen, z. B. &amp;lt;code&amp;gt;Set-VpnConnectionIPsecConfiguration -ConnectionName &amp;quot;Firma&amp;quot; -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -DHGroup Group14 -PfsGroup PFS2048&amp;lt;/code&amp;gt; (passend zu &amp;lt;code&amp;gt;aes256-sha256-modp2048&amp;lt;/code&amp;gt;). Rekey-Werte der Connection wie oben für Windows setzen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;macOS / iOS&amp;#039;&amp;#039;&amp;#039; || CA als Profil installieren und vertrauen; VPN-Typ &amp;#039;&amp;#039;IKEv2&amp;#039;&amp;#039;, Server und &amp;#039;&amp;#039;&amp;#039;Entfernte ID&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt;, Benutzerauthentifizierung &amp;#039;&amp;#039;Benutzername&amp;#039;&amp;#039;. Für viele Geräte ein Konfigurationsprofil (MDM) verteilen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Android&amp;#039;&amp;#039;&amp;#039; || eingebauter Typ &amp;#039;&amp;#039;IKEv2/IPSec MSCHAPv2&amp;#039;&amp;#039; mit Server-Kennung &amp;lt;code&amp;gt;vpn1.example.com&amp;lt;/code&amp;gt; und CA, oder die App &amp;#039;&amp;#039;strongSwan VPN Client&amp;#039;&amp;#039; (ausführliche Protokolle zur Fehlersuche).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Linux&amp;#039;&amp;#039;&amp;#039; || NetworkManager mit dem strongSwan-Plugin (EAP) oder direkt strongSwan/swanctl.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Status und Fehlersuche ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Status Overview&amp;#039;&amp;#039;&amp;#039; – verbundene Benutzer und Tunnel; &amp;#039;&amp;#039;&amp;#039;Lease Status&amp;#039;&amp;#039;&amp;#039; – vergebene Pool-Adressen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;VPN → IPsec → Log File&amp;#039;&amp;#039;&amp;#039; – Fehlermeldungen beim Verbindungsaufbau; für Details unter &amp;#039;&amp;#039;Mobile &amp;amp; Advanced Settings&amp;#039;&amp;#039; die Log Level einzelner Bereiche (z. B. IKE, Configuration) erhöhen.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Symptom !! Ursache und Lösung&lt;br /&gt;
|-&lt;br /&gt;
| Keine Pakete im Log || WAN-Regel für UDP 500/4500 fehlt, falscher DNS-Eintrag oder Netz des Clients blockiert IPsec – mit &amp;#039;&amp;#039;tcpdump&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;Interfaces → Diagnostics → Packet Capture&amp;#039;&amp;#039; prüfen. Bei der allerersten Connection &amp;#039;&amp;#039;Enable IPsec&amp;#039;&amp;#039; nicht vergessen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;no matching proposal&amp;#039;&amp;#039; || Proposals von Client und Server passen nicht – Windows-Algorithmen per PowerShell setzen bzw. Proposal angleichen.&lt;br /&gt;
|-&lt;br /&gt;
| Zertifikatsfehler (z. B. Windows Fehler 13801) || CA auf dem Client nicht vertrauenswürdig, falscher Speicher (Benutzer statt Computer) oder Name nicht im Subject Alternative Name des Server-Zertifikats.&lt;br /&gt;
|-&lt;br /&gt;
| Anmeldung schlägt fehl (&amp;#039;&amp;#039;EAP authentication failed&amp;#039;&amp;#039;) || Benutzername/Passwort falsch, Typ des Schlüssels nicht &amp;#039;&amp;#039;EAP&amp;#039;&amp;#039;, RADIUS-Server antwortet nicht oder lehnt ab.&lt;br /&gt;
|-&lt;br /&gt;
| Verbunden, aber kein Zugriff || Firewall-Regel auf der IPsec-Schnittstelle fehlt oder &amp;#039;&amp;#039;Local&amp;#039;&amp;#039; im Child enthält das Zielnetz nicht.&lt;br /&gt;
|-&lt;br /&gt;
| Full Tunnel ohne Internet || Source-NAT-Regel für das Pool-Netz fehlt.&lt;br /&gt;
|-&lt;br /&gt;
| Interne Namen werden nicht aufgelöst || DNS im Pool fehlt, Unbound-ACL für das Pool-Netz fehlt oder Client nutzt fremde (IPv6-)DNS-Server.&lt;br /&gt;
|-&lt;br /&gt;
| Verbindung bricht nach einiger Zeit ab || Rekey-Einstellungen nicht auf den Client abgestimmt (Windows: 86400/0).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sicherheitsempfehlungen ==&lt;br /&gt;
* Starke Proposals (AES-256, SHA-256, DH-Gruppe 14 oder höher bzw. elliptische Kurven), &amp;#039;&amp;#039;default&amp;#039;&amp;#039; entfernen.&lt;br /&gt;
* Bevorzugt &amp;#039;&amp;#039;&amp;#039;EAP-TLS&amp;#039;&amp;#039;&amp;#039; (Gerätezertifikate) oder &amp;#039;&amp;#039;&amp;#039;EAP-RADIUS&amp;#039;&amp;#039;&amp;#039; mit zentraler Benutzerverwaltung statt lokaler Passwörter; lokale EAP-Passwörter lang und zufällig wählen.&lt;br /&gt;
* Zugriffsrechte auf der IPsec-Schnittstelle so eng wie möglich; mit Methode 2 bzw. RADIUS-Gruppen unterschiedliche Rechte pro Benutzergruppe.&lt;br /&gt;
* Full Tunnel für unverwaltete Netze (Hotel, öffentliches WLAN).&lt;br /&gt;
* Anmeldungen und Fehlversuche aus dem IPsec-Log an ein SIEM übertragen, z. B. mit dem [[OPNsense - Wazuh-Agent|Wazuh-Agent]].&lt;br /&gt;
* Im HA-Cluster die CARP-Adresse des WAN als &amp;#039;&amp;#039;Local address&amp;#039;&amp;#039; bzw. als DNS-Ziel verwenden – siehe [[OPNsense - Hochverfügbarkeit mit CARP und pfsync]].&lt;br /&gt;
&lt;br /&gt;
== Fazit ==&lt;br /&gt;
IPsec IKEv2 ist auf OPNsense die naheliegende Wahl für Road Warrior, wenn keine zusätzliche Client-Software verteilt werden soll: Windows, macOS, iOS und Android verbinden sich mit Bordmitteln, MOBIKE sorgt für stabiles Roaming, mit EAP-RADIUS lässt sich Active Directory anbinden, und EAP-TLS sichert verwaltete Geräte ohne Passwörter ab. Für Einmalpasswörter ist OpenVPN die bessere Wahl. Entscheidend sind ein sauberes Server-Zertifikat, abgestimmte Proposals für die Clients, eine Connection mit Pool sowie Firewall-, NAT- und DNS-Einstellungen für das Pool-Netz.&lt;br /&gt;
&lt;br /&gt;
== Unterstützung von m.a.x. it ==&lt;br /&gt;
Sie möchten mobile Mitarbeitende per IPsec, OpenVPN oder WireGuard anbinden und dabei Active Directory und MFA integrieren? m.a.x. it unterstützt Sie als OPNsense-Gold-Partner mit [https://www.max-it.de/it-services/opnsense/ OPNsense-Firewall-Services von m.a.x. it] und einer [https://www.max-it.de/it-services/managed-firewall/ Managed Firewall von m.a.x. it].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[OPNsense - NAT und Portweiterleitungen]]&lt;br /&gt;
* [[OPNsense - IPsec Site-to-Site policy-based]]&lt;br /&gt;
* [[OPNsense - IPsec Site-to-Site route-based]]&lt;br /&gt;
* [[OPNsense - OpenVPN Site-to-Site und Client-VPN]]&lt;br /&gt;
* [[OPNsense - WireGuard Site-to-Site und Road Warrior]]&lt;br /&gt;
* [[VPN Techniken für das Homeoffice]]&lt;br /&gt;
* [[IPsec]]&lt;br /&gt;
* [[OPNsense - ACME-Client für Let&amp;#039;s Encrypt-Zertifikate]]&lt;br /&gt;
* [[OPNsense - Unbound DNS Resolver]]&lt;br /&gt;
&lt;br /&gt;
== Links und Quellen ==&lt;br /&gt;
* [https://docs.opnsense.org/manual/how-tos/ipsec-swanctl-rw-ikev2-eap-mschapv2.html OPNsense-Doku – IPsec Roadwarriors IKEv2]&lt;br /&gt;
* [https://docs.opnsense.org/manual/vpnet.html OPNsense-Doku – Virtual Private Networking]&lt;br /&gt;
* [https://docs.strongswan.org/docs/latest/interop/windowsClients.html strongSwan – Windows-Clients]&lt;br /&gt;
* [https://www.max-it.de/it-services/opnsense/ m.a.x. it – OPNsense-Firewall-Services]&lt;br /&gt;
&lt;br /&gt;
{{Uebermax}}&lt;br /&gt;
[[Kategorie:IT-Security]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;TechCorner-Redaktion</name></author>
	</entry>
</feed>