Kategorie:OPNsense: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 75: Zeile 75:
siehe [[Netzwerke:Firewall:OPNsense:Domänennamen]]
siehe [[Netzwerke:Firewall:OPNsense:Domänennamen]]


= Installation und Konfiguration der automatisierten Zertifikatsverwaltung =
= Zertifikatsverwaltung =
 
[[Netzwerke:Firewall:OPNsense:Zertifikatsverwaltung]]
Mit dem Let's-Encrypt-Plugin können Sie für Ihre Webdienste kostenlos gültige X.509-Zertifikate von der Zertifizierungsstelle Let's Encrypt generieren. Dies ermöglicht eine verschlüsselte Nutzung Ihrer Webdienste über https ohne Zertifikatswarnungen. Auch für verschlüsselte ldap-Anfragen an den Samba-Server können Let's-Encrypt-Zertifikate eingesetzt werden.
 
== Installation und Konfiguration des acme-Plugins ==
 
Das Plugin muss zunächst über die Firmwareverwaltung installiert werden:
 
 
{| style="border-spacing:0;width:9.708cm;"
|- style="border:none;padding:0.049cm;"
|| System / Firmware / Plugins / os-acme-client → Install
 
 
|-
|}
=== Grundkonfiguration ===
 
 
{| style="border-spacing:0;width:12.278cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Settings* Haken bei: Enable Plugin
* Haken bei: Auto Renewal
* Let's Encrypt Environment: Production Environment [default]
* Haken bei HAProxy Integration
 
 
 
 
|-
|}
=== Anlage eines Let's-Encrypt-Kontos ===
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Accounts → Add* Haken bei: enabled
* Name: z. B. lets-encrypt-production
* E-Mail-Address: <an diese E-Mail-Adresse gelangen ihre Zertifikate betreffende Informationen wie z. B. Warnungen bei Ablauf der Gültigkeit>
 
 
 
 
|-
|}
=== Anlage einer Validierungsmethode ===
 
 
{| style="border-spacing:0;width:15.408cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Validadtion Methods → Add* Haken bei: enabled
* Name: z. B. http-01
* Challenge Type: HTTP-01
* HTTP-01
** HTTP Service: HAProxy HTTP Frontend Integration (OPNsense plugin)
* HAProxy
** Haken bei: Enable Auto-Configuration
** HAProxy Frontends: http_lan_wan
 
 
 
 
|-
|}
=== Anlage von Zertifikaten ===
 
Richten Sie für jeden Ihrer Webdienste - auch für jene, die nur innerhalb des Schulhauses erreichbar sein sollen - ein Zertifikat ein.
 
Beispiel für den Webdienst Nextcloud:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Certificates → Add* Haken bei: enabled
* Common Name: nextcloud.ihre-schule.de
* Alt Names: z. B. www.nextcloud.ihre-schule.de (damit der Dienst auch mit vorangestelltem www erreichbar ist)
* LE Account: z. B. lets-encrypt-production
* Validation Method: http-01
* Haken bei: Auto Renewal
* Renewal Interval: 60
 
 
 
 
|-
|}
== Den HAProxy für die Verwendung von Let's Encrypt konfigurieren ==
 
Durch die Angaben unter Settings und bei der Validierungsmethode http-01 hat das Let's-Encrypt-Plugin entsprechende Eintragungen im HAProxy vorgenommen. Überprüfen Sie deren Anwesenheit:
 
 
{| style="border-spacing:0;width:15.937cm;"
|- style="border:none;padding:0.049cm;"
|| * HAProxy / Settings / Real Servers → acme_challenge_host
** Server Address: 127.0.0.1
** Server Port: 43580
* HAProxy / Settings / Virtual Services / Backend Pools → acme_challenge_backend
** Server: acme_challenge_host
* HAProxy / Settings / Rules & Checks / Conditions → find_acme_challenge
** Condition Type: Path starts with
** Path Prefix: /.well-known/acme-challenge/
* HAProxy / Settings / Rules & Checks / Rules → redirect_acme_challenges
** Test type: IF
** Select conditions: find_acme_challenge
** Logical Operator: AND
** Execute function: Use specified Backend Pool
** Use backend pool: acme_challenge_backend
 
 
 
 
|-
|}
Stellen Sie sicher, dass im Public Service http_lan_wan die Regel redirect_acme_challenges an erster Stelle auftaucht. Sie können die Reihenfolge per Drag & Drop ändern:
 
 
{| style="border-spacing:0;width:13.093cm;"
|- style="border:none;padding:0.049cm;"
|| HAProxy / Settings / Virtual Services / Public Services → http_lan_wan* Select Rules: redirect_acme_challenges (vor allen anderen Regeln)
 
 
 
 
|-
|}
== Zertifikate generieren ==
 
Nachdem der HAProxy für die ACME-Challenge-Anfragen konfiguriert ist, können nun die Zertifikate generiert werden:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Certificates → Issue/Renew Certificates Now (bzw. Klick auf das Neu-Laden-Symbol neben jedem Zertifikat)
|-
|}
Ob das Generieren der Zertifikate funktioniert hat, kann unter Services / Let's Encrypt / Log File nachverfolgt werden. Suchen Sie bei Problemen nach dem Schlagwort "error".
 
== Zertifikate im HAProxy hinterlegen ==
 
Damit der HAProxy die mit Let's Encrypt generierten Zertifikate nun bei https-Anfragen bereitstellt, müssen diese bei den entsprechenden Public-Services hinterlegt werden:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Virtual Services / Public Services / https_lan (Dienst für ausschließlich interne https-Anfragen)* SSL Offloading / Certificates: z. B. fog.ihre-schule.de, usermanagement.ihre-schule.de (Entfernen Sie das zuvor hinterlegte Zertifikat: Web GUI SSL certificate)
 
 
 
Services / HAProxy / Settings / Virtual Services / Public Services / https_lan_wan (Dienst für interne und externe https-Anfragen)* SSL Offloading / Certificates: z. B. nextcloud.ihre-schule.de, collabora.ihre-schule.de (Entfernen Sie das zuvor hinterlegte Zertifikat: Web GUI SSL certificate)
 
 
 
 
|-
|}
== Besonderheit: Zertifikat für verschlüsselte ldap-Anfragen an den Samba-Server ==
 
Da der HAProxy die ldap-Anfragen nicht verarbeiten kann, wird der betroffene Port 636 für Anfragen von außen über eine NAT-Regel an den Samba-Server weitergeleitet:
 
 
{| style="border-spacing:0;width:10.888cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / NAT / Port Forward→ Add* Interface: WAN
* Protocol: TCP/UDP
* Desintation: WAN Adress From Port 636 To Port 636
* Redirect Target IP: 10.1.100.7 (IP Samba-Server)
* Redirect Target Port: 636
* Description: samba-ldap
 
 
 
 
|-
|}
Die Zertifikatsgenerierung für ldap.ihre-schule.de soll aber trotzdem über das Let's-Encrypt-Plugin nach obigen Beispiel erfolgen.
 
Da der HAProxy die ldap-Anfragen aber nicht entgegennimmt, muss der Samba-Server selbst die Zertifikatsinformationen erhalten und ausgeben. Nachdem das Let's-Encrypt-Plugin das Zertifikat für ldap.ihre-schule.de generiert bzw. erneuert hat, soll es die Zertifikatsdateien also auf den Samba-Server kopieren. Hierzu sind die nachfolgenden Schritte erforderlich:
 
=== SSH-Kommunikation zwischen Samba-Server und OPNsense vorbereiten ===
 
Siehe hierzu die [https://schulnetzkonzept.de/samba Beschreibung zum Samba-Server].
 
=== Skript zum Kopieren der Zertifikate ===
 
Damit nach einer Erneuerung des Zertifikats von ldap.ihre-schule.de durch das Let's-Encrypt-Plugin dieses auf dem LDAP-Server landet, ist ein Skript erforderlich, welches die Dateien von OPNsense auf den LDAP-Server kopiert, entsprechende Dateiberechtigungen setzt und den Domänen-Controller neu startet.
 
Dieses Skript wird in OPNsense so hinterlegt, dass es später an entsprechender Stelle in der Webmin-Oberfläche ausgewählt werden kann.
 
Achten Sie bei der Verwendung der nachfolgenden Datei auf die Verwendung der richtigen IP-Adresse und Pfade.
 
vi /usr/local/opnsense/service/conf/actions.d/actions_ldapserver.conf
 
====== Datei vi /usr/local/opnsense/service/conf/actions.d/actions_ldapserver.conf ======
 
[ldap-upload-certs]
command:scp -i /root/.ssh/id_rsa_samba /var/etc/acme-client/home/ldap.ihre-schule.de/* root@10.1.100.7:/etc/samba/tls
parameters:
type:script
message:copy certificates to ldap-server
description:LDAP-Server - Copy Certificates
 
[ldap-restart-dc]
command:ssh -i /root/.ssh/id_rsa_samba root@10.1.100.7 "chmod -R 0600 /etc/samba/tls && service samba-ad-dc restart"
parameters:
type:script
message:restarting ldap-server-dc
description:LDAP-Server - Restart DC
 
Damit das Skript im System zur Verfügung steht muss der Dienst configd neu gestartet werden:
 
service configd restart
 
== Skript beim Let's-Encrypt-Zertifikat hinterlegen ==
 
Zunächst müssen die beiden Aktionen des Skriptes als Automatisierungsaufgaben im Let's-Encrypt-Plugin definiert werden:
 
 
{| style="border-spacing:0;width:11.991cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Automation → Add* 1. Automatisierungsaufgabe
** Haken bei: enabled
** Name: LDAP-Server - Copy Certificates
** Run Command: System or Plugin Command
** System Command: LDAP-Server - Copy Certificates
* 2. Automatisierungsaufgabe
** Haken bei: enabled
** Name: LDAP-Server - Restart DC
** Run Command: System or Plugin Command
** System Command: LDAP-Server - Restart DC
 
 
 
 
|-
|}
Anschließend werden die beiden Automatisierungsaufgaben dem Zertifikat ldap.ihre-schule.de zugeordnet.
 
 
{| style="border-spacing:0;width:11.486cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Let's Encrypt / Certificates / ldap.ihre-schule.de → edit* Automations (Achtung: Reihenfolge einhalten!)
** 1. Aufgabe: LDAP-Server - Copy Certificates
** 2. Aufgabe: LDAP-Server - Restart DC
 
 
 
 
|-
|}
Somit werden nach Erneuerung des Zertifikats für ldap.ihre-schule.de automatisch die Zertifikatsdateien auf den LDAP-Server kopiert und anschließend der DC-Dienst neu gestartet.= Installation und Konfiguration des OpenVPN-Servers =
 
== Grundinstallation ==
 
Mithilfe des OpenVPN-Servers können Sie z. B. als Administrator von außen auf das interne Netzwerk zugreifen.
 
Für die Einrichtung des OpenVPN-Servers steht ein Wizard zur Verfügung, der auch die notwendigen Firewall-Einstellungen hinterlegt:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| VPN / OpenVPN / Servers → Use a wizard to to setup a new server* Type of Server: Local User Access
* Certificate Authority → Add new CA
** Descripive Name: z. B. schulnetz.intra-ca
** Country Code: z. B. DE
** entsprechende Einträge für: State or Province, City, Organization, und Email→ Add new CA
* Choose a Server Certificate → Add new Certificate
** Descriptive name: z. B. schulnetz.intra
** Country Code: z. B. DE
** entsprechende Einträge für: State or Province, City, Organization, und Email→ Button: Add Certificate
* General OpenVPN Server Information
** Interface: WAN
** Protocol: UDP
** Local Port: 1194
* Tunnel Settings
** IPv4 Tunnel Network: 10.0.8.0/24 (ein anderes Netz als Ihr Schulnetz)
** IPv4 Local Network: z. B. 10.1.0.0/20,10.1.100.0/24,10.1.254.0/24 (für Administratoren alle drei internen Subnetze - bei Bedarf ggf. anpassen)
* Traffic from clients to server
** Haken bei Firewall Rule
* Traffic from clients through VPN
** Haken bei OpenVPN Rule
 
 
 
 
|-
|}
== Anlegen einer VPN-Gruppe ==
 
Durch Anlage einer Gruppe für den VPN-Zugriff, kann man folgende Festlegungen tätigen:* Berechtigung für die VPN-Einwahl nur für Mitglieder der Gruppe
* Beschränkung der OPNsense-Web-Oberfläche für die Gruppenmitglieder, sodass zugehörige Benutzer lediglich ihr eigenes Passwort ändern können
 
 
 
 
{| style="border-spacing:0;width:16.279cm;"
|- style="border:none;padding:0.049cm;"
|| System / Access / Groups → Add* Group name: openvpnusers → Save
* Gruppe openvpnusers erneut bearbeiten
** Assigned Privileges → Add: Haken bei GUI System: User Password Manager
 
 
 
 
|-
|}
== Anlegen von VPN-Benutzern ==
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| System / Access / Users → Add* Username: <gewünschter Benutzername>
* Password: <gewünschtes Passwort>
* Full Name: <Vollständiger Name>
* Group membership: openvpnusers
* Certificate: Haken bei: Click to create a user certificate → Save
** Method: Create an internal Certificate
** Descriptive name: <geben Sie hier den gleichen Namen an wie oben bei Username>
** Certificate authority: <geben Sie hier die gleiche Zertifizierungsstelle an wie bei der Einrichtung des OpenVPN-Servers - z. B. schulnetz.intra>
 
 
 
 
|-
|}
== Export der VPN-Zugangsdaten für angelegte User ==
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| VPN / OpenVPN / Client Export* Hostname: IP oder Dyndns-Adresse
* Haken bei Use random local Port, damit sich mehrere Clients gleichzeitig verbinden können
 
 
 
 
|-
|}
Unterhalb der Einstellungsmöglichkeiten können für angelegte Benutzer deren individuellen Zugangsdaten heruntergeladen werden. Ggf. wählen Sie hierzu bei Export Type eine passende Downloadmöglichkeit.
 
== Client-Installationsdateien und Konfigurationsdateien ausgeben ==
 
Nach Anlage eines VPN-Users können Sie diesem für sein System (z. B. Windows, Mac, ...) personalisierte Dateien für Installation und Konfiguration des OpenVPN-Clients aushändigen:
 
 
{| style="border-spacing:0;width:10.659cm;"
|- style="border:none;padding:0.049cm;"
|| VPN / OpenVPN / Client Export
 
→ OpenVPN Clients→ Wahl der gewünschten Dateien des entsprechenden Users
|-
|}
 


= Links =
= Links =

Version vom 20. Februar 2022, 22:55 Uhr

OPNsense ist eine freie Firewall-Distribution auf Basis von FreeBSD und der Address Space Layout Randomization (ASLR) von HardenedBSD. OPNsense erlaubt die Benutzung der freien Kryptobibliothek LibreSSL, alternativ zum Standard OpenSSL (wählbar in der GUI). Die OPNsense Software steht unter der FreeBSD-Lizenz („2-clause BSD license“) und darf frei kopiert, verändert und verbreitet werden, auch für kommerzielle Projekte. Der Name leitet sich vom Suffix des Namens des Vorläufers pfSense ab.

Eigenschaften

Anwendungen

Geschichte

Das Projekt wurde am 2. Januar 2015 ins Leben gerufen. Das Projekt führt drei Gründe für seine Abspaltung an:

  • Technische Gründe – klare, strukturierte Code-Basis, die von Entwicklern benutzt und gepflegt werden kann, soll entstehen
  • Community (Gemeinschaft) – eine aktive, tragende Gemeinschaft von Anwendern und Entwicklern wird angestrebt
  • Lizenz – OPNsense soll auf der bewährten 2-Klausel BSD Lizenz aufgebaut werden, die flexibel im gewerblichen und freien Umfeld eingesetzt werden kann
  • Das OPNsense-Projekt wird von der niederländischen "Deciso B.V." finanziell und sachkundig unterstützt.
  • Im November 2017 stellte ein Schiedsgericht der Weltorganisation für geistiges Eigentum fest, dass Netgate, der Urheber von pfSense, die Domain opnsense.com in böswilliger Absicht benutzt hatte, um OPNsense zu diskreditieren, und verpflichtete Netgate, die Domain an Deciso zu übertragen.
  • Die Netgate-Partei versuchte, sich auf die Fair-Use-Klausel zu berufen und behauptete, dass der Domainname "für eine Parodie-Website verwendet wurde"; dies wurde mit der Begründung abgelehnt, dass die Meinungsfreiheit die Registrierung von Domainnamen nicht abdeckt.

Installation eines Routers mit OPNsense

Um einen Router zu erstellen benötigt man einen Computer mit zwei Netzwerkkarten und ein Bootmedium mit OPNsense.

  1. ein OPNsense VGA-Image von der Herstellerseite runterladen
  2. mit dem Befehl Disc-Dump auf einem Datenträger (Bootmedium) installieren
  3. den Datenträger in den Computer stecken und von diesem booten
  4. nachdem der PC hochgefahren ist, mit dem Login "installer" und dem Passwort "opnsense" anmelden
  5. Start des Installationsvorganges, zuerst zweimal bestätigen und dann auf "Guided installation" gehen
  6. eine Partition auswählen auf der OPNsense installiert wird und ein Installationsmodus (MBR mode)
  7. die "swap-Partition" bestätigen
  8. das Passwort des Benutzers "root" erstellen
  9. den Router neustarten
  10. die Installation ist jetzt abgeschlossen
  11. mit einem Gerät das im Netzwerk des OPNsense-Routers ist, kann man den Router im Webbrowser unter https://192.168.1.1 konfigurieren nach der Anmeldung startet der Einrichtungs-wizard

OPNsense

OPNsense ist eine Firewall-Distribution auf der Basis des Betriebssystems FreeBSD. Im Gegensatz zu den anderen vorgestellten Software-Komponenten ist OPNsense also ein eigenständiges Betriebssystem.

Im Schulnetzkonzept kommt OPNsense aber nicht nur die Aufgabe der Firewall zu. Vielmehr ist es die Kommunikationszentrale mit u. a. folgenden Aufgaben:* Firewall und NAT

  • DNS-Server
  • DHCP-Server
  • NTP-Server
  • Proxy-Server
  • URL-Filter
  • Reverse-Proxy
  • Zertifikatsmanagement
  • VPN-Server

Grundinstallation

siehe Netzwerke:Firewall:OPNsense:Grundinstallation

Netzwerkschnittstellen und grundlegende Firewall-Regeln

siehe Netzwerke:Firewall:OPNsense:Netzwerkschnittstellen und grundlegende Firewall-Regeln

Internetgeschwindigkeit

Netzwerke:Firewall:OPNsense:Internetgeschwindigkeit

Web-Proxy

siehe Netzwerke:Firewall:OPNsense:Web-Proxy

Webfilter

siehe Netzwerke:Firewall:OPNsense:Webfilter

Domänennamen

siehe Netzwerke:Firewall:OPNsense:Domänennamen

Zertifikatsverwaltung

Netzwerke:Firewall:OPNsense:Zertifikatsverwaltung

Links


Quellen

  1. https://schulnetzkonzept.de/opnsense

Weblinks

Siehe auch

Unterkategorien

Diese Kategorie enthält die folgenden 11 Unterkategorien (11 insgesamt):

O

Seiten in der Kategorie „OPNsense“

Diese Kategorie enthält nur die folgende Seite.