Komische Einträge im Log von HAProxy
Hallo,
ich habe hier einen Exchange Server der Hinter einem HAProxy als WAF im Internet steht.
Ich habe diese Einträge im Log gefunden, die ich mir nicht erklären kann.
"tarpit_403" ist mein Default Backend was als 404 fungiert.
Der HAProxy hat nur das Zertifikat für die benötigten Hostnamen.
Ein Aufruf mit https und der IP führt zu diesem Fehlercode: SSL_ERROR_UNRECOGNIZED_NAME_ALERT und diesem Log Eintrag "haproxy-main/1: SSL handshake failure (error:0A0000EA:SSL routines::callback failed)".
Alles korrekt.
Das heisst der Aufruf muss mit einem korrekten Hosteintrag erfolgt sein.
Sonst wäre er in einen SSL Fehler gelaufen.
Aber die URL "POST /EWS/Exchange.asmx HTTP/1.1" passt ja zu der ACL von HAProxy.
Warum verwendet er nicht das richtige Backend?
Ich habe diese Log-Einträge nur für "/EWS".
Alle andere Sortierungen funktionieren einwandfrei.
Hat hier Jemand einen Tipp für mich?
Hier die gekürzte Config
ich habe hier einen Exchange Server der Hinter einem HAProxy als WAF im Internet steht.
Ich habe diese Einträge im Log gefunden, die ich mir nicht erklären kann.
Feb 18 01:43:03 PublicProxyxxxxxxxxx haproxy[506211]: [Eine deutsche IP-Adresse ASN 15943]:38590 [18/Feb/2024:01:42:57.867] haproxy-main~ tarpit_403/<NOSRV> -1/6060/-1/-1/6006 403 2104 - - PR-- 4/4/0/0/0 0/0 "POST /EWS/Exchange.asmx HTTP/1.1"
"tarpit_403" ist mein Default Backend was als 404 fungiert.
Der HAProxy hat nur das Zertifikat für die benötigten Hostnamen.
Ein Aufruf mit https und der IP führt zu diesem Fehlercode: SSL_ERROR_UNRECOGNIZED_NAME_ALERT und diesem Log Eintrag "haproxy-main/1: SSL handshake failure (error:0A0000EA:SSL routines::callback failed)".
Alles korrekt.
Das heisst der Aufruf muss mit einem korrekten Hosteintrag erfolgt sein.
Sonst wäre er in einen SSL Fehler gelaufen.
Aber die URL "POST /EWS/Exchange.asmx HTTP/1.1" passt ja zu der ACL von HAProxy.
Warum verwendet er nicht das richtige Backend?
Ich habe diese Log-Einträge nur für "/EWS".
Alle andere Sortierungen funktionieren einwandfrei.
Hat hier Jemand einen Tipp für mich?
Hier die gekürzte Config
frontend haproxy-main
mode http
no option httpclose
bind *:443 ssl crt /etc/haproxy/certs/ strict-sni
option forwardfor
....
acl exchange_ews path_beg -i /EWS
acl exchange_ews path_beg -i /ews
....
acl ACL_owa.xxxxx.com hdr(host) -i owa.xxxxx.com autodiscover.xxxxx.com
use_backend xxxxx_exchange1_exchange_ews if ACL_owa.xxxx.com exchange_ews
default_backend tarpit_403
backend tarpit_403
timeout tarpit 6s
errorfile 403 /etc/haproxy/403.html
http-request tarpit deny_status 403
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 11249789051
Url: https://administrator.de/forum/komische-eintraege-im-log-von-haproxy-11249789051.html
Ausgedruckt am: 29.03.2025 um 10:03 Uhr
9 Kommentare
Neuester Kommentar
Ohne haproxy im Detail zu kennen, aber HTTP und TLS sind ja halbwegs universell:
Wenn der Client per TLS-SNI den korrekten Namen im TLS-Handshake mitgibt, wird er im korrekten Frontend landen.
Wird dann aber ein falscher oder überhaupt kein "Host:"-Header im HTTP-Request mitgegeben, greift deine ACL nicht mehr und der Client landet im Tarpit.
Kannst du selbst mit openssl nachstellen und testen:
Wenn der Client per TLS-SNI den korrekten Namen im TLS-Handshake mitgibt, wird er im korrekten Frontend landen.
Wird dann aber ein falscher oder überhaupt kein "Host:"-Header im HTTP-Request mitgegeben, greift deine ACL nicht mehr und der Client landet im Tarpit.
Kannst du selbst mit openssl nachstellen und testen:
~ openssl s_client -connect 'hostname:443' -name 'name.im.ssl-zertifikat'
<... Handshake ...>
HEAD / HTTP/1.1
Host: ganzandererhost.example
Connection: close
<CRLF><CRLF>