Konfigurieren Sie den OpenVPN-Server in pfSense mit der besten Sicherheit

Das pfSense-Betriebssystem, das sich an orientiert Firewall und Router, hat mehrere VPN Protokolle zum Verbinden von Standorten über Site-to-Site-VPN. Außerdem können wir RAS-VPN so konfigurieren, dass verschiedene mobile Clients miteinander verbunden werden und der gesamte Internetverkehr über das Betriebssystem selbst erfolgt. OpenVPN ist dank seiner Sicherheit, Flexibilität und guten Funktionsweise eine der am häufigsten verwendeten Software zum Erstellen virtueller privater Netzwerke. In diesem Artikel wird heute Schritt für Schritt erklärt, wie der OpenVPN-Server in pfSense konfiguriert wird.

Konfigurieren Sie den OpenVPN-Server in pfSense

Was ist und wofür ist das in pfSense integrierte OpenVPN?

OpenVPN ist eine Software, mit der wir virtuelle private Netzwerke aufbauen können. Wir werden einen Kontrollkanal haben, in dem das Aufheben des Tunnels und die Aushandlung der Verschlüsselungsprotokolle verwaltet werden, und wir werden einen Datenkanal haben, in dem der gesamte Tunnelverkehr stattfinden wird Punkt zu Punkt verschlüsselt. Eine der Stärken von OpenVPN in pfSense besteht darin, dass die überwiegende Mehrheit der verfügbaren Optionen über eine sehr intuitive grafische Benutzeroberfläche verfügbar ist. Auf diese Weise können wir sie konfigurieren, ohne dass eine Anweisung manuell in das Feld "Optionen" eingefügt werden muss. fortgeschritten. Mit der OpenVPN-Software, die wir in pfSense integriert haben, können wir zwei Arten von Architekturen erstellen und konfigurieren:

  • RAS-VPN - Remote Clients stellen eine Verbindung zum pfSense-VPN-Server her und gehen über uns ins Internet. Sie können auch auf die von uns angegebenen Subnetze zugreifen. Diese Art von VPN richtet sich an Telearbeiter, Netzwerk- und Systemtechniker usw.
  • Standort-zu-Standort-VPN : Diese Architektur ermöglicht es uns, einen Standort mit einem anderen zu kommunizieren, verschiedene Standorte über das Internet miteinander zu kommunizieren und den gesamten Datenverkehr Punkt-zu-Punkt zu schützen. Mit dieser Art von VPN können wir beispielsweise Büros, Firmenzentralen usw. kommunizieren.

OpenVPN unterstützt Dutzende verschiedener Konfigurationen, um sowohl die Leistung als auch die Sicherheit zu verbessern. pfSense erlaubt verschiedene Arten der Authentifizierung, die am meisten empfohlene basiert jedoch auf SSL / TLS-Zertifikaten, um Authentizität, Vertraulichkeit und Integrität sicherzustellen, und es wird nicht empfohlen, vorinstallierte Schlüssel zu verwenden. Zusätzlich zur Authentifizierung basierend auf SSL / TLS-Zertifikaten könnten wir auch eine zusätzliche Authentifizierung mit Benutzername / Passwort integrieren, um ein robusteres System zu erhalten. Mit pfSense können Sie den privaten Schlüssel der Zertifikate mit einem Kennwort exportieren. Um diese Zertifikate verwenden zu können, müssten wir auch ein zusätzliches Kennwort einbinden, da dies sonst nicht funktioniert.

Mit dem in pfSense integrierten OpenVPN-Server können wir schnell, sicher und sicher eine Verbindung zu unserem Haus oder unserer Arbeit herstellen, unabhängig davon, ob das Netzwerk verkabelt ist oder nicht W-Lan. Der gesamte Datenverkehr wird von unserem OpenVPN-Client (der auf einem Computer, Smartphone oder Tablet installiert ist) zum pfSense OpenVPN-Server durchgehend verschlüsselt. Ein sehr wichtiges Detail ist, dass der OpenVPN-Server in einer Internetverbindung außerhalb von CG-NAT installiert sein muss und die Regeln in der Firewall geöffnet sind, um die Verbindung zu ermöglichen. Andernfalls können wir keine Verbindung über das Internet herstellen.

Natürlich können wir auf dem Server verschiedene Subnetze hinzufügen, um den Datenverkehr durch die verschiedenen Subnetze in pfSense zu leiten, und wir können sogar in der Firewall konfigurieren, ob wir diese Zugriffe von einer bestimmten OpenVPN-Server-IP-Adresse zulassen möchten oder nicht. Mit OpenVPN haben wir zwei Möglichkeiten, Pakete zu verwalten und wie sie auf Transportebene funktionieren:

  • TUN : Diese Betriebsart ermöglicht die Kapselung aller Pakete, die als TCP-Segmente oder UDP-Datagramme durch sie transportiert werden. Alle Clients erhalten ein bestimmtes neues Subnetz. Standardmäßig ist das OpenVPN-Subnetz 10.8.0.0/24, aber wir können das gewünschte konfigurieren.
  • TAP : Dieser Betriebsmodus simuliert eine Ethernet-Netzwerkschnittstelle, wird auch als Bridge bezeichnet, und dieser virtuelle Tunnel kapselt Ethernet-Pakete direkt ein. Der Bridge-Betriebsmodus ist nützlich, um Remotebenutzer einfach miteinander zu kommunizieren. Wenn jedoch das private Quellnetzwerk mit dem Zielnetzwerk übereinstimmt, liegt ein Routingproblem vor und die Kommunikation funktioniert nicht.

In diesem Tutorial zum Konfigurieren von OpenVPN in pfSense verwenden wir a virtuelles Subnetz 10.8.0.0/24 Wenn wir alle VPN-Clients haben, wenn sie eine Verbindung herstellen, ist es sehr einfach, die verschiedenen VPN-Clients zu identifizieren, die wir mit dem Netzwerk verbunden haben. Außerdem können wir erzwingen, dass jeder Client mit einem bestimmten Zertifikat immer die hat gleiche private IP-Adresse des VPN-Tunnels.

In diesem Handbuch zeigen wir Ihnen, wie Sie eine sehr sichere OpenVPN-Konfiguration in pfSense erstellen und die symmetrischen, asymmetrischen und Hash-Verschlüsselungsalgorithmen anpassen. Auf diese Weise können wir die Kommunikation bestmöglich verschlüsseln.

Zusammenfassung der zu verwendenden Kryptographie

  • Digitale Zertifikate : OpenVPN ermöglicht die Verwendung von digitalen Zertifikaten basierend auf RSA oder auch EC (Elliptische Kurven) werden wir den EC-Algorithmus secp521r1 verwenden, obwohl wir über die pfSense-Zertifikatsverwaltung viele andere zur Verfügung haben. Der Hash-Algorithmus, den wir verwenden werden, wird sein SHA512 , eine der sichersten, die wir derzeit verwenden können. Alle VPN-Clients ab Version 2.4 sollten mit dieser Konfiguration kompatibel sein. In unserem Fall verwenden sowohl der Server als auch die Clients OpenVPN 2.5 oder höher, sodass keine Probleme auftreten sollten.
  • OpenVPN-Steuerkanal : Wir werden TLS 1.3 für maximale Sicherheit verwenden und immer PFS (Perfect Forward Secrecy) verwenden. Wir werden die drei kryptografischen Suites von TLS 1.3 verwenden, um die Kommunikation herzustellen: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 und TLS_AES_128_GCM_SHA256. Wenn Sie überprüfen möchten, ob Ihr Server oder Client diese Art der Verschlüsselung unterstützt, müssen Sie "openvpn –show-tls" in die Konsole einfügen.
  • OpenVPN-Datenkanal : Wir werden den symmetrischen Verschlüsselungsalgorithmus AES-256-GCM verwenden, der derzeit einer der sichersten ist und in OpenVPN 2.4 und höher integriert wurde. Wir werden jedoch auch CHACHA20-POLY1305 und AES-128-GCM verwenden, damit der VPN-Client den gewünschten auswählt und dem ersten Priorität einräumt. Wenn Sie überprüfen möchten, ob Ihr Server oder Client diese Verschlüsselungsarten unterstützt, müssen Sie in der Konsole "openvpn –show-ciphers" eingeben.

Um in dem Datenkanal zu definieren, dass wir TLS 1.3 verwenden möchten, müssen wir die Direktive "tls-ciphersuites" anstelle der typischen "tls-cipher" verwenden, wie wir sie immer verwendet haben. Es wäre wie folgt:

tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

Zusätzlich zu diesen Sicherheitsmaßnahmen werden wir eine HMAC-Signatur für die erste TLS-Aushandlung einfügen, um den OpenVPN-Server vor möglichen DoS-Angriffen zu schützen. Wenn der Client nicht über die richtige HMAC-Signatur verfügt, wird er automatisch blockiert und überprüft die digitalen Zertifikate nicht. Wir werden tls-crypt verwenden, das ab OpenVPN 2.4 verfügbar ist, um die beste Sicherheit zu gewährleisten, da wir damit den Kanal authentifizieren und verschlüsseln können, sodass niemand diesen vorinstallierten Schlüssel erfassen kann.

Schließlich werden wir das UDP-Protokoll anstelle von TCP verwenden, da es stärker gegen Denial-of-Service-Angriffe ist. Wir müssen uns daran erinnern, dass UDP nicht konnektiv, unzuverlässig und verbindungsorientiert ist. Wir können TCP jedoch problemlos verwenden, um dem VPN alle Vorteile dieses Protokolls zu bieten.

Installieren Sie das OpenVPN-Client-Plugin, um die Konfiguration zu generieren

Obwohl OpenVPN in pfSense standardmäßig entweder im Server- oder im Client-Modus installiert ist, verfügen wir nicht über ein vorinstalliertes Paket, mit dem wir die Konfiguration für die Clients automatisch generieren können. Wenn wir zum Paketmanager in «System / Paketmanager» und zur Registerkarte «Verfügbare Pakete» gehen, können wir das Paket «OpenVPN-Client-Export» installieren, mit dem wir genau diese Aktion ausführen können, um dies erheblich zu vereinfachen die Konfiguration von Clients, Importieren der Serverkonfiguration mit den entsprechenden digitalen Zertifikaten.

Nach der Installation können Sie mit dem nächsten Schritt fortfahren und die digitalen Zertifikate erstellen.

Erstellen Sie digitale Zertifikate in pfSense

Um einen OpenVPN-Server mit der SSL / TLS-Authentifizierung "Remote Access" zu konfigurieren, müssen digitale Zertifikate verwendet werden. Wir müssen eine Zertifizierungsstelle (CA) erstellen, bei der die verschiedenen Zertifikate signiert werden. Wir müssen ein spezifisches Zertifikat für den OpenVPN-Server und den Servertyp sowie alle digitalen Zertifikate der VPN-Clients erstellen, die wir registrieren möchten .

Wir können auch eine Zertifikatsperrliste erstellen. Wenn ein Zertifikat kompromittiert wird, weil wir es verloren haben, können wir es direkt stornieren, damit es nicht gültig ist. Falls ein unzulässiger Benutzer es verwendet, können Sie in keiner Weise eine Verbindung zu unserem VPN-Server herstellen.

Erstellen Sie die Zertifizierungsstelle (Certification Authority).

Im Abschnitt "Zertifizierungsstellen" müssen wir auf "Hinzufügen" klicken, um eine neue Zertifizierungsstelle zu erstellen. Dies ist wichtig, damit alle digitalen Zertifikate ordnungsgemäß funktionieren, sowohl der Server als auch die der VPN-Clients, die verwendet werden sollen . verbinden. In diesem Menü müssen wir folgende Optionen auswählen:

  • CA erstellen / bearbeiten
    • Beschreibender Name: Wir geben dieser Zertifizierungsstelle einen beschreibenden Namen, was immer wir wollen.
    • Methode: Erstellen Sie eine interne Zertifizierungsstelle.
  • Interne Zertifizierungsstelle
    • Schlüsseltyp: ECDSA mit secp521r1, das mit OpenVPN kompatibel ist.
    • Digest-Algorithmus: sha512
    • Lebensdauertage: 3650 (10 Jahre)
    • Allgemeiner Name: Der CN muss ein beschreibender Name sein, der diese Zertifizierungsstelle eindeutig beschreibt. In unserem Fall haben wir nur eine Zertifizierungsstelle für OpenVPN, also haben wir einfach "openvpn-ca" gesetzt.
    • Ländercode: keine. Dies ist nicht mehr erforderlich, um die neuen OpenVPN-Zertifikate auszufüllen.

Die CA-Konfiguration wäre wie folgt:

In den verschiedenen Menüs können Sie andere Konfigurationsoptionen auswählen, z. B. das Importieren einer bereits erstellten Zertifizierungsstelle oder das Erstellen einer Zwischenzertifizierungsstelle. Anschließend erstellen wir eine Zertifizierungsstelle und anschließend die Zertifikate, ohne eine Zwischenzertifizierungsstelle zu verwenden.

Wir können auch zwischen RSA oder ECDSA wählen und sogar unterschiedliche RSA-Schlüssellängen und unterschiedliche EC-Algorithmen zum Erstellen der Zertifizierungsstelle verwenden. In „Digest-Algorithmus“ können wir verschiedene Hash-Algorithmen auswählen. Die am meisten empfohlenen sind sha256, sha384 und sha512. Aus Sicherheitsgründen sollten Sie niemals sha1 verwenden.

Sobald die Zertifizierungsstelle erstellt wurde, wird sie in der Zertifizierungsstellenliste angezeigt, wie Sie hier sehen können:

In diesem Menü sehen wir die Anzahl der damit verbundenen Zertifikate, den CN, die Gültigkeit des Zertifikats und ob diese Zertifizierungsstelle derzeit verwendet wird. Wenn eine Zertifizierungsstelle oder ein Zertifikat verwendet wird, können wir es nicht entfernen. Im Abschnitt «Aktionen» können wir die Beschreibung des Zertifikats bearbeiten, den öffentlichen Schlüssel der Zertifizierungsstelle und den privaten Schlüssel exportieren, die Zertifizierungsstelle erneuern und sogar die soeben erstellte Zertifizierungsstelle löschen.

Erstellen Sie das OpenVPN-Serverzertifikat

Jetzt müssen wir das Zertifikat erstellen, das der in pfSense integrierte OpenVPN-Server verwenden wird. Wir gehen zum Abschnitt "Zertifikate" und klicken auf "Hinzufügen / Signieren". Wir haben immer ein vorkonfiguriertes Zertifikat in pfSense, da das HTTPS-Protokoll es zum Herstellen einer Verbindung verwendet, andernfalls könnte es nicht funktionieren. Dieses Zertifikat wird automatisch erstellt, wenn Sie das Betriebssystem installieren.

Das Menü zum Erstellen von Zertifikaten ist dem vorherigen sehr ähnlich. Wir müssen zwischen drei Optionen wählen:

  • Anleitung:
    • Erstellen Sie ein internes Zertifikat.
    • Importieren Sie ein vorhandenes Zertifikat.
    • Erstellen Sie eine Zertifikatsignierungsanforderung.
    • Unterzeichnen Sie eine Zertifikatsignierungsanforderung.

Wir werden die erste Option auswählen, ein internes Zertifikat erstellen.

Als nächstes müssen wir ihm einen beschreibenden Namen geben, was auch immer wir wollen, und die Konfiguration muss wie folgt sein:

  • Neues Zertifikat hinzufügen / signieren
    • Methode: Erstellen Sie eine interne Zertifizierungsstelle.
    • Beschreibender Name: Wir geben diesem Zertifikat einen beschreibenden Namen, was immer wir wollen.
  • Internes Zertifikat
    • Zertifizierungsstelle: Wir müssen die vorherige Zertifizierungsstelle auswählen, die wir gerade im vorherigen Schritt erstellt haben.
    • Schlüsseltyp: ECDSA mit secp521r1, das mit OpenVPN kompatibel ist. Das gleiche wie die CA.
    • Digest-Algorithmus: sha512
    • Lebensdauertage: 3650 (10 Jahre)
    • Common-Name: Der CN muss ein beschreibender Name sein, der dieses Serverzertifikat eindeutig beschreibt. In unserem Fall haben wir nur ein Serverzertifikat, also haben wir einfach openvpn-server angegeben.
    • Ländercode: keine. Dies ist nicht mehr erforderlich, um die neuen OpenVPN-Zertifikate auszufüllen.

Wenn wir ein Zertifikat mit einer Dauer von mehr als 398 Tagen haben, kann es auf einigen Plattformen zu Fehlern kommen. Dies ist im Allgemeinen der Fall, jedoch nicht für OpenVPN. Daher können wir die gewünschte Dauer ohne Probleme festlegen, es wird uns keinen Fehler geben.

Unten müssen wir die folgenden Optionen auswählen:

  • Zertifikatattribute:
    • Zertifikatstyp: Serverzertifikat
    • Alternativer Name: Wir können nichts völlig leer lassen.

Wir müssen berücksichtigen, dass wir gerade das digitale Zertifikat für den OpenVPN-Server konfigurieren. Daher müssen wir "Server-Zertifikat" auswählen.

Der Abschnitt "Alternativer Name" wird häufig für IPSec-Zertifikate verwendet, wird jedoch in OpenVPN nicht verwendet.

Nach der Erstellung wird es in der Liste der Zertifikate angezeigt. Außerdem können wir die Zertifizierungsstelle sehen, mit der wir das Zertifikat signiert haben, und ob es vom Servertyp ist.

Dieses digitale Zertifikat für den Server müssen wir bei der Konfiguration des OpenVPN-Servers in pfSense einfügen. Wir müssen uns den Namen, den wir ihm gegeben haben, sehr gut merken, da wir später eine Liste mit allen Zertifikaten erhalten.

Erstellen Sie Zertifikate für alle Clients

Um ein oder mehrere digitale Zertifikate für Clients zu erstellen, müssen wir genau den gleichen Vorgang wie für das Serverzertifikat ausführen.

  • Neues Zertifikat hinzufügen / signieren
    • Methode: Erstellen Sie eine interne Zertifizierungsstelle.
    • Beschreibender Name: Wir geben diesem Client-Zertifikat einen beschreibenden Namen.
  • Internes Zertifikat
    • Zertifizierungsstelle: Wir müssen die vorherige Zertifizierungsstelle auswählen, die wir im ersten Schritt erstellt haben.
    • Schlüsseltyp: ECDSA mit secp521r1, das mit OpenVPN kompatibel ist. Das gleiche wie die CA.
    • Digest-Algorithmus: sha512
    • Lebensdauertage: 3650 (10 Jahre)
    • Common-Name: Der CN muss ein beschreibender Name sein, der dieses Client-Zertifikat eindeutig beschreibt. In unserem Fall haben wir nur ein Client-Zertifikat, daher haben wir einfach openvpn-client1 angegeben.
    • Ländercode: keine. Dies ist nicht mehr erforderlich, um die neuen OpenVPN-Zertifikate auszufüllen.

Im Abschnitt "Zertifikatattribute" müssen wir es wie folgt konfigurieren:

  • Zertifikatattribute:
    • Zertifikatstyp: Benutzerzertifikat
    • Alternativer Name: Wir können nichts völlig leer lassen.

Nach der Erstellung sehen wir die neue Liste der in pfSense erstellten Zertifikate.

Wenn wir auf Bearbeiten klicken, können wir nur den beschreibenden Namen ändern, aber wir können den privaten Schlüssel auch mit einer Passphrase exportieren. Wenn wir ein Passwort eingeben, wird der private Schlüssel selbst mit AES-256-CBC verschlüsselt Schützen Sie den Inhalt und vermeiden Sie daher, dass er gelesen und verwendet werden kann, wenn er in die falschen Hände gerät. Dies ist das, was wir zum Exportieren des Kundenzertifikats verwendet haben, wie wir Ihnen später zeigen werden.

Wenn wir mehr Kundenzertifikate erstellen möchten, können wir dies auf die gleiche Weise tun. Wir müssen lediglich eine andere Beschreibung und auch eine andere CN eingeben.

Nachdem wir alle Zertifikate der Clients erstellt haben, die eine Verbindung zum OpenVPN-Server herstellen sollen, konfigurieren wir den Server Schritt für Schritt.

Konfigurieren Sie den OpenVPN-Server mit allen erläuterten Optionen

Um den OpenVPN-Server zu konfigurieren, müssen wir nur zum Hauptmenü von pfSense gehen, auf den Abschnitt "VPN" klicken und "auswählen". OpenVPN ".

Im Abschnitt "OpenVPN" müssen wir auf "Server" und dann auf "Hinzufügen" klicken, um einen neuen OpenVPN-Server hinzuzufügen.

In der OpenVPN-Serverkonfiguration müssen wir die folgenden Optionen auswählen:

  • Allgemeine Informationen:
    • Servermodus: Remotezugriff (SSL / TLS)
    • Protokoll: UDP
    • Gerätemodus: tun
    • WAN-Schnittstelle
    • Lokaler Port: 1194, standardmäßig handelt es sich um diesen Port. Es wird empfohlen, ihn zu ändern.
    • Beschreibung: Wir haben eine Beschreibung dieses OpenVPN-Servers eingefügt, da wir mehrere erstellen können.

Im Abschnitt "Protokoll" haben wir verschiedene Konfigurationsoptionen. Standardmäßig ist dies "Nur UDP auf IPv4", da wir auch TCP und sogar TCP und UDP sowie IPv6-Netzwerke verwenden können, wenn wir dieses Protokoll verwenden. Netz. Im Abschnitt „Gerätemodus“ können Sie Tun oder Tap auswählen, wie bereits erläutert. Tun befindet sich auf der Ebene von Ebene 3 und Tap befindet sich auf der Ebene von Ebene 2 mit ihren Stärken und Schwächen. Im Abschnitt "Schnittstelle" ist es am normalsten, das WAN zu verwenden, aber wir können mit diesem OpenVPN-Server auf allen Schnittstellen lauschen. Schließlich können wir unter „Lokaler Port“ den gewünschten TCP- und / oder UDP-Port ändern. Es wird empfohlen, nicht den Standardport 1194 zu verwenden.

In dem " Kryptografische Einstellungen In diesem Abschnitt können wir alles in Bezug auf digitale SSL / TLS-Zertifikate konfigurieren und anschließend alle Optionen erläutern:

  • Kryptografische Einstellungen
    • TLS-Konfiguration: Wir aktivieren die Verwendung eines TLS-Schlüssels. Um die TLS-Krypta zu verwenden, klicken wir auf Automatisch Generieren des TLS-Schlüssels. Beim Speichern der Änderungen wird angezeigt, ob wir "Authentifizierung" oder auch "Verschlüsselung" verwenden möchten. Letzteres wird empfohlen, die neue tls-Krypta anstelle der zuvor verwendeten tls-auth zu verwenden.
    • Peer Certificate Authority: Wir wählen die Zertifizierungsstelle aus, die wir in pfSense selbst für diesen OpenVPN-Server erstellt haben.
    • Sperrliste für Peer-Zertifikate: Wenn wir eine Sperrliste für Zertifikate erstellen, erstellen wir diese im Abschnitt „System> Cert.Manager“ und wählen hier die zuvor erstellte Liste aus.
    • Serverzertifikat: Wir wählen den OpenVPN-Server, in unserem Fall "OpenVPN_ServidorOVPN (Server: Ja)".
    • DH-Parameterlänge: Nur ECDH
    • ECDH-Kurve: Wir wählen secp521r1

In den „Daten Verschlüsselung Wir aktivieren den Abschnitt "Verhandlung" und wählen die symmetrischen Chiffren aus, die wir für den Datenkanal verwenden möchten. In unserem Fall haben wir insgesamt 3 ausgewählt: AES-256-GCM, AES-128-GCM und auch das neue CHACHA20-POLY1305, das sie kürzlich eingebaut haben. Wir müssen auch einen "Fallback" -Algorithmus auswählen, falls der OpenVPN-Client nicht kompatibel ist. In diesem Fall wählen wir AES-256-CBC. Wenn Sie jedoch maximale Sicherheit wünschen, empfehlen wir die Auswahl von AES-256-GCM, um zu erzwingen, dass keine Verbindung hergestellt wird Wenn wir keine starke Verschlüsselung verwenden, nichts, um AES-256-CBC zu verwenden. Wenn es alte Clients gibt, müssen wir sie aktualisieren.

In "Auth Digest Algorithm" wählen wir SHA256 oder SHA512, immer sichere Hash-Funktionen.

Im Abschnitt „Hardware Crypto“: Wenn wir eine Beschleunigung der Hardwareverschlüsselung haben, wählen wir diese hier aus, damit die Verbindung zum VPN schneller funktioniert. Wenn wir sie nicht haben oder nicht aktivieren möchten, belassen wir den Standardwert.

In «Zertifikatstiefe» wählen wir «Eins (Client + Server)».

Im Abschnitt «Tunneleinstellungen» müssen wir folgende Optionen konfigurieren:

  • IPv4-Tunnelnetzwerk: Wir werden das spezifische Subnetz für OpenVPN-Clients einrichten. Es muss sich um ein freies Subnetz handeln, das wir zuvor noch nicht verwendet haben. In unserem Fall haben wir 10.8.0.0/24 gewählt, was die Standardeinstellung in dieser Software ist, aber wir können jedes Subnetz verwenden.
  • IPv6-Tunnelnetzwerk: Wie in IPv4, jedoch wenn Sie IPv6-Netzwerke verwenden.
  • IPv4-Gateway und IPv6 umleiten: Wenn wir diese Option aktivieren, wird der gesamte Datenverkehr von OpenVPN-Clients über den OpenVPN-Server geleitet und hat Zugriff auf alle Subnetze des Betriebssystems. Wir können den Zugriff auf bestimmte Subnetze über die Firewall-Konfigurationsoptionen blockieren, jedoch auf Clients erhält die Route, um alle Subnetze zu erreichen. Wenn wir Full-Tunnel-VPN durchführen, aktivieren wir diese Option. Wenn wir Split-Tunnel verwenden, deaktivieren wir sie und müssen die Subnetze eingeben, auf die sie unten Zugriff haben sollen.
  • Gleichzeitige Verbindungen: 10, ist die maximale Anzahl von Clients, die gleichzeitig verbunden sind. Dies hängt von Ihren Anforderungen ab.
  • Komprimierung zulassen: Verweigern, wir möchten keine Komprimierung, um Angriffe zu vermeiden.
  • Push-Komprimierung: Wir können diese Komprimierungsoption (keine Komprimierung) für Clients bereitstellen.
  • Kommunikation zwischen Clients: Wir können zulassen oder verweigern, dass OpenVPN-Clients miteinander kommunizieren können. Aus Sicherheitsgründen ist es ratsam, sie zu deaktivieren. In bestimmten Fällen ist jedoch eine Kommunikation erforderlich und wird sogar empfohlen. Dies hängt von Ihren Anforderungen ab.
  • Doppelte Verbindung: Diese Option sollte normalerweise deaktiviert sein. Jeder OpenVPN-Client sollte über eigene Anmeldeinformationen verfügen und nicht denselben Client mit demselben Zertifikat für die Verbindung verwenden. Diese Option ist nützlich, wenn wir dieselben Zertifikate auf unserem Smartphone, Computer und Tablet (3 Geräte) verwenden möchten und gleichzeitig eine Verbindung herstellen möchten. Wir empfehlen, für jedes Gerät ein Zertifikat auszustellen.

In den „Client-Einstellungen“ können wir Clients eine dynamische IP-Adresse bereitstellen und dann angeben, dass jeder Client eine IP-Adresse des spezifischen Bereichs 10.8.0.0/24 hat. In "Topologie" wählen wir "Subnetz", das viel effizienter ist als net30, wie es der alte Weg ist.

In «Ping-Einstellungen» können wir die Pings so konfigurieren, dass festgestellt wird, ob ein Client noch verbunden ist oder die Konnektivität verloren hat.

In "Erweiterte Client-Einstellungen" können wir die konfigurieren DNS Server, entweder externe DNS-Server wie der beliebte 8.8.8.8 oder ein lokaler DNS-Server von pfSense. Wir können auch die Option "Zugriff auf DNS-Server blockieren" auswählen, mit Ausnahme derjenigen des VPN-Tunnels, um die Sicherheit zu verbessern.

Im Abschnitt "Erweiterte Konfiguration" können wir zusätzliche erweiterte Regeln hinzufügen, die wir nicht in der grafischen Benutzeroberfläche haben. Wir sind beispielsweise daran interessiert, immer mit TLS 1.3 zu verhandeln, zumindest wenn ein Client nicht kompatibel ist, wird keine Verbindung hergestellt. weil wir TLS 1.2 nicht aktivieren werden.

Wie bereits erläutert, wird beim erstmaligen Speichern der OpenVPN-Serverkonfiguration im Abschnitt "TLS-Schlüssel" der von pfSense automatisch generierte TLS-Schlüssel angezeigt, und wir müssen "TLS-Verschlüsselung und -Authentifizierung" auswählen.

Nach der Konfiguration sehen wir die folgende Zusammenfassung der Konfiguration:

Eine andere Konfiguration, die wir in Bezug auf die Routen vornehmen können, besteht darin, dass wir nicht alle Clients zwingen müssen, den gesamten Datenverkehr über den VPN-Tunnel zu senden, sondern definieren können, dass wir nur auf bestimmte Netzwerke zugreifen können, auf die gewünschten und automatisch auf die Clients, die sie erhalten Routen zu diesen Netzwerken.

Sobald wir den OpenVPN-Server konfiguriert haben, werden wir die Firewall so konfigurieren, dass eingehende Verbindungen zugelassen werden.

Konfigurieren Sie die Regeln in der Firewall, um den Zugriff zu ermöglichen

Im Abschnitt "Firewall / Regeln" klicken wir auf WAN und erstellen eine Regel mit den folgenden Werten:

  • Aktion: PASS
  • Schnittstelle: WAN
  • Adressfamilie: IPv4
  • Protokoll: UDP
  • Quelle: Beliebig, jeder Ursprung, da wir nicht immer wissen, welche öffentliche IP wir haben werden
  • Ziel: WAN-Adresse in OpenVPN-Port 1194 oder in dem Port, für den wir den Server konfiguriert haben.

Wir speichern und lassen die Regel im Internet-WAN erstellen.

Jetzt müssen wir zum Abschnitt „Firewall / Regeln / OpenVPN“ gehen. In diesem Abschnitt definieren wir die Zugriffe der OpenVPN-Clients. Wenn wir OpenVPN-Clients den Zugriff auf ein pfSense-Subnetz und auch auf das Internet ermöglichen möchten, müssen wir eine Regel "Alle übergeben" erstellen, die Folgendes definiert:

  • Aktion: PASS
  • Schnittstelle: OpenVPN
  • Adressfamilie: IPv4
  • Protokoll: Beliebig
  • Quelle: Beliebig
  • Ziel: Beliebig

Wenn wir bestimmte Regeln erstellen möchten, um den Datenverkehr zu bestimmten Subnetzen zu verweigern, müssen wir Regeln erstellen, die diese Bedingung erfüllen.

Sobald wir Zugriff über das Internet-WAN sowie auf ein Subnetz des Betriebssystems und die Umleitung ins Internet haben, exportieren wir die OpenVPN-Konfigurationsdatei für die Clients.

Exportieren Sie die OpenVPN-Konfigurationsdatei für Clients

Wir gehen zum Abschnitt "VPN / OpenVPN / Client-Export". Hier konfigurieren wir die Erweiterung, um eine automatische Konfiguration für Clients zu generieren:

  • RAS-Server: Wir wählen den von uns konfigurierten VPN-Server aus. Wir können mehrere haben. Daher wählen wir den Server aus, der uns interessiert.
  • Auflösung des Hostnamens: Für die DDNS-Domäne, die wir in pfSense konfiguriert haben, oder die IP-Adresse des WAN haben wir mehrere Möglichkeiten.
  • Server-CN überprüfen: Automatisch - Verwenden Sie verify-x509-name
  • Außerhalb von DNS blockieren: Wir aktivieren diese Option.
  • Zufälligen lokalen Port verwenden: Wir aktivieren diese Option.

Nachdem alle oben genannten Elemente konfiguriert wurden, müssen wir auf die zu exportierenden Clients klicken. Am normalsten ist die Auswahl von "Inline-Konfigurationen: Die meisten Clients". Anschließend werden die Zertifizierungsstelle, der öffentliche und der private Schlüssel des Client-Zertifikats und exportiert die gesamte Konfiguration.

Wir empfehlen, diese Option unter "Inline-Konfigurationen: Die meisten Clients" auszuwählen, aber den privaten Schlüssel des verschlüsselten Clients hinzuzufügen, damit diese Konfigurationsdatei nicht auf unseren VPN-Server zugreifen kann, wenn sie in die falschen Hände gerät. Um den verschlüsselten privaten Schlüssel zu exportieren, müssen wir zum Abschnitt "System / Cert Manager" gehen und das Zertifikat des Clients "bearbeiten", eine Passphrase eingeben und auf "Privaten Schlüssel exportieren" klicken:

Jetzt öffnen wir mit einem Texteditor diesen verschlüsselten Schlüssel und die gerade heruntergeladene Konfigurationsdatei:

  • In der vollständigen OpenVPN-Konfigurationsdatei löschen wir alles, was sich darin befindet « »
  • Wir kopieren den gesamten Inhalt des exportierten privaten Schlüssels in « »Und Änderungen speichern.

Wenn Sie nun den privaten Schlüssel verwenden, um eine Verbindung zum Server herzustellen, müssen Sie dieses Kennwort eingeben, das das Zertifikat schützt. Jetzt werden wir überprüfen, ob der Dienst aktiv ist, und uns mit dem ersten Client verbinden.

Überprüfen Sie den Status des Dienstes und der verbundenen Clients

Im Abschnitt "Status / OpenVPN" können wir sehen, ob es aktiviert ist oder nicht, wir aktivieren es und verbinden den ersten Client ohne Probleme.

Eine zusätzliche Empfehlung, die Sie mit pfSense aussprechen können, besteht darin, immer denselben VPN-Client bereitzustellen, der ein bestimmtes Zertifikat mit derselben IP-Adresse verwendet. Dazu müssen wir einfach in «Client-spezifische Überschreibungen» gehen, einen neuen hinzufügen, den Server und den CN des spezifischen Clients auswählen und im Abschnitt «Erweitert» Folgendes einfügen:

ifconfig-push 10.8.0.2 255.255.255.0;

Und dieser VPN-Client mit diesem bestimmten CN hat immer diese private IP-Adresse im VPN-Tunnel.