Um von einem fernen Arbeitsplatz aus auf das eigene Netzwerk zuzugreifen, können Sie auf der OPNsense-Firewall verschiedene Verfahren nutzen. Hier wird Ihnen eine Verbindungskonfiguration mit IPsec erklärt, weitere Möglichkeiten sind OPNsense mit Wireguard oder OPNsense mit OpenVPN.
Damit über IPsec die Konfiguration erfolgen kann, benötigt die Firewall ein Zertifikat, sowie Benutzer mit entsprechende Berechtigung.
Im ersten Bild sehen Sie die angenommene Situation.

Wir nehmen an, Ihr Netzwerk hat den IP-Range 192.168.120.0 und Ihre Public IP ist 19.19.19.19 (es geht auch dynamisch) und eventuell haben Sie dazu einen passenden Domain-Namen, wir nehmen ipsec.beispiel.ch
Für die zugreifenden Clients müssen wir einen IP-Adressbereich nehmen, der nichts mit Ihrem Netzwerk zu tun hat. In unserem Beispiel verwenden wir die Adresse 172.16.203.0/24.
Zertifikat erstellen
- Öffnen Sie in OPNsense den Menüpunkt System, Trust und Authorities
- klicken Sie auf das "+" um ein leeres Bild für die Authority-Infos zu erhalten

- Bei Method wählen Sie Create an internal Certificate Authority, bei Description wählen Sie einen selbstsprechenden Namen, den Sie auch gleich bei Common Name einsetzen. In unserem Beispiel Beispiel IPsec CA
- Bei Lifetime (days) geben wir als Beispiel 3650 ein, damit wir nicht sofort ein abgelaufenes Zertifikat haben.
- Ergänzen Sie die restlichen Felder nach belieben.
- Klicken Sie zum Schluss auf Save.
- In der Übersicht laden Sie dieses Zertifikat als Certificate herunter. Es wird für die Client-Installation benötigt.
- Wechseln Sie nun zum Menüpunkt System, Trust und Certificates
- klicken Sie auf das "+" um ein leeres Bild für Die Zertifikats-Infos zu erhalten.

- Bei Method wählen Sie Create an internal Certificate. Bei Description, Common Name und DNS domain names müssen Sie unbedingt den URL-Namen der externen IP-Adresse angeben. In unserem Beispiel ist dies ipsec.beispiel.ch.
- Bei Type wählen Sie Server Certificate aus und bei Issuer wählen Sie die zuvor erstellte Certificate Authority aus. In unserem Beispiel war das IPsec CA.
- Bei Lifetime (days) geben wir dieselben Anzahl Tage ein, wie bei Certificate Authority . In unserem Beispiel 3650.
- Ergänzen Sie die restlichen Felder nach belieben.
- Klicken Sie zum Schluss auf Save.
- Laden Sie dieses Zertifikat ebenfalls als Certificate herunter. Auch dieses wird für die Client-Installation benötigt.
User erfassen/erstellen/mutieren
- Öffnen Sie in OPNsense den Menüpunkt VPN, IPsec und Pre-Shared Keys
- Klicken Sie auf das "+" um einen neuen Benutzer zu erfassen

- Bei Local Identifier vergeben Sie den Anmeldenamen und bei Pre-Shared Key geben Sie das Passwort ein.
- Bei Type unbedingt EAP auswählen.
- Klicken Sie danach auf Save und in der Übersicht auf Apply
- Erfassen Sie alle zugriffsberechtigen User
IP-Adresspool erstellen
- Öffnen Sie den Menüpunkt VPN, IPsec und Connections
- Aktivieren Sie Enable IPsec und klicken Sie danach auf Apply
- Öffnen Sie den Menüpunkt VPN, IPsec, Connections und da die Lasche Pools
- Klicken Sie auf das "+", um einen neuen Pooleintrag zu erstellen

- Bei Name können Sie einen beliebigen Namen einsetzen
- Bei Network geben wir den in unserem Beispiel gewählten IP-Range 172.16.203.0/24 ein
- Klicken Sie danach auf Save
Connection erstellen
- Wechseln Sie jetzt im Menü auf VPN, IPsec und Connections. Klicken Sie auf die Lasche Connections
- Klicken Sie auf das "+", um eine neue Connection zu erstellen

- Aktivieren Sie zuerst den advanced mode
- Bei Proposals entfernen Sie default und wählen zum Beispiel aes256-sha256-modp2048
- Bei Version nehmen Sie IKEv2
- Bei Local address müssen Sie den Namen angeben, den Sie auch für das Zertifikat genommen haben und der als URL auf Ihre Firewall zeigt. In unserem Beispiel war das ipsec.beispiel.ch
- UDP encapsulation muss aktiviert sein
- Bei Rekey time(s) geben Sie 2400 und bei DPD delay(s) geben Sie 30 ein
- Bei Pools wählen Sie den zuvor erstellten IP-Adresspool aus, das war bei uns pool-ipsec
- Geben Sie bei Description einen selbstsprechenden Namen ein
- Klicken Sie nun auf Save und unten erscheinen Local Authentication, Remote Authentication und Children
- Klicken Sie auf das "+" bei Local Authentication um ein leeres Bild zu erhalten

- Authentication muss auf Public Key gesetzt werden
- Bei ID geben Sie wiederum den URL-Namen des Zertifikates ein, bei Certificates wählen Sie das dazu passende Zertifikat aus, welches vorgängig erstellt wurde
- Klicken Sie auf Save und danach auf das "+" bei Remote Authentication

- Bei Authentication wählen Sie nun EAP-MSCHAPv2 und bei EAP id tippen Sie %any ein
- Klicken Sie auf Save und danach auf das "+" bei Children

- Der advanced mode sollte immer noch aktiviert sein
- Policies ist aktiviert
- Bei Start action und Close action wählen Sie None
- DPD action bleibt auf Clear
- Bei ESP proposals entfernen Sie default und aktivieren aes256-sha256-modp248 [DH14]
- Bei Local geben Sie die Netzwerkadresse Ihres Netzes ein. In unserem Beispiel ist das 192.168.120.0/24
- Die Rekey time(s) können Sie auf 600 reduzieren. Dies funktioniert danach bei verschiedensten Clients, wie in Windows 11 VPN und NCP-Client.
- Klicken Sie dann auf Save und in der Connection nochmals auf Save. So kommen Sie zur Übersicht aller Connections
- Klicken Sie jetzt für die Übernahme aller Anpassungen auf Apply
Firewall Rules
- Wechseln Sie im Menü auf Firewall, Rules und IPsec. Klicken Sie auf das "+", um eine neue Regel zu erstellen

- Bei Direction nehmen Sie in und bei der TCP/IP Version wählen Sie IPv4 aus
- Bei den Feldern Protocol, Source, Destination und Destination port range lassen Sie jeweils any stehen
- Klicken Sie auf Save und danach auf Apply changes
- Wechseln Sie jetzt im Menü zu Firewall, Rules und WAN. Klicken Sie auf das "+", um eine neue Regel zu erstellen

- Quick muss aktiviert sein und die Direction ist wiederum in
- Wählen Sie bei TCP/IP Version IPv4 aus
- Bei Protocol wählen Sie UDP und bei Source lassen Sie any stehen
- Bei Destination nehmen Sie die WAN address und bei Destination port range wählen Sie ISAKMP aus
- Klicken Sie auf Save und auf das "+", um eine weitere Rule zu erstellen
- In der zusätzlichen Rule ist bis auf Destination port range alles identisch. In Destination port range wählen Sie IPsec NAT-T
- Klicken Sie auf Save und anschliessend auf Apply changes, damit die Rules wirksam werden
In Windows 11 VPN einrichten
- In Windows müssen Sie zuerst die zuvor erstellten und heruntergeladenen Zertifikate installieren.
- Öffnen Sie mit der Windows Taste + r, sowie dem Befehl mmc die Konsole. Fügen Sie über Datei und Snap-Ins das Modul Zertifikate hinzu.
- Wählen Sie Computerkonto und Lokalen Computer aus.
- Bestätigen Sie das Ganze mit OK.
- Jetzt können Sie bei Zertifikate, Vertrauenswürdige Stammzertifizierungsstellen das zuvor heruntergeladene Zertifikat ipsec-ca importieren.
- Bei Zertifikate und Eigene Zertifikate importieren Sie das zuvor heruntergeladene Zertifikat ipsec.beispiel.ch
- Wenn Sie auf dem Windows-PC die VPN-Konfiguration für mehrere Benutzer erstellen möchten, öffnen Sie PowerShell als Administrator, ansonsten als normaler Benutzer
- In unserem Beispiel möchten wir den normalen Internet-Verkehr nicht durch den VPN leiten, nur der Netzwerkverkehr zu 192.168.120.0/24 soll durch den Tunnel geleitet werden. Dies nennt man splitting tunneling.
- Die nachfolgenden Zeilen werden im PowerShell ausgeführt und erstellen dabei den VPN. Die letzte Zeile bezieht sich auf das splitting tunneling
- Add-VpnConnection -Name "ipsec.beispiel.ch" -ServerAddress "ipsec.beispiel.ch" -TunnelType "Ikev2"
- Set-VpnConnectionIPsecConfiguration -ConnectionName "ipsec.beispiel.ch" -AuthenticationTransformConstants SHA256 -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup PFS2048 -DHGroup Group14 -PassThru -Force
- Set-VpnConnection -Name "ipsec.beispiel.ch" -SplitTunneling $true
- Add-VpnConnectionRoute -ConnectionName 'ipsec.beispiel.ch' -DestinationPrefix '192.168.120.0/24' -PassThru
- Gehen Sie nun zu den Windows-Einstellungen mit der Windows-Taste + i
- Wählen Sie Netzwerk und Internet, danach VPN
- Jetzt sehen Sie die neu erstellte VPN-Verbindung. Wenn Sie auf Verbinden klicken, werden Sie aufgefordert, die Anmeldeangaben einzutippen. Wenn alles korrekt erfasst wurde, sollte die Verbindung zu Stande kommen
NCP-Client einrichten
- Um die Konfiguration zu importieren, müssen zuerst die zuvor gespeicherten Zertifikate auf dem PC ins Verzeichnis C:\ProgrammData\NCP\SecureClient\cacerts kopiert werden
- Erstellen Sie eine Datei mit dem Namen beispiel.ini und kopieren Sie die nachstehenden Zeilen in diese Datei. Die Zeilen beinhalten die Konfiguration, passend zu unserem Beispiel.
Passen Sie danach die Verbindung ipsec.beispiel.ch, sowie den IP-Range 192.168.120.0/24 Ihren Bedürfnissen an.
[GENERAL]
Export=1
Product=NCP Secure Entry Client
Version=13.31 Build 29731
Date=03.10.2025 18:05:04
[PROFILE1]
Name=ipsec.beispiel.ch
ConnMedia=21
UseForAuto=0
SeamRoaming=1
NotKeepVpn=0
BootProfile=0
UseRAS=0
SavePw=0
PhoneNumber=
DialerPhone=
ScriptFile=
HttpName=
HttpPw=
HttpScript=
Modem=
ComPort=1
Baudrate=57600
RelComPort=1
InitStr=
DialPrefix=
3GApnSrc=2
3GProvider=
APN=
3GPhone=
3GAuth=0
GprsATCmd=AT+CPIN=
GprsPin=""
BiometricAuth=0
PreAuthEap=0
PreAuthHttp=0
ConnMode=0
Timeout=0
TunnelTrafficMonitoring=0
TunnelTrafficMonitoringAddr=0.0.0.0
QoS=none
PkiConfig=
ExchMode=34
TunnelIpVersion=1
IKEv2Auth=3
IKE-Policy=automatic mode
IKEv2Policy=aes256-sha256
IkeDhGroup=14
IkeLTSec=000:00:40:00
IPSec-Policy=aes256-sha256
PFS=14
IPSecLTType=1
IpsecLTSec=000:00:10:00
IPSecLTKb=50000
UseComp=0
IkeIdType=3
IkeIdStr=
Gateway=ipsec.beispiel.ch
ConnType=1
UsePreShKey=0
XAUTH-Src=0
SplitOptionV4=0
UseTunnel=0
SplitOptionV6=1
VpnBypass=none
UseXAUTH=1
UseUdpEnc=500
UseUdpEncTmp=4500
DisDPD=0
DPDInterval=30
DPDRetrys=8
AntiReplay=0
PathFinder=0
UseRFC7427=1
RFC7427Padding=2
Ikev2AuthPrf=0
CertReqWithData=0
IpAddrAssign=0
IPAddress=
SubnetMask=0.0.0.0
DNS1=0.0.0.0
DNS2=0.0.0.0
DomainName=
DomainInTunnel=
SubjectCert=
IssuerCert=
FingerPrint=
UseSHA1=0
Firewall=0
OnlyTunnel=0
RasOnlyTunnel=0
DNSActiv=0
DNS1Tmp=0.0.0.0
DNS2Tmp=0.0.0.0
Network1=192.168.120.0
SubMask1=255.255.255.0
[IKEV2POLICY1]
Ikev2Name=aes256-sha256
Ikev2Crypt=6
Ikev2IntAlgo=12
Ikev2PRF=5
[IPSECPOLICY1]
IPSecName=aes256-sha256
IpsecCrypt=6
IpsecAuth=5
- Nun können Sie im NCP-Client diese Datei importieren. Beim Starten dieser Verbindung werden Sie nach den Anmeldeangaben gefragt. Danach baut sich die Verbindung sauber auf.