OPNsense HAProxy Einrichtung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
=Update=
+
= Update =
*System
 
**Firmware
 
***Status
 
;Nach unten scrollen
 
*auf Update klicken
 
  
=Installation=
+
* System
*System
+
** Firmware
**Firmware
+
*** Status
***Plugins
+
* Nach unten scrollen
****Show community plugins
+
* auf Update klicken
;Suchen nach haproxy
 
  
 +
= Installation =
  
=Einstiegspunkt=
+
* System
*Services
+
** Firmware
**HAProxy
+
*** Plugins
***Settings
+
* Show community plugins
[[Datei:Opnsense-haproxy-9.png]]
+
* Suchen nach haproxy
  
=Realserver=
+
= Einstiegspunkt =
*Realserver
+
 
[[Datei:Opnsense-haproxy-1.png]]
+
* Services
=Virtual Service=
+
** HAProxy
*Backend Pools
+
*** Settings
[[Datei:Opnsense-haproxy-2.png]]
+
 
=Virtual Service=
+
;Die Reiter der Seite in der Reihenfolge der Einrichtung
*Public Services
+
 
[[Datei:Opnsense-haproxy-3.png]]
+
{| class="wikitable"
 +
! Reiter !! Inhalt
 +
|-
 +
| Introduction || Quick Start Guide des Plugins
 +
|-
 +
| Real Servers || Die physischen oder virtuellen Server, auf die verteilt wird
 +
|-
 +
| Virtual Services || Backend Pools und Public Services
 +
|-
 +
| Rules & Checks || Conditions, Rules und Health Checks
 +
|-
 +
| User Management || Zugangsdaten fuer geschuetzte Bereiche
 +
|-
 +
| Settings || Dienst starten und Grundeinstellungen
 +
|-
 +
| Advanced || Freie Konfigurationsschnipsel
 +
|}
 +
 
 +
;Reihenfolge
 +
 
 +
* Real Servers anlegen
 +
* Backend Pools bilden
 +
* Public Services anlegen
 +
* HAProxy unter Settings einschalten
 +
* Die Firewall-Regeln muessen von Hand angelegt werden, das Plugin macht das nicht
 +
 
 +
= Realserver =
 +
 
 +
== Real Servers: Edit Server ==
 +
 
 +
{| class="wikitable"
 +
! Bereich !! Parameter !! Wert !! Bedeutung
 +
|-
 +
| || Enabled || (x) || Server wird verwendet
 +
|-
 +
| || Name or Prefix || realserver-opfer || Name des Eintrags
 +
|-
 +
| || Description || || Freitext
 +
|-
 +
| || Type || static || Feste Adresse, keine Aufloesung ueber einen Resolver
 +
|-
 +
| Static Server || FQDN or IP || 10.0.10.104 || Adresse des Zielservers
 +
|-
 +
| Common Options || Port || 80 || Port auf dem Zielserver
 +
|-
 +
| Common Options || Mode || active [default] || Server nimmt Anfragen an, backup nur bei Ausfall der aktiven
 +
|-
 +
| Common Options || SSL || ( ) || Verbindung zum Zielserver unverschluesselt
 +
|-
 +
| Common Options || SSL SNI || || Servername bei verschluesselter Verbindung
 +
|-
 +
| Common Options || Verify SSL Certificate || ( ) || Zertifikat des Zielservers pruefen
 +
|-
 +
| Common Options || SSL Verify CA || Nothing selected || CA fuer diese Pruefung
 +
|}
 +
 
 +
= Virtual Service: Backend Pool =
 +
 
 +
== Virtual Services: Edit Backend Pool ==
 +
 
 +
{| class="wikitable"
 +
! Bereich !! Parameter !! Wert !! Bedeutung
 +
|-
 +
| || Enabled || (x) || Pool wird verwendet
 +
|-
 +
| || Name || backendpool-opfer || Name des Pools
 +
|-
 +
| || Description || || Freitext
 +
|-
 +
| || Mode || HTTP (Layer 7) [default] || Auf Layer 7 kann HAProxy den Inhalt der Anfrage auswerten
 +
|-
 +
| || Balancing Algorithm || Source-IP Hash [default] || Ein Client landet immer auf demselben Server
 +
|-
 +
| || Servers || realserver-opfer || Die Server dieses Pools
 +
|-
 +
| || FastCGI Application || None || Nur fuer FastCGI-Backends noetig
 +
|-
 +
| || Resolver Options || || Nur bei dynamischer Namensaufloesung noetig
 +
|-
 +
| || Enable Health Checking || ( ) || Regelmaessige Pruefung ob der Server lebt
 +
|-
 +
| HTTP(S) settings || Enable HTTP/2 || (x) || HTTP/2 zum Zielserver erlauben
 +
|-
 +
| HTTP(S) settings || HTTP/2 without TLS || ( ) || HTTP/2 auch unverschluesselt
 +
|-
 +
| HTTP(S) settings || Advertise Protocols (ALPN) || HTTP/2, HTTP/1.1 || Protokolle die beim TLS-Handshake angeboten werden
 +
|-
 +
| HTTP(S) settings || Forwarded header (RFC7239) || ( ) || Setzt den Forwarded-Header
 +
|-
 +
| HTTP(S) settings || Forwarded header parameters || || Zusatzangaben fuer diesen Header
 +
|}
 +
 
 +
;Ein Backend Pool muss auch dann angelegt werden, wenn es nur einen Server gibt
 +
 
 +
= Virtual Service: Public Service =
 +
 
 +
== Virtual Services: Edit Public Service ==
 +
 
 +
{| class="wikitable"
 +
! Bereich !! Parameter !! Wert !! Bedeutung
 +
|-
 +
| || Enabled || (x) || Dienst wird verwendet
 +
|-
 +
| || Name || shared-frontend || Name des Dienstes
 +
|-
 +
| || Description || || Freitext
 +
|-
 +
| || Listen Addresses || 192.168.66.13:443 || Adresse und Port auf denen HAProxy lauscht
 +
|-
 +
| || Type || HTTP / HTTPS (SSL offloading) [default] || HAProxy beendet die TLS-Verbindung selbst
 +
|-
 +
| || Default Backend Pool || None || Ohne passende Regel wird nichts weitergeleitet
 +
|-
 +
| || Enable SSL offloading || (x) || Schaltet den Bereich SSL Offloading frei
 +
|-
 +
| SSL Offloading || Certificates || star.lab30.linuggs.de || Zertifikat fuer die eingehenden Verbindungen
 +
|-
 +
| SSL Offloading || Default certificate || None || Zertifikat wenn kein anderes passt
 +
|-
 +
| Tuning Options || Maximum Connections || || Begrenzung der gleichzeitigen Verbindungen
 +
|-
 +
| Logging Options || Detailed Logging || ( ) || Ausfuehrliches Protokoll
 +
|-
 +
| Stickiness table || Table type || None || Keine Sitzungsbindung ueber eine Tabelle
 +
|-
 +
| Stickiness table || Stored data types || Nothing selected || Was in dieser Tabelle gespeichert wird
 +
|-
 +
| Rules || Select Rules || rule-opfer || Die Regeln dieses Dienstes
 +
|-
 +
| Error Messages || Select Error Messages || Nothing selected || Eigene Fehlerseiten
 +
|}
 +
 
 +
;Der Public Service wird zuerst ohne Regel angelegt, die Regel wird danach unter Rules & Checks gebaut und hier nachgetragen
 +
 
 +
= Rules & Checks: Condition =
 +
 
 +
== Rules & Checks: Edit Condition ==
 +
 
 +
{| class="wikitable"
 +
! Bereich !! Parameter !! Wert !! Bedeutung
 +
|-
 +
| || Name || conditon-opfer || Name der Bedingung
 +
|-
 +
| || Description || || Freitext
 +
|-
 +
| Condition || Condition type || Host starts with || Prueft den Anfang des Host-Headers
 +
|-
 +
| Condition || Negate condition || ( ) || Kehrt die Bedingung um
 +
|-
 +
| Condition || Case-sensitive || ( ) || Gross- und Kleinschreibung unterscheiden
 +
|-
 +
| Parameters || Host Prefix || opfer || Der gesuchte Anfang des Hostnamens
 +
|}
 +
 
 +
= Rules & Checks: Rule =
 +
 
 +
== Rules & Checks: Edit Rule ==
 +
 
 +
{| class="wikitable"
 +
! Bereich !! Parameter !! Wert !! Bedeutung
 +
|-
 +
| || Name || rule-opfer || Name der Regel
 +
|-
 +
| || Description || || Freitext
 +
|-
 +
| Optional condition || Test type || IF [default] || Regel greift wenn die Bedingung zutrifft
 +
|-
 +
| Optional condition || Select conditions || conditon-opfer || Die zu pruefende Bedingung
 +
|-
 +
| Optional condition || Logical operator for conditions || AND [default] || Verknuepfung bei mehreren Bedingungen
 +
|-
 +
| HAProxy function || Execute function || Use specified Backend Pool || Was bei einem Treffer geschieht
 +
|-
 +
| Parameters || Use backend pool || backendpool-opfer || Ziel der Weiterleitung
 +
|}
 +
 
 +
= Zurück zu Virtual Service =
 +
 
 +
* Public Services
 +
* Den angelegten Public Service oeffnen
 +
* Unter '''Rules''' die Regel rule-opfer eintragen
 +
* Speichern
 +
 
 +
= Settings =
 +
 
 +
== Settings: Service ==
 +
 
 +
{| class="wikitable"
 +
! Parameter !! Wert !! Bedeutung
 +
|-
 +
| Enable HAProxy || (x) || Startet den Dienst
 +
|-
 +
| Graceful stop || ( ) || Laufende Verbindungen beim Stoppen zu Ende bringen
 +
|-
 +
| Graceful stop timeout || 60s || Wartezeit dafuer
 +
|-
 +
| Gradual connection close time || || Zeitraum ueber den Verbindungen abgebaut werden
 +
|-
 +
| Seamless reload || ( ) || Neuladen ohne Verbindungsabbruch
 +
|-
 +
| Show introduction pages || (x) || Blendet den Quick Start Guide ein
 +
|}
 +
 
 +
;Schaltflaechen
 +
 
 +
{| class="wikitable"
 +
! Schaltflaeche !! Wirkung
 +
|-
 +
| Apply || Uebernimmt die Konfiguration
 +
|-
 +
| Save & Test syntax || Prueft die erzeugte HAProxy-Konfiguration vor dem Uebernehmen
 +
|}
 +
 
 +
= Firewall =
 +
 
 +
== Firewall: Rules: WAN ==
 +
 
 +
{| class="wikitable"
 +
! Parameter !! Wert !! Bedeutung
 +
|-
 +
| Action || Pass || Erlaubt den Verkehr
 +
|-
 +
| Disabled || ( ) || Regel ist aktiv
 +
|-
 +
| Quick || (x) || Bei einem Treffer wird sofort entschieden
 +
|-
 +
| Interface || WAN || Interface der Regel
 +
|-
 +
| Direction || in || Eingehend
 +
|-
 +
| TCP/IP Version || IPv4 || Adressfamilie
 +
|-
 +
| Protocol || TCP || Protokoll
 +
|-
 +
| Source / Invert || ( ) || Absender nicht umkehren
 +
|-
 +
| Source || any || Beliebiger Absender
 +
|-
 +
| Destination / Invert || ( ) || Ziel nicht umkehren
 +
|-
 +
| Destination || This Firewall || HAProxy lauscht auf der Firewall selbst
 +
|-
 +
| Destination port range || from HTTPS to HTTPS || Nur Port 443
 +
|}
 +
 
 +
;Das Plugin legt keine Firewall-Regeln an, ohne diese Regel ist der Public Service von aussen nicht erreichbar
 +
 
 +
= Tests =
  
=Rules & Checks=
 
*Condition
 
[[Datei:Opnsense-haproxy-4.png]]
 
=Rules & Checks=
 
*Rules
 
[[Datei:Opnsense-haproxy-5.png]]
 
=Zurück zu Virtual Service=
 
*Public Services
 
[[Datei:Opnsense-haproxy-6.png]]
 
=Settings=
 
*Service
 
**Enable HA Proxy
 
[[Datei:Opnsense-haproxy-7.png]]
 
=Firewall=
 
*Firewall
 
**Rules:
 
**WAN
 
[[Datei:Opnsense-haproxy-8.png]]
 
=Tests=
 
 
*curl https://opfer.lab30.linuggs.de/
 
*curl https://opfer.lab30.linuggs.de/
=Aufgabe=
+
 
*Richtet den HAProxy so ein, da ihr bei einer Anfrage auf https://opn.labXX.linuggs.de auf der Adminoberfläche der OPNsense landet
+
= Aufgabe =
 +
 
 +
* Richtet den HAProxy so ein, dass ihr bei einer Anfrage auf https://opn.labXX.linuggs.de auf der Adminoberflaeche der OPNsense landet

Aktuelle Version vom 30. August 2026, 15:29 Uhr

Update

  • System
    • Firmware
      • Status
  • Nach unten scrollen
  • auf Update klicken

Installation

  • System
    • Firmware
      • Plugins
  • Show community plugins
  • Suchen nach haproxy

Einstiegspunkt

  • Services
    • HAProxy
      • Settings
Die Reiter der Seite in der Reihenfolge der Einrichtung
Reiter Inhalt
Introduction Quick Start Guide des Plugins
Real Servers Die physischen oder virtuellen Server, auf die verteilt wird
Virtual Services Backend Pools und Public Services
Rules & Checks Conditions, Rules und Health Checks
User Management Zugangsdaten fuer geschuetzte Bereiche
Settings Dienst starten und Grundeinstellungen
Advanced Freie Konfigurationsschnipsel
Reihenfolge
  • Real Servers anlegen
  • Backend Pools bilden
  • Public Services anlegen
  • HAProxy unter Settings einschalten
  • Die Firewall-Regeln muessen von Hand angelegt werden, das Plugin macht das nicht

Realserver

Real Servers: Edit Server

Bereich Parameter Wert Bedeutung
Enabled (x) Server wird verwendet
Name or Prefix realserver-opfer Name des Eintrags
Description Freitext
Type static Feste Adresse, keine Aufloesung ueber einen Resolver
Static Server FQDN or IP 10.0.10.104 Adresse des Zielservers
Common Options Port 80 Port auf dem Zielserver
Common Options Mode active [default] Server nimmt Anfragen an, backup nur bei Ausfall der aktiven
Common Options SSL ( ) Verbindung zum Zielserver unverschluesselt
Common Options SSL SNI Servername bei verschluesselter Verbindung
Common Options Verify SSL Certificate ( ) Zertifikat des Zielservers pruefen
Common Options SSL Verify CA Nothing selected CA fuer diese Pruefung

Virtual Service: Backend Pool

Virtual Services: Edit Backend Pool

Bereich Parameter Wert Bedeutung
Enabled (x) Pool wird verwendet
Name backendpool-opfer Name des Pools
Description Freitext
Mode HTTP (Layer 7) [default] Auf Layer 7 kann HAProxy den Inhalt der Anfrage auswerten
Balancing Algorithm Source-IP Hash [default] Ein Client landet immer auf demselben Server
Servers realserver-opfer Die Server dieses Pools
FastCGI Application None Nur fuer FastCGI-Backends noetig
Resolver Options Nur bei dynamischer Namensaufloesung noetig
Enable Health Checking ( ) Regelmaessige Pruefung ob der Server lebt
HTTP(S) settings Enable HTTP/2 (x) HTTP/2 zum Zielserver erlauben
HTTP(S) settings HTTP/2 without TLS ( ) HTTP/2 auch unverschluesselt
HTTP(S) settings Advertise Protocols (ALPN) HTTP/2, HTTP/1.1 Protokolle die beim TLS-Handshake angeboten werden
HTTP(S) settings Forwarded header (RFC7239) ( ) Setzt den Forwarded-Header
HTTP(S) settings Forwarded header parameters Zusatzangaben fuer diesen Header
Ein Backend Pool muss auch dann angelegt werden, wenn es nur einen Server gibt

Virtual Service: Public Service

Virtual Services: Edit Public Service

Bereich Parameter Wert Bedeutung
Enabled (x) Dienst wird verwendet
Name shared-frontend Name des Dienstes
Description Freitext
Listen Addresses 192.168.66.13:443 Adresse und Port auf denen HAProxy lauscht
Type HTTP / HTTPS (SSL offloading) [default] HAProxy beendet die TLS-Verbindung selbst
Default Backend Pool None Ohne passende Regel wird nichts weitergeleitet
Enable SSL offloading (x) Schaltet den Bereich SSL Offloading frei
SSL Offloading Certificates star.lab30.linuggs.de Zertifikat fuer die eingehenden Verbindungen
SSL Offloading Default certificate None Zertifikat wenn kein anderes passt
Tuning Options Maximum Connections Begrenzung der gleichzeitigen Verbindungen
Logging Options Detailed Logging ( ) Ausfuehrliches Protokoll
Stickiness table Table type None Keine Sitzungsbindung ueber eine Tabelle
Stickiness table Stored data types Nothing selected Was in dieser Tabelle gespeichert wird
Rules Select Rules rule-opfer Die Regeln dieses Dienstes
Error Messages Select Error Messages Nothing selected Eigene Fehlerseiten
Der Public Service wird zuerst ohne Regel angelegt, die Regel wird danach unter Rules & Checks gebaut und hier nachgetragen

Rules & Checks: Condition

Rules & Checks: Edit Condition

Bereich Parameter Wert Bedeutung
Name conditon-opfer Name der Bedingung
Description Freitext
Condition Condition type Host starts with Prueft den Anfang des Host-Headers
Condition Negate condition ( ) Kehrt die Bedingung um
Condition Case-sensitive ( ) Gross- und Kleinschreibung unterscheiden
Parameters Host Prefix opfer Der gesuchte Anfang des Hostnamens

Rules & Checks: Rule

Rules & Checks: Edit Rule

Bereich Parameter Wert Bedeutung
Name rule-opfer Name der Regel
Description Freitext
Optional condition Test type IF [default] Regel greift wenn die Bedingung zutrifft
Optional condition Select conditions conditon-opfer Die zu pruefende Bedingung
Optional condition Logical operator for conditions AND [default] Verknuepfung bei mehreren Bedingungen
HAProxy function Execute function Use specified Backend Pool Was bei einem Treffer geschieht
Parameters Use backend pool backendpool-opfer Ziel der Weiterleitung

Zurück zu Virtual Service

  • Public Services
  • Den angelegten Public Service oeffnen
  • Unter Rules die Regel rule-opfer eintragen
  • Speichern

Settings

Settings: Service

Parameter Wert Bedeutung
Enable HAProxy (x) Startet den Dienst
Graceful stop ( ) Laufende Verbindungen beim Stoppen zu Ende bringen
Graceful stop timeout 60s Wartezeit dafuer
Gradual connection close time Zeitraum ueber den Verbindungen abgebaut werden
Seamless reload ( ) Neuladen ohne Verbindungsabbruch
Show introduction pages (x) Blendet den Quick Start Guide ein
Schaltflaechen
Schaltflaeche Wirkung
Apply Uebernimmt die Konfiguration
Save & Test syntax Prueft die erzeugte HAProxy-Konfiguration vor dem Uebernehmen

Firewall

Firewall: Rules: WAN

Parameter Wert Bedeutung
Action Pass Erlaubt den Verkehr
Disabled ( ) Regel ist aktiv
Quick (x) Bei einem Treffer wird sofort entschieden
Interface WAN Interface der Regel
Direction in Eingehend
TCP/IP Version IPv4 Adressfamilie
Protocol TCP Protokoll
Source / Invert ( ) Absender nicht umkehren
Source any Beliebiger Absender
Destination / Invert ( ) Ziel nicht umkehren
Destination This Firewall HAProxy lauscht auf der Firewall selbst
Destination port range from HTTPS to HTTPS Nur Port 443
Das Plugin legt keine Firewall-Regeln an, ohne diese Regel ist der Public Service von aussen nicht erreichbar

Tests

Aufgabe