OPNsense HAProxy Einrichtung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Udpate) |
|||
| 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