cyborgweasel
Goto Top

Verständnisproblem bei ACLs bei HAProxy (mit PFSense)?

Hallo Leute,

ich versuche mich gerade mit HAProxy, genauer gesagt mit dem HAProxy Package in einer PFSense. Folgendes Szenario: Ich habe einen Webserver (Headwind MDM), den ich über den Proxy zugänglich machen möchte und etwas reglementieren möchte. Der Server hat die IP 192.168.250.50, die PFSense hat die 192.168.250.60. Ich habe ein Backend eingerichtet, was auf den Server zeigt und habe jetzt etwas Schwierigkeiten bei dem Frontend, genauer gesagt bei den ACLs. Nehmen wir jetzt folgendes Beispiel:
Der Domänenname lautet mobile.myweb.de und ich möchte jetzt die Seite mobile.myweb.de/#/summary über den Proxy sperren. Also habe ich im Frontend folgendes definiert:

1.)
Name: HostIsMobile
Expression: Host Starts With
CS: no
not: no
Value: mobile.myweb.de

2.)
Name: PathIsSummary
Expression: Path Ends With
CS: no
not: no
Value: summary

Aktionen:

1.)
Action: UseBackend
Parameters: HeadwindMDM (= Name es Backends)
Condition: HostIsMobile !PathIsSummary

2.) 
Action: http-request deny
Parameters: deny_status 404
Condition: HostMobile IsSummary

Ich hab das jetzt so verstanden, dass wenn der Hostname "mobile.myweb.de" ist und der Pfad mit "summary" aufhört, dass dann eine 404 Fehlermeldung rausgehauen wird. Wenn ich nun jedoch "https://mobile.myweb.de/#/summary" aufrufe, komme ich auf die Seite druch. Stelle ich die Expression um auf "Path contains", dann ist die Seite geblockt. Ich hab es auch schon mit "summary/" probiert oder "/summary" als Wert bei "Path ends with", jedoch will das bei mir nicht funktionieren. Gleiche Probleme habe ich auch mit "path starts with". Hab ich hier etwas übersehen?

[EDIT]
Wobei ich mich korrigieren muss: bei "Path contains" wird nur die Seite nicht korrekt geladen (Frame von Headwind MDM ist da, Inhalt ist leer), jedoch erscheint kein Fehler 404...

Content-ID: 81076815147

Url: https://administrator.de/contentid/81076815147

Ausgedruckt am: 19.10.2024 um 15:10 Uhr

CyborgWeasel
CyborgWeasel 16.08.2024 um 21:29:55 Uhr
Goto Top
So, ich bin jetzt einen kleinen Schritt weiter: Es scheint an der # zu hängen. Rufe ich z.B. "https://mobile.myweb.de/a/summary" auf, so bekomme ich direkt eine 404 (Konfiguration: "Path ends with"). Kann es sein, dass HAProxy ein Problem mit der # im Pfad hat?

Gruß
mbehrens
Lösung mbehrens 16.08.2024 um 22:21:29 Uhr
Goto Top
Zitat von @CyborgWeasel:

Kann es sein, dass HAProxy ein Problem mit der # im Pfad hat?

Nein, in RFC 3986 heißt es:

As with any URI, use of a fragment identifier component does not imply that a retrieval action will take place. A URI with a fragment identifier may be used to refer to the secondary resource without any implication that the primary resource is accessible or will ever be accessed.

Der Fragment Teil kommt also nicht beim Server an, da er vom Client verarbeitet wird.
CyborgWeasel
CyborgWeasel 16.08.2024 um 22:39:46 Uhr
Goto Top
Zitat von @mbehrens:

Der Fragment Teil kommt also nicht beim Server an, da er vom Client verarbeitet wird.

Ah ok. Dh. es gibt so ohne weiteres gar nicht die Möglichkeit, über einen Reverse Proxy die entsprechende Seite /#/summary zu blocken? Wie läuft denn hier der Request ab, woher weiß der Server denn, dass er jetzt gefälligst die Daten des Summary zu senden hat und nicht die Login-Seite z.B. ?

Gruß
mbehrens
mbehrens 16.08.2024 um 23:39:44 Uhr
Goto Top
Zitat von @CyborgWeasel:

Ah ok. Dh. es gibt so ohne weiteres gar nicht die Möglichkeit, über einen Reverse Proxy die entsprechende Seite /#/summary zu blocken?

Das hat nichts mit dem Reverse Proxy zu tun, sondern trifft auch bei einem Webserver zu. Fragment identifier kommen nicht an. Das zeigen auch die Logbücher.
CyborgWeasel
CyborgWeasel 18.08.2024 um 17:57:47 Uhr
Goto Top
Ok, verstanden, danke!