16.8. HAProxy

Die HAProxy-Einstellungen finden Sie unter Services → HAProxy.

Der HAProxy ist ein hochverfügbarer Lord Balancer und Proxy-Server für TCP und HTTP.

Bevor Sie den HAProxy verwenden können, muss es installiert werden. Sie können ihn unter System → Addons installieren.

16.8.1. Allgemeine Einstellungen

HAProxy

Auf dieser Seite kann der HAProxy aktiviert oder deaktiviert werden.

Die Maximale Anzahl der Verbindungen kann konfiguriert werden und beträgt standardmäßig 1000.

Hard Stop After definiert die maximale Zeit, die für einen sauberen Soft-Stop erlaubt ist. Dies kann verwendet werden, um sicherzustellen, dass die Instanz auch dann beendet wird, wenn die Verbindungen während eines Softstopps geöffnet bleiben.

SSL Ciphers ist eine Liste von SSL-Ciphers, die durch Doppelpunkte getrennt sind.

SSL-Optionen kann zwischen no-sslv3, no-tlsv10, no-tlsv11, no-tls-tickets, no-tlsv12 und no-tlsv13 gewählt werden.

Let’s Encrypt ACL leitet alle letsencrypt-Anfragen zur Erneuerung der Zertifikate an die VT AIR-Firewall weiter. Verwenden Sie diese Option, wenn VT AIR selbst die Zertifikate im Webmodus erneuert.

Custom Options kann für benutzerdefinierte Konfigurationsparameter für die Konfiguration verwendet werden.

HAProxy wird automatisch mit einem Thread pro CPU-Kern gestartet, um die Verbindungen zu load balancen.

Sie können die Einstellungen in der oberen rechten Ecke als Excel-Tabelle exportieren.

16.8.2. Backend

Ein Backend ist ein Server hinter der Firewall, an den HAProxy Daten senden soll. Daten werden auf dem Frontend empfangen, verarbeitet und an ein Backend weitergeleitet.

HAProxy HAProxy HAProxy

Jedes Backend hat einen Name, eine Beschreibung und kann aktiviert oder deaktiviert werden. Sie können mehrere Server hinzufügen, jeder mit einem Namen, Modus, IP-Adresse, Port und ssl-Verschlüsselung und ssl-Prüfungen für jedes Backend, falls Sie Load Balance wünschen.

SSL Encrypt aktiviert die SSL-Entschlüsselung bei Verbindungen, die von diesem Listener instanziiert werden.

SSL Checks erzwingt die Verschlüsselung aller Health Checks über SSL, unabhängig davon, ob der Server SSL für den normalen Datenverkehr verwendet oder nicht.

Load Balancing kann Round Robin, Static Round Robin, Least Connections oder Source sein.

Connection Timeout ist die maximale Zeit (in Millisekunden), die gewartet wird, bis ein Verbindungsversuch zu einem Server erfolgreich ist. Der Standardwert ist 30000.

Server Timeout ist die maximale Inaktivitätszeit (in Millisekunden) auf der Serverseite. Der Standardwert ist 30000.

Wiederholungen gibt an, wie oft ein Verbindungsversuch auf einem Server wiederholt werden soll, wenn eine Verbindung entweder abgelehnt wird oder ein Timeout eintritt. Der Standardwert ist 3.

Send Proxy, ob das Proxy-Protokoll für die Verbindung zum Backend verwendet werden soll und wenn ja, welche Version.

Source Address, um die Quelle der Verbindung von HAProxy auf der Firewall zu ändern. Dies kann in HA-Setups nützlich sein, um die virtuelle IP als Absender zu verwenden.

WAF-Fehlerseiten Datei ist eine benutzerdefinierte Fehlerseite, wenn WAF aktiviert ist und der Zugriff für dieses Backend blockiert ist. Es muss eine HTML-Datei sein.

Custom Options kann für benutzerdefinierte Konfigurationsparameter für die Konfiguration verwendet werden.

Health check Methode kann Keine, Basic, HTTP, SMTP oder LDAP sein.

Check frequency ist die check frequency in Millisekunden. Der Standardwert ist 1000.

Wenn Log checks aktiviert ist, wird jede Änderung des Status der Zustandsprüfung oder des Zustands des Servers protokolliert.

Health check method kann OPTIONS, HEAD, GET, POST, PUT, DELETE oder TRACE sein.

Von http check requests verwendete URL Standardwert ist /, wenn leer gelassen.

Http check version ist standardmäßig „HTTP/1.0“, wenn leer gelassen.

Stick Table kann aktiviert werden.

Typ ist der Typ der Stick-Tabelle.

Size ist der Speicherplatz der Stick Table, der in Megabyte verwendet werden kann. Der Standardwert ist 100 MB.

Expire ist die Ablaufzeit der Stick-Tabelle in Sekunden. Der Standardwert ist 10 Sekunden.

16.8.3. Frontend

Frontend ist der Dienst, an dem der HAproxy auf Verbindungen wartet, um diese zu verarbeiten. Ein Frontend lauscht auf einem IP-Adressen- und Port-Paar.

HAProxy Frontend

Jedes Frontend hat einen Namen, eine Beschreibung und kann aktiviert oder deaktiviert werden. Ein Frontend kann mehrere Adressen mit einer IP-Adresse und einem Port haben. Sie können auch mehrere ACLs mit einer Beschreibung, einem Ausdruck, einem Backend und einem Wert hinzufügen. Der Wert kann negiert und auf Groß- und Kleinschreibung geprüft werden.

Modus kann http / https, ssl / https (TCP mode) oder tcp sein.

Standard-Backend ist die Standardverbindung zu einem Backend, wenn in einer der folgenden Optionen kein bestimmtes ausgewählt wurde.

Default Error Page ist die Standard-Fehlerseite. Sie muss vorher im System angelegt werden.

Das SSL-Offloading-Zertifikat ermöglicht Ihnen das SSL-Offloading von Verbindungen. HAProxy kann mehr als ein Zertifikat haben und sie werden basierend auf CName und der eingehenden Anfrage ausgewählt. Um SSL-Offloading zu aktivieren, müssen die IP-Adresse und der Port explizit auf aktiviert gesetzt werden, auch wenn hier Zertifikate ausgewählt werden. Nur HTTP-Verbindungen können offgeloaded werden und nicht TCP oder TLS-Versbindungen.

Client-Zertifikate validieren kann aktiviert werden. Falls aktiviert, müssen Sie auch eine Zertifizierungsstelle auswählen. Dies ist nur im Modus http / https und tcp mit aktiviertem SSL-Offloading für externe Adressen möglich. Client-Zertifikatsüberprüfung ist ebenfalls konfigurierbar und kann entweder Required oder Optional sein.

HAProxy External Address

Jedes Frontend kann auf eine oder mehrere IP-Adressen und Ports hören. Sie müssen den Typ (IPv4 oder IPv6) und die zu verwendende Adresse einstellen. System-Adressen sind Netzwerkobjekte von der Firewall. Sie können SSL Offloading für jedes Paar aktivieren.

Um die Web Application Firewall bei verschlüsselten Verbindungen zu nutzen, können Sie das SSL Offloading aktivieren, um den Datenverkehr für den Benutzer transparent zu verschlüsseln, aber dennoch den Zugriff auf die WAF zu ermöglichen.

Web Application Firewall verwenden aktiviert die Web Application Firewall für dieses Frontend. Der Datenverkehr wird von der WAF inspiziert und wenn eine Bedrohung erkannt wird, wird er mit einem 404-Fehler blockiert.

16.8.3.1. Erweitert

Mit Erweitert können Sie einige Einstellungen für das gesamte Frontend vornehmen.

HAProxy Advanced

Maximum Connections begrenzt die Sockets auf diese Anzahl gleichzeitiger Verbindungen.

Client Timeout ist die maximale Inaktivitätszeit (in Millisekunden) auf der Client-Seite. Der Standardwert ist 30000.

Forwardfor Option ermöglicht das Einfügen des X-Forwarded-For Headers in Anfragen an den Server.

HTTP/s Redirect kann aktiviert werden.

Httpclose Option ermöglicht das passive Schließen von HTTP-Verbindungen.

Backend-Trennung Wenn wir eine ACL mit Host-Übereinstimmungen haben, verwenden wir eine Kopie des Backends für jede Aktion und führen die Backend-Zustandsprüfung mit diesem Hostnamen durch. Dadurch kann nur dieser Host im Falle von Problemen nicht verfügbar sein, insbesondere wenn ein Backend mehrere Homepages unter verschiedenen Hostnamen hostet.

Custom Options kann für benutzerdefinierte Konfigurationsparameter für die Konfiguration verwendet werden.

16.8.4. Fehlerseiten

Fehlerseiten mit benutzerdefinierten Fehlerseiten können konfiguriert und mit Aktionen und Acls verknüpft werden. Die folgenden HTTP-Codes werden unterstützt: 200, 400, 401, 403, 404, 405, 407, 408, 410, 425, 429, 500, 502, 503 und 504. Eine Beispieldatei kann von der GUI heruntergeladen werden. Die Fehlerseiten müssen sowohl HTML-Markup als auch HTTP-Statuscode und Antwort-Header enthalten.

HAProxy Error Page

16.8.5. Listen zur Zugriffskontrolle

Access Control Lists sind Regeln, gegen die für Backends abgeglichen werden. Sie hängen vom Modus des Frontends ab und enthalten Hostnamen und Quell-IPs. Jede ACL benötigt einen eindeutigen Namen für das Frontend, damit sie in der Backend-Zuordnung verwendet werden kann.

HAProxy ACL

16.8.6. Aktionen

Aktionen können mit einer oder mehreren ACLs verknüpft werden. Mehrere ACLs können UND/ODER miteinander verknüpft werden, um eine flexible Zuordnung zu erhalten. Frontend- und Backend-Aktionen haben verschiedene spezifische Aktionen zur Auswahl.

Eine Error Page kann einer Frontend-Aktion zugewiesen oder als Standard-Fehlerseite in einem Frontend festgelegt werden. Sie müssen vorher im System angelegt werden.

Eine Error Page Backend Down kann einer Frontend-Aktion zugeordnet werden. Sie wird verwendet, wenn das ausgewählte Backend nicht verfügbar ist.

HAProxy Actions

16.8.7. Allgemein

Bitte beachten Sie, dass Port 443 und Port 80 von Nginx besetzt sind. Wenn Sie diese für HAProxy verwenden möchten, verwenden Sie bitte DNAT auf den Schnittstellen zu einem anderen Port, den das Frontend von HAProxy verwendet.

Sie können einfach die Ports 443 und 80 vom WAN auf HAProxy umleiten. HAProxy muss auf einem anderen Port laufen, zum Beispiel 444 und 81.

Ein Beispiel für die DNAT-Regel ist in der folgenden Abbildung zu sehen.

HAProxy Redirect Port 443 and 80