OPNsense: OpenVPN
- Standardmodul der OPNsense, VPN auf Basis von Pre-shared keys, Zertifikaten und/oder Username/Password, bei Bedarf mit TOTP-MFA
- OpenVPN läuft auch auf Router-OS OpenWRT und allen gängigen OS
- Hinweis: Windows erlaubt per Default kein PING aus entfernten Subentzen
- Hinweis: für TOTP ist eine genaue Zeit wichtig (Zeitserver!)
- ab FW 23.7 neues Konzept "Instanz" (oben), "Legacy Server" (unten) ist depretched
Instanz-Konzept (ab FW 24)
OpenVPN Clientverbindung mit Username - Passwort - Zertifikat - Key - TOTP erstellen
1. Zertifizierungsstelle einrichten
- OPNsense: System -Sicherheit -> Aussteller
- Vorgehen: Erstelle interne CA
- Beschreibung: OpenVPN-CA
- Herausgeber: selbstsigniert
- Lebenszeit: lange
- Allgemeine Angaben ausfüllen
- Common-Name nicht vergessen
(keine dt. Umlaute verwenden!)
2. Serverzertifikat erstellen
- OPNsense: System -Sicherheit -> Zertifikate
- Vorgehen: Erstelle internes Zertifikat
- Beschreibung: OpenVPN-Server
- Typ: Serverzertifikat
- CA/Herausgeber: OpenVPN-CA (von oben)
- Lifetime: lange
- Common-Name nicht vergessen
(keine dt. Umlaute verwenden!)
3. TOTP-Server einrichten (nur wenn OTP gewünscht)
- OPNsense: System -> Zugang -> Server
- Beschreibung: TOTP-Server
- Typ: Lokal (oder LDAP) + Zeitbasiertes Einmalpasswort
- Umgekehrte Tokensortierung: anhaken (ich finde TOTP nach Passwort sinnvoller)
4. User einrichten
- OPNsense: System -> Zugang -> Benutzer
- Benutzername + Passwort festlegen
- Ankreuzen: Benutzerzertifikat erstellen
- nur bei OTP: Ankreuzen: OTP Seed erstellen
• OTP QR-Code nach Erstellen auf 2FA-Gerät übertragen - Speichern -> es öffnet sich der Assistent für ein neues Zertifikat
- Vorgehen: Erstelle ein neues internes Zertifikat
- Beschreibung: Username
- Typ= Client Zertifikat
- CA/Herausgebeber: OpenVPN-CA (von oben)
- Common-Name nicht vergessen
(keine dt. Umlaute verwenden!)
5. VPN Static Key erstellen
- OPNsense: VPN -> OpenVPN -> Instances -> Static Keys
- Beschreibung: OpenVPN_key
- Modus: auth
- Generate new
6. VPN Server erstellen (mehrere Server mit eigenen Ports oder lokalen Zielbereichen möglich)
- OPNsense: VPN -> OpenVPN -> Instances
- Rolle: Server
- Name= OpenVPN-Server
- Protocol: UDP
- Port (Default=1194) ggf. ändern
- Typ: TUN
- Server (IPv4): 10.10.0.0/24 (Bsp) - VPN Transfernetz
Die OPNsense bekommt die erste Adresse (hier: 10.10.0.1). - Netzstruktur: Subnet
- Zertifikat: OpenVPN-Server
- Client-Zertifikate prüfen: erforderlich
- Zertifikatstiefe= EINS (Client+Server)
- TLS static key: OpenVPN_key (von oben)
- Authenifizierung: Local Database (oder bei TOTP: TOTP-Database)
- Zeit bis Neubestimmung: - (bei TOTP= 0)
- Auth Token Lifetime: - (bei TOTP= 0)
- Lokales Netzwerk: - (192.168.10.0/16 - kommagetrennte Liste der lokal ereichbaren Netze oder Netzbereiche)
- ntferntes Netzwerk: -
- Einstellungen: Nichts ausgewählt
- Redirect Gateway: local
7. Schnittstelle anlegen
- OPNsense:Schnittstellen -> Zuweisungen
- Assign new interface: OpenVPN-Server
- Schnittstelle aktivieren
8. Firewallregeln
- OPNsense: Firewall -> Regeln -> WAN
• Neue Regel: IN / Allow / Schnittstelle: WAN / TCP: IPv4 / Protokoll= TCP/UDP / Ziel = WAN address / Ziel Port= 1194 (OpenVPN)
(Erlaube: WAN -> Firewall) - OPNsense: Firewall -> Regeln -> LAN
• Neue Regel: IN / Allow / Schnittstelle: LAN / TCP: IPv4 / Protokoll= any / Ziel = any
(Erlaube: Firewall -> LAN) - OPNsense: Firewall -> Regeln -> OpenVPNServer
• Neue Regel: IN / Allow / Schnittstelle: OpenVPNServer / TCP: IPv4 / Protokoll= any / Quelle: OpenVPN net / Ziel = any
(Erlaube: OpenVPN) - Liveansicht hilft
9. Client exportieren
- OPNsense: VPN -> OpenVPN -> Clientexport
- Verwendete Konfiguration= gewünschter OpenVPN-Server
- Hostname= DSL-Gateway (IP oder DNS-Name)
- Server-Subject überprüfen: anhaken
- Download: Username.ovpn (enthält VPN-Konfiguration, Key und alle Zertifikate)
10. Client für das gewünschte Betriebssystem einrichten
- OpenVPN-Client laden und installieren
https://openvpn.net/client/ - Download (Export) als Profil importieren
Verbindung herstellen mit Username und Passwort, +ggf. TOTP
Lagecy - Konzept (depretched)
OpenVPN Clientverbindung mit Username/Passwort erstellen
1. Zertifizierungsstelle einrichten
- OPNsense: System -Sicherheit -> Aussteller
- CA erstellen
- Vorgehen: Erstelle interne CA
- Beschreibung= OpenVPN-CA
- Key-Länge= 4096 Bits
- Hashalgorithmus= SHA512
- Lebenszeit= lange
2. Serverzertifikat erstellen
- OPNsense: System -Sicherheit -> Zertifikate
- Vorgehen: Erstelle internes Zertifikat
- Beschreibung: OpenVPN-Server
- Zertifizierungsstelle/Herausgeber: OpenVPN-CA (von oben)
- Typ: Serverzertifikat
- RSA 4096 Bits, SHA512
3. User einrichten (in lokale Datenbank)
- OPNsense: System -> Zugang -> Benutzer
- Name + Passwort festlegen
- Ankreuzen: Benutzerzertifikat erstellen
- Speichern -> es öffnet sich der Assistent für ein neues Zertifikat
- Vorgehen: Erstelle ein neues internes Zertifikat
- Herausgebeber: OpenVPN-CA (von oben)
- Typ= Client Zertifikat
- RSA 4096 Bits, SHA512
4. VPN Server erstellen (mehrere Server mit eigenen Ports oder lokalen Zielbereichen möglich)
- OPNsense: VPN -> OpenVPN -> Servers
- Server hinzufügen
- Name= OpenVPN-Server
- Servermodus= SSL/TLS + Benutzerauthentisierung
- Backend-Authentifizierung= Lokale Datenbank (oder TOTP)
- Schnittstelle= WAN
- UDP-Port (Default=1194) ggf. ändern
- Peer-Zertifizierungsstelle= OpenVPN-CA
- Serverzertifikate= OpenVPN-Server
- DH Parameterlänge= 4096 Bit
- Verschlüsselungsalgorithmus= AES-256-CBC
- Auth.Digestalgorithmus= SHA512
- Zertifikatstiefe= EINS
- IPv4 Tunnelnetzwerk= 10.10.0.0/24 - VPN Transfernetz
Die OPNsense bekommt die erste Adresse (hier: 10.10.0.1). - Lokales IPv4-Netzwerk= 192.168.10.0/16 - kommagetrennte Liste der lokal ereichbaren Netze oder Netzbereiche
- Fernes IPv4-Netzwerk= bei Site-to-Site VPN
- Komrimierung= Legacy - Disabled LZO
5. Firewallregeln
- OPNsense: Firewall -> Regeln -> WAN
- Neue Regel: IN / Allow / WAN-Schnittstelle / Protokoll= UDP / Ziel = Diese Firewall (OpenVPN Netzwerk) / Zielport = OpenVPN
(Erlaube: VPN zu Firewall) - OPNsense: Firewall -> Regeln -> OpenVPN
- Neue Regel: IN / Allow / OpenVPN-Schnittstelle / Protokoll= ANY / Quelle = Netzwerk (10.10.0.0/24 - VPN-Netz wie oben)
(Erlaube: VPN zu LAN) - Bei Bedarf kann ein Zeitplan für die Firewallregel den Zugang zeitlich einschränken.
6. Client exportieren
- OPNsense: VPN -> OpenVPN -> Clientexport
- Verwendete Konfiguration= OpenVPN-Server
- Hostname= DSL-Gateway
- ggf. Speichern des Kennwortes deaktivieren
- Download: Username.ovpn (enthält Konfiguration und alle Zertifikate)
7. Client für das gewünschte Betriebssystem einrichten
- Client laden und installieren
https://openvpn.net/client/ - Download als Profil importieren
Verbindung herstellen mit Username und Passwort
OpenVPN Clientverbindung mit Username+Passwort+TOTP erstellen
- Zertifizierungsstelle einrichten
wie oben - Serverzertifikat erstellen
wie oben - User einrichten (in lokale Datenbank)
wie oben, außerdem:
• Ankreuzen: OTP Seed erstellen
• OTP QR-Code anzeigen auf 2FA-Gerät übertragen
3a) OPNsense: System -> Zugang -> Server
Server hinzufügen, Name= TOTP-Lokal
Typ= Lokal + Zeitbasiertes Einmalpasswort - VPN Server erstellen
wie oben, aber:
Backend-Authentifizierung= TOTP-Lokal (von 3a)
Zeit bis zur Neubestimmung (Renegotiate time)= 0 - bis 7. wie oben
Verbindung herstellen mit Username und Passwort+TOTP
(Reihenfolge Passwort + TOTP wird in 3a festgelegt)
Links: