OPNsense Forum

International Forums => German - Deutsch => Topic started by: Rocker on December 25, 2020, 09:31:50 AM

Title: (Gelöst) HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 25, 2020, 09:31:50 AM
Hallo,

ich habe den HAProxy nach der Anleitung vom Schulkonzept.net eingerichtet, und dieser läuft auch!
(HAProxy Konfiguration inkl. der NAT und Firewall Regeln wurden aus https://schulnetzkonzept.de/opnsense übernommen)

Jetzt bin ich aber auf ein Problem gestoßen, denn im Logging der Server (z.B. der Nextcloud) die ich dahinter betreibe, taucht immer nur die Gateway Adresse als anfragende IP auf, es macht auch keinen Unterschied, ob ich ein Handy aus dem Funknetz oder einen sich im Lan befindenden Rechner für die Anfrage nutze.
Das Resultat ist immer, dass die Anfragende IP die Schnittstelle des Server-Netzes ist.

Was müsste ich umstellen, dass die "echten" IP Adressen der Anfragenden bei den Servern landen, den ich möchte z.B. Fail2Ban nutzen.

vielen Dank

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: stesoell on December 25, 2020, 03:04:59 PM
Hallo,

Dafür ist der X-Forwarded-For Header zuständig.

Häkchen bei den Public Services gesetzt?

Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 25, 2020, 04:34:29 PM
Danke für die Antwort.
Ja, ist gesetzt.
Wenn ich später zuhause bin poste ich die Konfiguration mal.

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 25, 2020, 06:09:05 PM
Hallo,

Anbei die Konfiguration des HA Proxy,
wie gesagt, ich habe diesen exakt nach der Vorlage von schulnetzkonzept.de konfiguriert.
Es funktioniert alles, auch die Erstellung von LE Zertifikaten, aber ich bekomme immer die Gateway Adresse in den Logs angezeigt :( - das ist aber auch etwas komisch, da das NAT ja auf 2 Adressen innerhalb des Server Netzes (eine für http und die andere für https) zeigt und diese IP sehe ich aber nicht in den Logs.

Vielen Dank

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 26, 2020, 11:17:08 AM
Hallo,

evtl. noch als kurze Ergänzung,
Im HAProxy log sehe ich die "externen" IP´s diese werden aber anscheinend nicht weiter an die Server dahinter gegeben.

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Zoki on December 26, 2020, 10:06:16 PM
Fail2ban und Reverse Proxy schließen sich aus, wenn man nicht selber basteln möchte.

Die Anfrage an den Web-Server kommt netzwerktechnisch ja immer vom Reverse Proxy und landet damit in den Logs. Was man machen kann ist:
- die original IP per X-Forwarded-For Header zusätzlich mitschicken,
- das Logging so anpassen, dass dieser Header statt der IP des Reverse Proxy in die Datei geschrieben wird (evtl. separate Log-Datei)
- Fail2ban so konfigurieren, dass er die neu geschrieben Log-Datei verwendet.

Am besten zuerst mal prüfen, ob die X-Forwarded-For Header ankommen. Entweder per Log-Konfiguration oder einen der netten Docker-Container statt des Nextcloud hinhängen, die alle Header in die Antwort des Web-Servers stecken.
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 27, 2020, 10:51:03 AM
Hallo,

Danke für deine Antwort,
aber ist nicht eigentlich genau der X-Headers Haken dafür da, um die Infos der Clients an den Host weiterzuleiten? (inkl. der Client IP´s)
wie gesagt ich sehe im HA Proxy die externen IP´s er leitet diese aber nicht weiter.
Kann man so etwas mit einer Regel einstellen, dass er diese weiterschubst?

Danke

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Zoki on December 27, 2020, 12:01:26 PM
Das kommt darauf an, was du mit weiterreichen meinst. Die Haken sind dafür da, dass der HA-Proxy zusätzliche Felder im Header des HTTP-Requests einfügt. Ob das jetzt funktioniert, kann ich nur raten, da ich den nicht nutze. Von daher mein Vorschlag, das zu testen.

Du musst hier unterscheiden:

Die haken sind jetzt dazu da, dass der HA-Proxy seine eingehende Anfrage  nicht 1:1 weitergibt, sondern noch Zusatzinformationen ergänzt. Ob der Empfänger (dein Nextcloud) die verwendet und im Log ausgibt, musst Du dort einstellen.

Hier: https://docs.nextcloud.com/server/15/admin_manual/configuration_server/reverse_proxy_configuration.html (https://docs.nextcloud.com/server/15/admin_manual/configuration_server/reverse_proxy_configuration.html)
sollte sich die Antwort finden lassen.




Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 27, 2020, 03:34:17 PM
Hallo,

Danke für die Unterstützung,
ich habe auf 2 dahinterliegenden Servern die Logs überprüft, hier sind keine externen IP Adressen zu finden.
was müsste ich den wo eintragen damit er es weiterschubst?

Danke

Gruß Rocker
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Zoki on December 27, 2020, 04:00:35 PM
Das kann ich aus der Ferne schwer sagen.

Hast Du die Möglichkeit, so was https://code.mendhak.com/docker-http-https-echo/ (https://code.mendhak.com/docker-http-https-echo/) als docker Container hinter den HA-proxy zu hängen (Container von hier: https://hub.docker.com/r/mendhak/http-https-echo (https://hub.docker.com/r/mendhak/http-https-echo))

Dann einmal aufrufen und das Ergebnis hier posten. Irgendwo sollten dann die Header stehen, die auch der Nextcloud Server bekommt.
Title: Re: HAProxy weiterleiten der realen Quell IP an Host
Post by: Rocker on December 29, 2020, 11:27:01 AM
Hallo,

danke für deine Hilfe!
Ich konnte das Problem inzwischen beheben, ich habe die komplette Konfiguration noch einmal gemacht und schwupps habe ich auch die IP´s in den Hosts hinter dem HAproxy erhalten!
ich denke ich hatte da irgendwo einen Fehler in der Konfig.

Danach habe ich nur noch den Nnginx vhost um:

set_real_ip_from    XX.XX.XX.XX;
real_ip_header      X-Forwarded-For;


erweitert.

Jetzt klappt alles :D und es tauchen die remote client ip´s auf, bzw. arbeitet fail2ban wie gewünscht.

Danke für die Unterstützung

Gruß Rocker