OPNsense: OpenVPN

~ 0 min
2024-12-07 22:41
  • 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

  1. Zertifizierungsstelle einrichten
    wie oben
  2. Serverzertifikat erstellen
    wie oben
  3. 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

  4. VPN Server erstellen
    wie oben, aber:
    Backend-Authentifizierung= TOTP-Lokal (von 3a)
    Zeit bis zur Neubestimmung (Renegotiate time)= 0
  5. bis 7. wie oben
    Verbindung herstellen mit Username und  Passwort+TOTP
    (Reihenfolge Passwort + TOTP wird in 3a festgelegt)

Links:

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.