Kategorie:OPNsense: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(102 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''OPNsense''' ist eine [[Freie Software|freie]] [[Firewall]]-[[Distribution (Software)|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.
[[Kategorie:Firewall]]
 
[[Kategorie:Router]]
== Eigenschaften ==
[[Kategorie:IT-Sicherheit/Tools]]
* OPNsense kann auf [[Festplatte]]n und [[CompactFlash]]-Karten [[Installation (Computer)|installiert]], sowie von [[Live CD]]s gestartet werden.
* OPNsense läuft auf einer Reihe von [[Eingebettetes System|eingebetteten (embedded) Systemen]], gewöhnlichen [[Personal Computer]]n und als [[virtuelle Maschine]].
* OPNsense bietet Eigenschaften, die oftmals nur von teuren kommerziellen Firewalls geboten werden.
* Mit Hilfe einer [[Webschnittstelle]] (Webinterface) kann OPNsense leicht konfiguriert werden und [[Softwareaktualisierung|Updates]] sind komfortabel einzurichten, ohne dass genaue Kenntnisse des unterliegenden FreeBSD Betriebssystems erforderlich werden.
* Im Gegensatz zu vergleichbarer Open Source Firewall Software wie [[IPFire]] und [[pfSense]] bietet OPNsense [[Zwei-Faktor-Authentisierung]].
* Seit OPNsense Version 19.1. kommt als Betriebssystem [[HardenedBSD]] in Version 11.2 zum Einsatz.
* Das OPNsense Project ist auf [[Code]]-Qualität, einfache Code-Entwicklung und freien Zugang zu den Build-Werkzeugen ausgelegt.
* Es wendet das [[Model View Controller]] Paradigma an.
 
== Anwendungen ==
* [[Stateful Packet Inspection|stateful]] [[Perimeter]]-Firewall
* [[Router]]
* [[Wireless Access Point]]
* [[DHCP]]-Server
* [[Domain Name System|DNS]]-Server
* [[Virtual Private Network|VPN]]-Endpunkte
 
== 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|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.
# ein OPNsense VGA-Image von der [https://opnsense.org/download/ Herstellerseite] runterladen
# mit dem Befehl Disc-Dump auf einem Datenträger (Bootmedium) installieren
# den Datenträger in den Computer stecken und von diesem booten
# nachdem der PC hochgefahren ist, mit dem Login "installer" und dem Passwort "opnsense" anmelden
# Start des Installationsvorganges, zuerst zweimal bestätigen und dann auf "Guided installation" gehen
# eine Partition auswählen auf der OPNsense installiert wird und ein Installationsmodus (MBR mode)
# die "swap-Partition" bestätigen
# das Passwort des Benutzers "root" erstellen
# den Router neustarten
# die Installation ist jetzt abgeschlossen
# 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]]
 
= Konfiguration der zur Verfügung stehenden Internetgeschwindigkeit =
 
Durch den Shaper kann OPNsense im Sinne des Quality of Service (QoS) die zur Verfügung stehende Internetbandbreite bestmöglich ausnutzen. Folgender Ansatz zeigt eine Gleichverteilung der zur Verfügung stehenden Bandbreite unter allen Netzwerkteilnehmern.
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / Shaper / Settings / Pipes (Leitungen)# Pipe (für die Angabe der Upload-Geschwindigkeit)Haken bei enabledbandwidth: <hier die Uploadgeschwindigkeit Ihrer Internetleitung angeben>bandwith Metric: <hier die richtige Einheit für die oben angegebene Geschwindigkeit angeben>mask: <leer lassen>description: z. B.: Pipe-Upload
# Pipe (für die Angabe der Download-Geschwindigkeit)Haken bei enabledbandwidth: <hier die Downloadgeschwindigkeit Ihrer Internetleitung angeben>bandwith Metric: <hier die richtige Einheit für die oben angegebene Geschwindigkeit angeben>mask: <leer lassen>description: z. B.: Pipe-Download
 
 
 
Firewall / Shaper / Settings / Queues (Warteschlangen)# Queue (für den Upload)Haken bei enabledpipe: <Upload-Pipe auswählen>weight: 100mask: sourcedescription: z. B.: Queue-Upload
# Queue (für den Download)Haken bei enabledpipe: <Download-Pipe auswählen>weight: 100mask: destinationdescription: z. B.: Queue-Download
 
 
 
Firewall / Shaper / Settings / Rules (Regeln für die Bandbreitenverwendung)# Rule (für den Upload)Haken bei enabledsequenze: <vergibt das System automatisch>interface: WANproto: ipsource: <hier das Schulnetzwerk mit Subnetzmaske angeben, z. B.: 10.1.0.0/20>src-port: anydestination: anydst-port: anytarget: <Upload-Queue auswählen>description: z. B.: Rule-Upload
# Rule (für den Download)Haken bei enabledsequenze: <vergibt das System automatisch>interface: WANproto: ipsource: anysrc-port: anydestination: <hier das Schulnetzwerk mit Subnetzmaske angeben, z. B.: 10.1.0.0/20>dst-port: anytarget: <Download-Queue auswählen>description: z. B.: Rule-Download
 
 
 
 
|-
|}
Für den Shaper sind zahlreiche andere Einstellungsmöglichkeiten denkbar - z. B. für die Priorisierung von Voice-Over-IP-Telefonaten o. ä.= Konfiguration des Proxy-Servers =
 
Das Schulnetzkonzept geht davon aus, dass der Aufruf von Webseiten nur über den zwischengeschalteten Proxy möglich ist. Nur dann können mithilfe des URL-Filters squidGuard (s. weiter unten) Webseitenaufrufe via Port 80 (http) bzw. Port 443 (https) effektiv gefiltert werden. Um das Handling mit dem Proxy für alle User so einfach wie möglich zu gestalten, wir dieser im transparenten Modus betrieben. Somit sind an den Clients keinerlei Einstellungen zu tätigen bzw. zu verteilen.
 
Damit auch verschlüsselte https-Anfragen datenschutzkonform - also ohne das Aufbrechen von Zertifikaten - über den transparenten Proxy abgewickelt werden können, verwendet das Schulnetzkonzept die Möglichkeit der Filterung über SNI (Server Name Indication): Bevor ein Browser eine verschlüsselte Verbindung zu einem Webserver aufbaut, sendet er diesem den gewünschten Host (FQDN) unverschlüsselt. Diese Information kann vom transparentem Proxy ausgelesen und für die Filterung genutzt werden.
 
Folgende Anpassungen an den Default-Einstellungen sind zu tätigen:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Web Proxy / Administration* General Proxy Settings
** Haken bei: Enable Proxy
** Haken bei: Enable DNS v4 first
** Enable access logging: Hier können Sie bei Bedarf den Zugriff auf den Proxy-Server mitloggen.
* Local Cache Settings
** Haken bei: Enable local cache
** Cache size in Megabytes: 10240
** Haken bei: Enable Windows Update Cache (speichert Windows-Updates aus dem Internet zwischen und stellt sie für weitere Windows-Clients im Netzwerk bereit. Dies verringert die Belastung der Internet-Leitung durch Windows-Updates erheblich, sofern Sie keinen eigenen WSUS-Server für Windows-Updates im Einsatz haben.)
* General Forward Settings
** Proxy Interfaces: LAN_CLIENTS
** Proxy Port: 3128
** Haken bei: Enable Transparent HTTP Proxy
** Haken bei: Enable SSL inspection
** Haken bei: Log SNI information only
** SSL Proxy Port: 3129
** CA to use: z. B.: schulnetz.intra-caSofern Sie noch keine Zertifizierungsstelle für Zertifikate (CA) angelegt haben, holen Sie dies mit folgenden Schritten nach:
*** System / Trust / Authorities → Add
**** Descriptive name: z. B. schulnetz.intra-ca
**** Method: Create an internal Certificate Authority
**** Entsprechende Angaben bei: Country Code, State, City, Organization und Email Address
 
 
 
 
|-
|}
= http- und https-Anfragen an den Proxy weiterleiten =
 
== Alias für Umgehung des Proxys anlegen ==
 
Sofern es in Ihrem Netzwerk Clients geben soll, die von der Proxy-Filterung ausgenommen werden sollen, legen Sie hierfür zunächst einen Alias an:
 
 
{| style="border-spacing:0;width:12.61cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / Aliases → Add* Name: z. B. BYPASS_Firewall_Proxy
* Type: wählen Sie hier...
** Host(s) zur Angabe einer oder mehrerer IP-Adressen
** Network(s) zur Angabe einer oder mehrere IP-Segmente
* Description: aussagekräftige Beschreibung
 
 
 
 
|-
|}
== Weiterleitung von Web-Anfragen an den Proxy ==
 
Die beiden Haupt-Ports für Internetseitenaufrufe&nbsp; werden an den Proxy weitergeleitet:
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / NAT / Port Forward
 
1. Regel* Interface: LAN_CLIENTS
* TCP/IP Version: IPv4
* Protocol: TCP
* Source / Invert: Haken
* Source: BYPASS_Firewall_ProxyDie Quelle für Proxy-Weiterleitung sind somit alle Clients außer jene, welche Sie beim Alias BYPASS_Firewall_Proxy hinterlegt haben.
* Destination / Invert: Haken
* Destination: LAN_MANAGEMENT_SERVERDie Weiterleitung erfolgt nur für Ziele außerhalb der Netze LAN_MANAGEMENT und LAN_SERVER. Da die Firewall zunächst die NAT-Regeln abarbeitet, wird hiermit sichergestellt, dass ggf. bei den Interfaces-Regeln geblockte Anfragen an diese beiden Netze nicht über den Proxy umgangen werden.
* Destination Port Range: from: HTTP to: HTTP
* Redirect target IP: Single host or Network: 127.0.0.1
* Redirect target Port: 3128
* Description: z. B.: Redirect http-traffic to Proxy
 
 
 
2. Regel* Interface: LAN_CLIENTS
* TCP/IP Version: IPv4
* Protocol: TCP
* Source / Invert: Haken
* Source: BYPASS_Firewall_ProxyDie Quelle für Proxy-Weiterleitung sind somit alle Clients außer jene, welche Sie beim Alias BYPASS_Firewall_Proxy hinterlegt haben.
* Destination / Invert: Haken
* Destination: LAN_MANAGEMENT_SERVERDie Weiterleitung erfolgt nur für Ziele außerhalb der Netze LAN_MANAGEMENT und LAN_SERVER. Da die Firewall zunächst die NAT-Regeln abarbeitet, wird hiermit sichergestellt, dass ggf. bei den Interfaces-Regeln geblockte Anfragen an diese beiden Netze nicht über den Proxy umgangen werden.
* Destination Port Range: from: HTTPS to: HTTPS
* Redirect target IP: Single host or Network: 127.0.0.1
* Redirect target Port: 3129
* Description: z. B.: Redirect https-traffic to Proxy
 
 
 
 
|-
|}
= Konfiguration des Webfilters =
 
Hauptziel des Einsatzes eines Proxys an Schulen ist die Verwendung in Kombination mit einem URL-Filter, welcher Schüler vor ungewünschten Inhalten im Netz schützen soll.
 
== URL-Filter-Liste erzeugen und konfigurieren ==
 
Unter [http://www.shallalist.de/ shallalist.de] finden Sie eine frei verfügbare, regelmäßig aktualisierte und in Form von Kategorien organisierte Liste, welche zusammen mit dem OPNsense-Webfilter verwendet werden kann, um Webseitenaufrufe themenbasiert (z. B. Pornographie, Gewaltverherrlichung, soziale Netzwerke, ...) zu sperren. An dieser Stelle muss erwähnt werden, dass dies zwar sehr gut funktioniert, es eine 100%ige Absicherung gegenüber Webinhalten aber niemals geben kann.
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Web Proxy / Administration / Remote Access Control Lists → Hinzufügen einer Liste durch Klick auf das Plus-Symbol* Haken bei enabled
* Filename: shallalist
* URL: http://www.shallalist.de/Downloads/shallalist.tar.gz
* Description: shallalist
 
 
 
→ Save changes
 
→ Download ACLs
|-
|}
Das Herunterladen der Liste kann eine Weile dauern. Nach erfolgtem Download können Sie Ihre soeben angelegte Liste (shallalist) nochmals editieren und unter categories jene Themenfelder auswählen, welche vom Schulnetz aus gesperrt sein sollen.
 
 
{| style="border-spacing:0;width:16.932cm;"
|- style="border:none;padding:0.049cm;"
|| Sperrempfehlungen (Sperrungen sollten in Absprache mit Schulleitung und Kollegium erfolgen):* anonvpn (Anonymisierungsdienste)
* chat (Chatdienste)
* dating (Datingwebsites)
* dynamic (Zugriff auf DynDNS-Adressen; z. B. Heimnetz des Schülers)
* gamble (Glücksspiel)
* hacking (Hacking)
* hobby_games-misc (Onlinespiele)
* hobby_games-online (Onlinespiele)
* porn (Pornografie)
* sex_lingerie (Pornografie)
* socialnet (Soziale Netzwerke)
* spyware (Spyware)
* violence (Gewalt)
* warez (Hacking)
 
 
 
 
|-
|}
== Blacklist automatisch aktualisieren ==
 
Beispiel: wöchentliche Aktualisierung der Shallalist am Montag um 00:00 Uhr
 
 
{| style="border-spacing:0;width:16.062cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Web Proxy / Administration / Remote Access Control List → Schedule with Cron* Haken bei enabled
* Minutes: 0
* Hours: 0
* Day of month: *
* Months: *
* Days of week: 1
* Command: Download and reload external proxy ACLs
* Description: fetch proxy acls
 
 
 
 
|-
|}
== Benutzerdefinierte Whitelists und Blacklists ==
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Web Proxy / Administration / Forward Proxy / Access Control List* Whitelist
** Für Domains/URLs, die Sie nicht sperren möchten, aber durch die Shallalist geblockt sind
** <mit Komma getrennte Angabe gewünschter Einträge>
* Blacklist
** Für Domains/URLs, die Sie sperren möchten, die aber nicht in der Shallalist enthalten sind
** <mit Komma getrennte Angabe ungewünschter Einträge>
 
 
 
 
|-
|}
Damit Benutzer den URL-Filter nicht einfach dadurch umgehen können, dass sie statt der URL die korrespondierende IP einer Webseite in die Adresszeile des Browsers eingeben, kann die Eingabe von IP-Adressen als URL mit folgendem regulären Ausdruck gesperrt werden:
 
 
{| style="border-spacing:0;width:13.478cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Web Proxy / Administration / Forward Proxy / Access Control List* Blacklist: [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
 
 
 
 
|-
|}
= Vollqualifizierte Domänennamen für Schulnetzdienste =
 
== Subdomains beim Webhoster einrichten ==
 
Die Zugriffe auf Dienste im Schulnetz sollen aus Gründen der Sicherheit ausschließlich verschlüsselt erfolgen. Um hierfür gültige Zertifikate generieren zu können, ist für jeden Dienst ein vollqualifizierter öffentlicher Domänenname erforderlich. Somit ist es auch möglich, gesichert auf Dienste von außen zuzugreifen (kann auf Wunsch unterbunden werden).
 
Die meisten Schulen haben sich für ihre Schulhomepage bereits einen entsprechenden Domänennamen (hier im weiteren als Beispiel: ihre-schule.de) gesichert. Sofern Ihr Webhoster dies unterstützt, können Sie für die Dienste im Schulnetz entsprechende Subdomains anlegen, welche dann auf den Internetanschluss der Schule geleitet werden sollen - z. B.:* Webdienste
** nextcloud.ihre-schule.de (Zugriff auf die Nextcloud)
** usermanagement.ihre-schule.de (Zugriff auf den LDAP-Account-Manager zur Benutzerverwaltung)
** selfservice.ihre-schule.de (Zugriff auf den Self-Service-Password-Dienst)
** fog.ihre-schule.de (Zugriff auf den Image-Server FOG)
* Andere Dienste
** ldap.ihre-schule.de (Zugriff für externe ldap-Anfragen)
* WWW-SubdomainsFalls gewünscht legen sich auch die WWW-Subdomains für Ihre Dienste an, z. B. www.nextcloud.ihre-schule.de
 
 
 
OPNsense wird im Abschnitt "Installation und Konfiguration des Reverse-Proxy-Servers" so konfiguriert, dass die angegebenen Domänennamen sowohl von innerhalb des Schulnetzes und wenn gewünscht auch von außerhalb für den Zugriff auf die Dienste verwendet werden können. So nutzt z. B. ein Schüler sowohl von zu Hause als auch vom Schulnetz aus die Nextcloud durch Angabe der URL https://nextcloud.ihre-schule.de (und nicht durch Angabe einer IP-Adresse).
 
== Subdomains beim Webhoster weiterleiten ==
 
Damit die angelegten Subdomains auf die IP-Adresse des Internetanschlusses für das Schulnetz zeigen, gibt es zwei Möglichkeiten:
 
=== Möglichkeit 1: Sie erhalten eine feste IP-Adresse von Ihrem Internet-Provider → A-Record ===
 
In diesem Fall legen Sie beim Webhoster unter den Nameservereinstellungen für jede angelegte Subdomain einen A-Record mit der festen IP-Adresse des Schulnetz-Internetanschlusses fest.
 
=== Möglichkeit 2: Die IP-Adresse des Schulnetz-Internetanschlusses ändert sich in regelmäßigen Abständen → CNAME-Record ===
 
In diesem Fall benötigen Sie einen DynDNS-Anbieter, aus dessen Pool Sie sich einen Domänennamen reservieren, der auf die IP-Adresse des Schulnetz-Internetanschlusses zeigt. Damit die regelmäßig stattfindenden Änderungen der IP-Adresse für den beim DynDNS-Anbieter reservierten Domänennamen aktualisiert werden, können Sie den von OPNsense integrierten Aktualisierungs-Client verwenden:
 
 
{| style="border-spacing:0;width:15.011cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Dynamic DNS → Add* Haken bei Enable
* Service Type: hier können Sie aus zahlreichen DynDNS-Anbietern auswählen
* Interface to monitor: WAN
* Hostname: z. B. schule-xyz.dynanbieter.org
* Username / Password: Zugangsdaten für den DynDNS-Anbieter
 
 
 
 
|-
|}
Nach erfolgreicher Einrichtung des DynDNS-Dienstes legen Sie beim Webhoster unter den Nameservereinstellungen für jede angelegte Subdomain einen CNAME-Record mit dem DynDNS-Domänennamen des Schulnetz-Internetanschlusses fest.= Installation und Konfiguration des Reverse-Proxy-Servers =
 
== Warum eigentlich ein Reverse-Proxy? ==
 
Der Reverse-Proxy entscheidet für an ihn gerichtete Anfragen, ob und an wen er diese Weiterleitet.
 
Sofern man nur einen Dienst von außen zugänglich machen möchte (z. B. die Nextcloud), könnte man auch den einfacheren Weg wählen und im Router mit entsprechend NAT-Regeln (z. B. für die Ports 80 und 443) arbeiten.
 
Im Schulnetzkonzept gibt es aber gute Gründe dafür, einen Reverse-Proxy einzusetzen:* Es gibt mehrere Dienste, die von außen über die gleichen Ports zugänglich sein sollen (z. B. Nextcloud, Collabora, Passwort-Service), sodass NAT-Regeln hierfür nicht ausreichen.
* Der Reverse-Proxy wird im Schulnetzkonzept auch dafür eingesetzt, für Anfragen die dazu passenden Zertifikate bereitzustellen. Dies entlastet den dahinter liegenden Webserver (z. B. den der Nextcloud) enorm.
* Der Reverse-Proxy wird auch für Anfragen von innerhalb des Schulnetzes verwendet, sodass Dienste wie die Nextcloud auch von dort verschlüsselt über ihren vollqualifizierten Domänennamen erreichbar sind und intern und nicht über das Internet geroutet werden.
 
 
 
== Installation und Konfiguration des HAProxy-Plugins ==
 
Der Reverse-Proxy mit Namen HAProxy muss zunächst installiert werden:
 
 
{| style="border-spacing:0;width:9.121cm;"
|- style="border:none;padding:0.049cm;"
|| System / Firmware / Plugins / os-haproxy → Install
|-
|}
Anschließend muss der HAProxy aktiviert werden:
 
 
{| style="border-spacing:0;width:8.497cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Service Settings* Haken bei: Enable HAProxy
 
 
 
 
|-
|}
== Einrichtung virtueller IPs und zugehöriger Namen (Aliases) für den HAProxy ==
 
Um zwischen Anfragen an den HAProxy unterscheiden zu können, die ausschließlich von intern (lan) oder von intern und extern (lan_wan) zulässig sind, werden zwei virtuelle LAN-IP-Adressen benötigt, auf denen der HAProxy lauschen kann:
 
 
{| style="border-spacing:0;width:12.278cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / Virtual IPs / Settings → Add
 
1. Virtual IP (HAProxy-Interface für interne und externe Anfragen)* Mode: IP Alias
* Interface: LAN_SERVER
* Address: 10.1.100.2/32
* Description: HAProxy_lan_wan
 
 
 
2. Virtual IP (HAProxy-Interface ausschließlich für interne Anfragen)* Mode: IP Alias
* Interface: LAN_SERVER
* Address: 10.1.100.3/32
* Description: HAProxy_lan
 
 
 
 
|-
|}
Zusätzlich werden für beide IP-Adressen Alias-Namen in OPNsense hinterlegt, auf die später zugegriffen wird:
 
 
{| style="border-spacing:0;width:11.485cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / Aliases → Add
 
1. Alias (HAProxy-Interface für interne und externe Anfragen)* Name: HAProxy_lan_wan
* Type: Host(s)
* Content: 10.1.100.2
 
 
 
2. Alias (HAProxy-Interface ausschließlich für interne Anfragen)* Name: HAProxy_lan
* Type: Host(s)
* Content: 10.1.100.3
 
 
 
 
|-
|}
== Interne und externe Anfragen Webserveranfragen (Ports 80/443) auf den HAProxy weiterleiten ==
 
Sowohl externe als auch interne HTTP- und HTTPS-Anfragen sollen auf die entsprechenden HAProxy-Interfaces weitergeleitet werden.
 
=== Weiterleitung externer Anfragen ===
 
 
{| style="border-spacing:0;width:10.063cm;"
|- style="border:none;padding:0.049cm;"
|| Firewall / NAT / Port Forward → Add
 
1. Weiterleitung (auf Port 80)* Interface: WAN
* TCP/IP Version: IPv4
* Protocol: TCP
* Destination: any
* Destination port range: from: HTTP to: HTTP
* Redirect target IP: HAProxy_lan_wan
* Redirect target Port: http
* Description: HAProxy_lan_wan
 
 
 
2. Weiterleitung (auf Port 443)* Interface: WAN
* TCP/IP Version: IPv4
* Protocol: TCP
* Destination: any
* Destination port range: from: HTTPS to: HTTPS
* Redirect target IP: HAProxy_lan_wan
* Redirect target Port: https
* Description: HAProxy_lan_wan
 
 
 
 
|-
|}
=== Weiterleitung interner Anfragen ===
 
Damit schulhausinterne Aufrufe der Webdienste direkt beim Reverse-Proxy landen und nicht über das Internet geroutet werden, müssen entsprechende Nameserver-Weiterleitungen zur virtuellen IP-Adresse des gewünschten HAProxy-Moduls existieren. Sofern der Webdienst nur innerhalb des Schulhauses erreichbar sein soll, leiten Sie zur virtuellen IP von HAProxy_lan ansonsten zu HAProxy_lan_wan weiter.
 
Beispiel für den Webdienst Nextcloud, welcher auch von außen erreichbar sein soll:
 
 
{| style="border-spacing:0;width:11.486cm;"
|- style="border:none;padding:0.049cm;"
|| Services / Unbound DNS / Overrides / Host Overrides → Add* Host: nextcloud
* Domain: z. B. ihre-schule.de
* Type: A or AAAA (IPv4 or IPv6 address)
* IP: z. B. 10.1.100.2 (virtuelle IP von HAProxy_lan_wan)
 
 
 
 
|-
|}
== Einrichtung von Real Servers ==
 
Real Servers sind jene Dienste, welche hinter dem HAProxy erreicht werden sollen.
 
Richten Sie für jeden Ihrer Webdienste - unabhängig davon, ob dieser von außen erreichbar sein soll oder nicht - einen Real Server ein:* nextcloud.ihre-schule.de
* collabora.ihre-schule.de
* usermanagement.ihre-schule.de
* selfservice.ihre-schule.de
* fog.ihre-schule.de
 
 
 
Beispiel für den Webdienst nextcloud.ihre-schule.de:
 
 
{| style="border-spacing:0;width:11.89cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Real Servers → Add* Name: nextcloud_host
* FQDN or IP: z. B. 10.1.100.8 (IP-Adresse Ihrer Nextcloud)
* Port: 80
* SSL: kein Haken
* Verify SSL CA: kein Haken
 
 
 
 
|-
|}
== Einrichtung von Backend Pools ==
 
Mit einem Backend Pool können ein oder mehrere Real Server gebündelt werden. Auch wenn für jeden Webdienst jeweils nur einen Real Server (z. B. gibt es nur einen Nextcloud-Server) bereitgehalten wird, muss an dieser Stelle für jeden Dienst ein Backend Pool eingerichtet werden.
 
Beispiel für den Webdienst nextcloud.ihre-schule.de:
 
 
{| style="border-spacing:0;width:12.704cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Virtual Services / Backend Pools → Add* Name: nextcloud_backend
* Servers: nextcloud_host
 
 
 
 
|-
|}
== Einrichtung der Public Services ==
 
Die Public Services des HAProxys sind die Anlaufstellen, die interne bzw. externe Anfragen entgegennehmen.
 
Für das Schulnetzkonzept werden 3 Public Services benötigt:* eines für interne und externe Anfragen über http,
* eines für interne und externe Anfragen über https und
* eines für ausschließlich interne Anfragen über https.
 
 
 
=== Einrichtung des Public Service für interne und externe Anfragen über http ===
 
 
{| style="border-spacing:0;width:12.795cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Virtual Services / Public Services → Add* Name: http_lan_wan
* Description: interne und externe http-Anfragen
* Listen Addresses:
** z. B. 10.1.100.2:80 (HAProxy_lan_wan)
** z. B. 10.1.100.3:80 (HAProxy_lan)
* Type: HTTP / HTTPS (SSL offloading)
* Default Backend Pool: none
* Enable SSL offloading: kein Haken
* X-Forwarded-For header: Haken
 
 
 
 
|-
|}
=== Einrichtung des Public Service für interne und externe Anfragen über https ===
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Virtual Services / Public Services → Add* Name: https_lan_wan
* Description: interne und externe https-Anfragen
* Listen Addresses:
** z. B. 10.1.100.2:443 (HAProxy_lan_wan)
** z. B. 10.1.100.3:443 (HAProxy_lan)
* Type: HTTP / HTTPS (SSL offloading)
* Default Backend Pool: none
* Enable SSL offloading: Haken
* Certificates: Web GUI SSL certificate (wird später durch Let's-Encrypt-Zertifikate ersetzt)
* X-Forwarded-For header: Haken
 
 
 
 
|-
|}
=== Einrichtung des Public Service für ausschließlich interne Anfragen über https ===
 
 
{| style="border-spacing:0;width:17cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Virtual Services / Public Services → Add* Name: https_lan
* Description: ausschließlich interne https-Anfragen
* Listen Addresses:
** z. B. 10.1.100.3:443 (HAProxy_lan)
* Type: HTTP / HTTPS (SSL offloading)
* Default Backend Pool: none
* Enable SSL offloading: Haken
* Certificates: Web GUI SSL certificate (wird später durch Let's-Encrypt-Zertifikate ersetzt)
* X-Forwarded-For header: Haken
 
 
 
 
|-
|}
=== Einrichtung von Conditions ===
 
Conditions sind vordefinierte Bedingungen die für die späteren Regeln für die Reaktionen des HAProxy notwendig sind.
 
Zunächst benötigen Sie für jeden Webdienst eine Bedingung, die greift, falls eine Anfrage mit dem entsprechenden Domänennamen an den HAProxy gerichtet wird.Beispiel für den Webdienst nextcloud.ihre-schule.de:
 
 
{| style="border-spacing:0;width:12.054cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Rules & Checks / Conditions → Add* Name: nextcloud
* Condition type: Host ends with
* Host Suffix: nextcloud.ihre-schule.de
 
 
 
 
|-
|}
Weiterhin benötigen Sie eine Bedingung, mit der der HAProxy erkennt, dass eine Anfrage an ihn nicht verschlüsselt erfolgt ist:
 
 
{| style="border-spacing:0;width:12.054cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Rules & Checks / Conditions → Add* Name: not-ssl
* Condition type: Traffic is SSL (locally deciphered)
* Negate condition: Haken
 
 
 
 
|-
|}
=== Einrichtung von Rules ===
 
Rules sind vordefinierte Regeln, wie der HAProxy bei Eintreten einer oder mehrere Bedingungen reagieren soll.
 
Zunächst benötigen Sie für jeden Webdienst eine Regel, die den HAProxy dazu verleitet, dass er eine an ihn gerichtete Anfrage an den entsprechenden Backend Pool weiterleitet.Beispiel für den Webdienst nextcloud.ihre-schule.de:
 
 
{| style="border-spacing:0;width:11.158cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Rules & Checks / Rules → Add* Name: nextcloud
* Test type: if
* Select conditions: nextcloud
* Execute function: Use specified Backend Pool
* Use backend pool: nextcloud_backend
 
 
 
 
|-
|}
Weiterhin benötigen Sie eine Regel, die nicht verschlüsselte htttp-Anfragen auf https umleitet:
 
 
{| style="border-spacing:0;width:11.158cm;"
|- style="border:none;padding:0.049cm;"
|| Services / HAProxy / Settings / Rules & Checks / Rules → Add* Name: redirect_ssl
* Test type: if
* Select conditions: not-ssl
* Execute function: http-request-redirect
* HTTP Redirect: scheme https code 301
 
 
 
 
|-
|}
== Zuweisung von Rules zu Backend-Pools ==
 
Da jede http-Anfrage an einen der Webdienste auf https umgeleitet werden soll, weisen sie jedem Backend Pool dir Rule redirect_ssl zu.
 
Beispiel für den Backend Pool nextcloud_backend:
 
 
{| style="border-spacing:0;width:14.573cm;"
|- style="border:none;padding:0.049cm;"
|| HAProxy / Settings / Virtual Services / Backend Pools / nextcloud_backend → Edit
 
Select Rules: redirect_ssl
 
 
|-
|}
== Zuweisung von Rules zu Public Services ==
 
Der Public Service http_lan_wan soll alle an ihn gestellte Anfragen an den entsprechenden Backend-Poll weiterleiten:
 
 
{| style="border-spacing:0;width:13.674cm;"
|- style="border:none;padding:0.049cm;"
|| HAProxy / Settings / Virtual Services / Public Services / http_lan_wan → Edit
 
Select Rules: z. B.: nextcloud&nbsp; fog usermanagement opnsense collabora
|-
|}
Der Public Service https_lan soll nur auf https-Anfragen reagieren, die ausschließlich intern zugänglich sein sollen:
 
 
{| style="border-spacing:0;width:12.917cm;"
|- style="border:none;padding:0.049cm;"
|| HAProxy / Settings / Virtual Services / Public Services / https_lan → Edit
 
Select Rules: z. B.: fog usermanagement opnsense
|-
|}
Der Public Service https_lan_wan soll auf sowohl interne als auch externe https-Anfragen reagieren:
 
 
{| style="border-spacing:0;width:13.831cm;"
|- style="border:none;padding:0.049cm;"
|| HAProxy / Settings / Virtual Services / Public Services / https_lan_wan → Edit
 
Select Rules: z. B.: nextcloud collabora
|-
|}
= Installation und Konfiguration der automatisierten 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 =
 
* [https://opnsense.org/download/ OPNsense Downloadseite]
* [https://wiki.opnsense.org/ OPNsense Dokumentation]
* [https://www.putty.org/ SSH-Consolen-Client Putty]
* [https://winscp.net/ SCP-Dateitransfer-Client WinSCP]
 
----
 
== Quellen ==
# https://schulnetzkonzept.de/opnsense
 
== Weblinks ==
* [http://opnsense.org/ Offizielle Webpräsenz des Projektes]
 
== Siehe auch ==
* BSD-basiert
** [[pfSense]]
** [[FreeNAS]]
* Linux-basiert
** [[IPfire]]
 
[[Category:Netzwerke:Router]]
[[Category:Netzwerke:Firewall]]

Aktuelle Version vom 15. April 2024, 14:19 Uhr

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.