OPNsense HAProxy Einrichtung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 1: | Zeile 1: | ||
=Update= | = Update = | ||
* System | |||
*System | ** Firmware | ||
**Firmware | *** Status | ||
*** | * Nach unten scrollen | ||
** | * auf Update klicken | ||
= Installation = | |||
* System | |||
* | ** Firmware | ||
** | *** Plugins | ||
*** | * Show community plugins | ||
* Suchen nach haproxy | |||
= | = Einstiegspunkt = | ||
*Realserver | |||
* Services | |||
=Virtual Service= | ** HAProxy | ||
*** Settings | |||
[[ | |||
=Virtual Service= | ;Die Reiter der Seite in der Reihenfolge der Einrichtung | ||
*Public Services | |||
{| 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 = | |||
*curl https://opfer.lab30.linuggs.de/ | *curl https://opfer.lab30.linuggs.de/ | ||
=Aufgabe= | |||
*Richtet den HAProxy so ein, | = 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
- Firmware
- Nach unten scrollen
- auf Update klicken
Installation
- System
- Firmware
- Plugins
- Firmware
- Show community plugins
- Suchen nach haproxy
Einstiegspunkt
- Services
- HAProxy
- Settings
- HAProxy
- 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
- Richtet den HAProxy so ein, dass ihr bei einer Anfrage auf https://opn.labXX.linuggs.de auf der Adminoberflaeche der OPNsense landet