Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Frage zu einer Konfiguration im HAProxy

Mitglied: RalphT

RalphT (Level 1) - Jetzt verbinden

01.07.2020 um 08:12 Uhr, 239 Aufrufe, 2 Kommentare, 2 Danke

Moin,

ich versuche herauszufinden, was diese 3 Regeln im HAProxy zu bedeuten haben.
Welcher Sinn steckt dahinter?
In vielen Konfigurationen sieht man diese Einträge.

Hier ein Beispiel einer Konfig:


acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2
stick on payload_lv(43,1) if clienthello
Mitglied: yoppi1
LÖSUNG 01.07.2020 um 16:57 Uhr
In den 3 Zeilen stecken mehrere Dinge.
Das "acl" bedeutet "Access Control List", das "clienthello" ist sowas wie der Name dieser Liste. req_* und rep_* sind von HAproxy vordefinierte Funktionen, die eine Ganzzahl zurückgeben. Bei "req_*" wird geprüft, ob der Client eine komplette sogenannte "SLL hello message" gesendet hat.
Dss "rep_*" fragt den Server dazu ab.
Normalerweise liefern diese Funktionen dann 0 (kein SSL), 1 (TLS SessionTicket vorhanden) oder 2 (TLS SessionTicket ist "ausgefüllt").

Die "payload"-Zeile macht auch wieder mehrere Dinge:
Die Anweisung bzw. Funktion "payload_lv(43,1)" lädt quasi aus dem empfangenen Puffer der SSL-Daten einen Teil - ab Offset 43 ein Byte. Das "stick" ist u.a. für ein Loadbalancing verantwortlich. Damit wird ein Anwender, z.B. Webbrowser, einem Server zugeordnet. Die Option "stick" ist ziemlich komplex in der Anwendung.

Übersetzt würden die drei Zeilen in etwa bedeuten:
Wenn der Client ein TLS SessionTicket überträgt, dann nimm das 43. Byte aus dem Puffer und benutze es, um darüber den einen Client immer mit dem einen Server zu verbinden. Oder so ähnlich.

Ich hab auch nicht alles von HAproxy verstanden - ist eine eigene Welt

Du findest aber irgendwo immer Beispiele, wenn Du danach suchst. Oder nimm halt die Anleitung, z.B. unter https://cbonte.github.io/haproxy-dconv/2.2/configuration.html


Und - aus meiner Sicht das Wichtigste: VIELE haproxy.cfg, die man im Internet findet, sind "Copy&Paste". Die pflanzen sich gerne so fort und werden immer wieder und wieder kopiert, ohne dass diejenigen, die sie nutzen, tatsächlich alles verstehen.

Bei HAproxy empfiehlt es sich, mit einer kleinen, leeren haproxy.cfg anzufangen, um es zu lernen. Und dann nach und nach die benötigten Optionen nachzuziehen.
Bitte warten ..
Mitglied: RalphT
02.07.2020, aktualisiert um 14:09 Uhr
Moin yoppi1,

erst mal vielen Dank für deine ausführliche Antwort. Ich denke, du hast mir weitergeholfen.
Ich hatte natürlich schon vorher und auch nach dem Einstellen dieser Frage nochmal intensiv geforscht.
Das hatte ich bis jetzt herausgefunden:

Zu den ersten beiden Zeilen:

acl clienthello req_ssl_hello_type 1
acl serverhello rep_ssl_hello_type 2

Um das zu verstehen, muss man sich erst einmal mit dem Thema TLS beschäftigen.
Zuerst sendet der Client ein Hallo (clienthello) an den Webserver, mit dem er kommunizieren möchte.
Der Server sendet ebenfalls ein Hallo (serverhello) mit einem SSL-Zertifikat und einem öffentlichen Schlüssel.

Mit der ersten Regel wird abgefragt, ob der Client ein clienthello sendet.
Mit der zweiten Regel wird überprüft, ob der Server ein serverhello gesendet hat.

Zuerst wusste ich nicht, was man mit diesen Informationen anfangen kann. Ich könnte mir vorstellen, dass man sich
diese Abfrage zu Nutze macht, damit erkennen kann, ob der Client eine http-seite aufruft (kein clienthello) oder
eine https-Seite. Würde der Client eine http-Seite aufrufen, könnte man den Client auf den richtigen Backend
umleiten oder gleich auf https umleiten.
Bei der Abfrage serverhello kann ich ja feststellen,ob der Webserver überhaupt SSL kann. Vielleicht kann man hier
feststellen, dass der SSL-Datenverkehr dann wirklich funktioniert.

Bei der dritten Zeile glaube ich ungefähr zu wissen, was da passiert.

stick on payload_lv(43,1) if clienthello

Hier glaube ich, dass diese Zeile dazu dient, dass sich der Client nach einem Abbruch wieder mit dem gleichen Server
verbindet. Hier liegt nämlich beim Offset von 43, also ab 44 die Session-ID. Wenn ein Client sich wieder mit dem
Server verbinden will, dann sendet der Client eine Session-ID mit. Der Server überprüft das in seiner Tabelle.
Findet er den Wert, wird die Verbindung wiederhergestellt. Der TLS-Handshake findet nur verkürzt statt.
Naja un der Begriff sticky oder stick lautet ja übersetzt klebrigkeit.
Derzeit versuche ich die Parameter "on" und "match" bei stick zu unterscheiden. Das muss ich mir noch genau durchlesen.

Somit wäre das auch mein Kenntnisstand, so wie du mir diese 3 Regeln auch beschrieben hast. Dann dürfte das wohl passen.

Ich hab auch nicht alles von HAproxy verstanden - ist eine eigene Welt
Dann sind wir schon zu zweit! Wobei ich noch ergänzen muss, dass das Teil sehr mächtig ist.

Und - aus meiner Sicht das Wichtigste: VIELE haproxy.cfg, die man im Internet findet, sind "Copy&Paste". Die pflanzen sich gerne so fort und werden immer wieder und wieder kopiert, ohne dass diejenigen, die sie nutzen, tatsächlich alles verstehen.
Stimme ich mit dir zu 100% überein. Man findet zu 90% nur 1:1 kopierte Anleitungen. Sogar die Kommentare sind überall gleich.
Wobei bestimmt die meisten Leute wahrscheinlich nicht wissen, was jede Zeile wirklich macht.

Du findest aber irgendwo immer Beispiele, wenn Du danach suchst. Oder nimm halt die Anleitung, z.B. unter https://cbonte.github.io/haproxy-dconv/2.2/configuration.html
Diese Seite ist bei mir daueroffen!

Bei HAproxy empfiehlt es sich, mit einer kleinen, leeren haproxy.cfg anzufangen, um es zu lernen. Und dann nach und nach die benötigten Optionen nachzuziehen.

Eine gute Idee. Das werde ich mal machen. Damit kann man gut jede Zeile einzeln testen.

Vielleicht noch ergänzend: Auf dieses Buch bin ich bei meinen Recherchen gekommen:
https://books.google.de/books?id=vzIeBgAAQBAJ&printsec=frontcover&am ...
Ich finde das sehr gut. Vielleicht kaufe ich mir das. Ist auch nicht teuer.

Der HAproxy ist ein spannendes Projekt, bei dem man viele Arbeitsstunden versenken kann.

Vielleicht wird da mal noch eine weitere Frage kommen.
Bitte warten ..
Ähnliche Inhalte
Cluster

Failover Cluster Haproxy falsche Konfiguration?

Frage von akadawaCluster5 Kommentare

Hallo, ich habe nach verschiedensten Konfigurationen des Haproxy, keine funktionierende Lösung gefunden. Knoten1:11.40.51.38 Knoten2:11.40.55.98 HAproxy:11.40.55.99 Proxy:ja Auf den Knoten ...

Router & Routing

HaProxy PfSense

gelöst Frage von theoberlinRouter & Routing3 Kommentare

Hallo zusammen, ich habe aktuell als Reverse Proxy den SQUID laufen. Jetzt habe ich eine Webanwendung auf einem IIS ...

Linux Netzwerk

HAProxy - Anfängerfragen

Frage von michael2105Linux Netzwerk2 Kommentare

Hallo zusammen, da ich gerade Zeit habe würde ich mich gerne in HAProxy einarbeiten und folgendes Szenario in einer ...

Ubuntu

HAproxy und keepalived

gelöst Frage von TheCritterUbuntu2 Kommentare

Hallo, ich habe auf 2 Servern jeweils HAproxy und keepalived installiert. Das keepalived nehme ich nur für vrrp also ...

Neue Wissensbeiträge
Router & Routing

FritzOS 7.20 kommt auch auf Deine Fritze (wahrscheinlich)

Information von Visucius vor 4 StundenRouter & Routing

Nachdem ich hier die Hassliebe zu den kleinen Kistchen kenne, sollten wir das nicht zu breit ausdehnen. Ein paar ...

Netzwerke
PfSense und OPNsense Client VPN mit L2TP Protokoll
Anleitung von aqui vor 12 StundenNetzwerke

Allgemeine Einleitung Das folgende VPN Tutorial ist eine Ergänzung zum bestehenden VPN_Client_Tutorial. Es beschreibt ebenfalls die VPN Anbindung von ...

Datenschutz

Berliner Datenschutzbeauftragten prüfen Videokonferenz-SW

Information von Visucius vor 3 TagenDatenschutz2 Kommentare

Eine grüne Ampel erhielten kommerziell bereitgestellte Instanzen der Open-Source-Software Jitsi, etwa von Netways oder sichere-videokonferenz.de. Eine positive Bewertung erhielten ...

LAN, WAN, Wireless
Sophos Central Wireless v2.3.0-6 massive Probleme
Information von Voiper vor 5 TagenLAN, WAN, Wireless

Hallo Zusammen, wenn Ihr Sophos Central nutzt und die neuen APX Accesspoints im Einsatz habt, vermeidet das Update der ...

Heiß diskutierte Inhalte
Firewall
Sophos XG Firewall mit RED 15 verbinden
Frage von roeggiFirewall23 Kommentare

Hallo Zusammen Ich verzweifle gerade an der Konfiguration mit einer RED 15 mit einer XG Firewall. Ich habe das ...

Festplatten, SSD, Raid
Raid5 SAS HDD auf RAID10 SSD ML350 G8
gelöst Frage von DCFan01Festplatten, SSD, Raid19 Kommentare

Hallo Community, ich habe hier bei mir einen HPE ML350G8, mit P440 Raid-Controller und derzeit 4x SAS 10K HDD ...

Video & Streaming
Kaufberatung gesucht: Überwachungskamera
Frage von SarekHLVideo & Streaming17 Kommentare

Hallo zusammen, der Bereich hinter unserer Kirche hat sich zu einem abendlichen Treffpunkt für Jugendliche entwickelt, die dort regelmäßig ...

VB for Applications
VB Script Webseite open
gelöst Frage von MrLabelVB for Applications13 Kommentare

Hallo, ich habe ein VB Script geschrieben zur Anmeldung an einer Webseite. Das läuft auch alles gut soweit - ...