HAproxy Warnung - wie Ursache finden

Started by viragomann, February 27, 2025, 03:35:14 PM

Previous topic - Next topic
February 27, 2025, 03:35:14 PM Last Edit: February 28, 2025, 07:26:00 PM by viragomann
Hallo,

mein HAproxy wirft beim Syntax Test eine Warnung aus:
Quote[NOTICE] (20099) : haproxy version is 3.0.8-6036c31
[NOTICE] (20099) : path to executable is /usr/local/sbin/haproxy
[WARNING] (20099) : config : parsing [/usr/local/etc/haproxy.conf.staging:91] : a 'http-request' rule placed after a 'use_backend' rule will still be processed before.
Warnings were found.

Nun frag ich mich, wie ich dem Problem auf den Grund gehen kann, nachdem die OPNsense GUI es nicht beim Namen nennt.

Ich bin nun die Regeln durchgegangen, nachdem ich nicht mehr benötigte entfernt habe. In keinem Frontend habe ich eine http-request Regel, lediglich in einem Backend. So vermute ich, dass es diese Regel ist, die diese Warnung auslöst, und die die OPNsense GUI in Bezug zu den Frontend-Regeln stellt, von welchen natürlich einige use_backend Regeln sind.
Doch wie soll ich daran was ändern?
Ich sehe hier keine Möglichkeit, die OPNsense GUI zu zufrieden zu stellen. Hat vielleicht jemand eine Idee?

Die besagte Regel im Backend ist eine 'http-request deny'. Die soll eben für dieses bestimmte Backend angewendet werden und nicht allgemein.
Man könnte das mit einigem Mehraufwand gewiss auch alles im Frontend korrekt beregeln, aber für mich ist da der Syntax-Test das Problem, der einfach keine http-request Regeln im Backend akzeptiert. Ein Frontend wird wohl fast immer eine use_backend Regel enthalten, ist ja die Kernkompetenz eines Reverse Proxys.

Grüße

Habe seit 1,5 Jahren das selbe Problem. Habe es schon unter der Haube in der Konfiguration richtig hingerückt, hat leider nicht angehalten.
Also ja, ich wäre auch an einer Lösung des kosmetischen Problems interessiert.

Wir sehen den Fehler auch - mit tcp-request. In der resultierenden Konfiguration unter /usr/local/etc/haproxy.conf steht dann in dem Frontend-Block:

frontend SPT_443
    [...]
    use_backend VM_STAGE_01 if acl_67c5d8cad8ddc7.22108280
    # WARNING: pass through options below this line
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }

HAProxy erwartet wohl use_backend als letzte Zeile in einem Frontend-Block. Das Plugin müsste das lösen.


Vielen Dank.

Ich habe meine Regeln etwas umgestellt, bekomme diese Meldung aber immer noch.
Habe nun wieder nachgesehen, woran sich der Syntax Test nun stört und glaube jetzt gar nicht, dass HAproxy die Reihenfolge der Regeln tatsächlich umdreht, wie es die Meldung besagt.

Es beklagt nun die 'http-request redirect' Regel im Redirect-HTTP-HTTPS Frontend:
Quote# Frontend: WAN_80 (http to https redirect)
frontend WAN_80
    bind 0.0.0.0:80 name 0.0.0.0:80
    mode http
    option http-keep-alive

    # logging options
    option httplog
    # ACL: find_acme_challenge
    acl acl_66fc0e4220b7e0.51215662 path_beg -i /.well-known/acme-challenge/
    # ACL: No_SSL
    acl acl_663df0a76a1943.69737603 ssl_fc

    # ACTION: redirect_acme_challenges
    use_backend acme_challenge_backend if acl_66fc0e4220b7e0.51215662
    # ACTION: SSL_redirect
    http-request redirect scheme https if !acl_663df0a76a1943.69737603

Davor ist die Regel für den ACME Client. Soweit ich weiß, würde ACME ja anders rum gar nicht funktionieren. LE möchte doch zwingend per HTTP zugreifen, oder?