OpenVPN Server mit OPNsense

Vor kurzem habe ich eine OPNsense als Firewall in Betrieb genommen. Hier habe ich ein kleines Howto zur Konfiguration des OpenVPN Server gemacht. Ziel der Anleitung ist es einen Windows Client anzubinden. Ich nutze den VPN-Client von Securepoint, dieser ist schlicht und einfach zu bedienen. In meinem Beispiel Konfiguriere ich eine „Any“ Regel in der Firewall. In einer Produktivumgebung sollte dies detaillierter Konfiguriert werden.

Meine OPNsense mit der das Tutorial erstellt wurde läuft mit Version OPNsense 17.7.11

 

Vorbereitungen:

  • Konfigurierete OPNsense Firewall (LAN/WAN)
  • statische IP oder dyndns Alias

CA Zertifikat

Zuerst müssen wir ein CA Zertifikat erstellen der Punk findet ihr unter System: Trust: Authorities. Dort die Konfiguration mit „Add or import CA“ starten

OPNsense CA System : Trust : Autorities
OPNsense CA Zertifikat erstellen
  • Die Felder entsprechend der Beschreibung ausfüllen. Achtet auf Aussagekräftige Benennungen
  • Bei Method „Create Internal Certificate Authority“ auswählen
  • Die Standard „Lifetime“ habe ich hochgesetzt auf 5 Jahre
OPNsense CA System : Trust : Autorities
OPNsense CA Zertifikat erstellen

OpenVPN Server Zertifikat

Das Zertifikat für den OpenVPN Server wird unter System: Trust: Certificates erstellt

OPNsense System : Trust : Certificates
OpenVPN Zertifikat erstellen
  • Bei Methode „Create an internal Certificate“ auswählen
  • Unter „Certificate authority“ die eben erstellt CA auswählen
  • Type „Server Certificate“
  • Die „Lifetime“ habe ich erhöht
OPNsense System : Trust : Certificates
OpenVPN Zertifikat erstellen

VPN User

Unter System: Access: Users wird ein VPN Benutzer erstellt

OPNsense System: Access: Users
OPNsense VPN User erstellen
  • Benutzername und Kennwort vergeben
  • den Haken bei „Click to create a user certificate“ setzen
  • „Save“ drücken, Ihr werdet automatisch nach System: Trust: Certificates weitergeleitet
OPNsense System: Access: Users
OPNsense VPN User erstellen
  • Bei Method „Create an internal certificate“ auswählen
  • Bei Type sollte „Client Certifikate“ ausgewählt sein
  • Die „Lifetime“ habe ich hier auf 3 Jahre gesetzt
  • „Save“drücken bringt euch zurück zur Benutzerkonfiguration
OPNsense System: Access: Users
OPNsense VPN User erstellen

Es muss lediglich noch mal auf „Save“ gedrückt werden dann ist der Benutzer erstellt

OPNsense System: Access: Users
OPNsense VPN User erstellen

OpenVPN Server

Die Konfigurationsschritte habe ich untergliedert da es sonst unübersichtlich geworden wäre. Der Server wird unter VPN: OpenVPN: Servers konfiguriert

OPNsense VPN: OpenVPN: Servers
OPNsense OpenVPN Server konfigurieren

General information

  • Bei Server Mode „Remote Access (SSL/TLS)“ auswählen
OPNsense OpenVPN General Information
OPNsense OpenVPN Server Information konfigurieren

Cryptographic Settings

  • Bei Server Certificate das erstellte OpenVPN-CERT auswählen
  • DH Parameters sollten auf 2048bits stellen
  • Auth Digest Algorithm auf SHA256 stellen
OPNsense OpenVPN Server Cryptographic Settings
OPNsense OpenVPN Server Cryptographic Settings konfigurieren

Tunnel Settings

  • IPv4 Tunnel Network – VPN Netz
  • IPv4 Local Network – Hier das lokale oder die lokalen Netz mit Komma getrennt erfassen
  • Redirect Gateway – wenn die Option aktiviert wird, wird der gesammte Traffic durch das VPN geleitet, in der Regel ist das unerwünscht und mit „split tunneling“ gerabeitet
  • Concurrent connections – die max. Anzahl an gleichzeitigen VPN Verbindungen des Server
  • Compression –  „Enable with Adaptive Compression“ auswählen
OPNsense OpenVPN Server Tunnel Settings
OPNsense OpenVPN Server Tunnel Settings konfigurieren

Client Settings / Advanced Configuration

  • Wähle Dynamic IP, Address Pool, and Topology aus
  • Speichere die Konfiguration mit „Save“ die Konfiguration des OpenVPN Server ist abgeschlossen
OPNsense OpenVPN Server Client Settings
OPNsense OpenVPN Server Client Settings/Advanced Configuration konfigurieren

Firewall Regeln

In meiner Bespiel Konfiguration habe ich eine „Any“ Regel gebaut, in einer Produktivumgebung sollte das spezifisch auf den Anwendungszweck konfiguriert werden.

OPENVPN

Firewall Regel OpenVPN
Any Regel OpenVPN Server

WAN

OPNsense Firewall Regel
OPNsense Firewall WAN Regel

 

VPN Client

Die Konfiguration kann bequem für die einzelnen Benutzer unter VPN: OpenVPN: Client Export exportiert werden, das ist selbsterklärend

OPNsense OpenVPN Server User Export
OPNsense OpenVPN Server User Export

 

Wie in der Einleitung erwähnt nutze ich unter Windows den Securepoint OpenVPN-Client. Unter MAC setze ich auf Viscosity.

Veröffentlicht von

Kai

Mastermind der IT in einem KMU. Zertifizierungen im MS Umfeld. Ehrenamtlich beim BSI tätig. Zum Ausgleich wird MTB oder Motorrad gefahren.

Vielleicht interessiert dich auch…

(6) Kommentare

  1. Daniel Schmidt

    Hallo Kai,

    danke für die ausfürhliche Anleitung. So oder so ähnlich habe ich es nun schon 4-5 Mal probiert.
    Leider kann ich mich weder mit Windows 8, noch mit Windows 10 (getestet mit OpenVPN Client sowie dem Securepoint Client) verbinden.

    Die Fehlermeldung lautet jedes Mal: „Options error: remote: bad protocol associated with host x.x.x.x: ‚UDP‘
    Use –help for more information.“

    Hast du einen Tipp für mich?

    1. Kai

      Hallo Daniel, Sorry dein Beitrag ist im Spamfilter gelandet. Ich mache dir nachher eine Screenshot für die Einstellungen. Es hat sich in der tat etwas geändert mit einem der letzten Updates

    2. Marco

      Hallo Daniel,

      ich hatte das gleiche Problem, installiere mal das Opensense 19.1.1 Update, darin wurde ein Fehler im Export behoben, dann sollte es gehen.

      Ich habe allerdings 2 Tage lang nach dem Fehler gesucht bis ich mich verbinden konnte. Ich musste bei den erweiterten Einstellungen der Firewall noch den Haken bei Deaktiviere Antwort-an setzen, obwohl ich keine Multiwan Umgebung habe.

  2. Marco

    Hallo Kai,

    ich hätte mal noch eine etwas spezielle Frage bezüglich OpenVPN.

    Ich habe mehrere Netze hinter meiner OPNSense, die habe ich alle im VPN Server angeben und der Client kann diese auch erreichen. Jetzt würde ich aber gerne den Zugriff einzelner VPN Clients auf zB. nur einen Host und einen gewissen Port beschränken. Hier dachte ich mir das ich das über die Firewall machen kann wenn ich den einzelnen Clients eine feste IP zuweise. Das kann ich ja über die Client-spezifische Konfigurationen und mittels ip-config-push erreichen.

    Jetzt habe ich aber gelesen das der Client sich diese Werte selber anpassen kann, damit würden dann ja die Regeln nicht mehr greifen, stimmt das und wenn ja gibt es da noch eine andere Möglichkeit das elegant und sicher umzusetzen?

    Grüße
    Marco

    1. Kai

      Hallo Marco,

      von Jan habe ich die Info das es eine Option gibt das der VPN Client nur mit der vom DHCP zugewiesenen IP Kommunizieren darf. Ich habe diese Option nicht in der Weboberfläche gesehen. Hier wäre es sicher Sinnvoll im OPNsense Forum die Frage zu stellen.

      LG, Kai

  3. Kai

    Hallo Marco,

    leider habe ich den Post übersehen. Spontan habe ich keine Idee wie man das unterbinden kann. Hier kann vielleicht einer meiner Bekannten weiterhelfen. Ich werde Jan Bitten deinen Post zu kommentieren.

    LG, Kai

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert