NGINX oder Apache2 Reverse Proxy mit Spezial-Regeln?
Hallo,
vieleicht hat ja Jemand ein Stichwort für mich.
Ich habe hier eine alte Web-Anwendung die hinter einem NGINX Reverse Proxy läuft.
Nun sollen die Zugriffe darauf weiter eingeschränkt werden.
Bestimmte IPs dürfen nur bestimmte URLs aufrufen.
Da die Liste recht lang ist und noch ein paar Spezialfälle enthält, suche ich eine Möglichkeit mit einem eigenem Code die Anfragen vor dem RP zu prüfen.
Code kann alles mögliche sein. Sei es Python oder ein NGINX-Modul.
Kennt Jemand eine Option oder Stichwort dafür?
Das ganze kann auch mit einem Apache2 realisiert werden.
Stefan
vieleicht hat ja Jemand ein Stichwort für mich.
Ich habe hier eine alte Web-Anwendung die hinter einem NGINX Reverse Proxy läuft.
Nun sollen die Zugriffe darauf weiter eingeschränkt werden.
Bestimmte IPs dürfen nur bestimmte URLs aufrufen.
Da die Liste recht lang ist und noch ein paar Spezialfälle enthält, suche ich eine Möglichkeit mit einem eigenem Code die Anfragen vor dem RP zu prüfen.
Code kann alles mögliche sein. Sei es Python oder ein NGINX-Modul.
Kennt Jemand eine Option oder Stichwort dafür?
Das ganze kann auch mit einem Apache2 realisiert werden.
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2280532322
Url: https://administrator.de/forum/nginx-oder-apache2-reverse-proxy-mit-spezial-regeln-2280532322.html
Ausgedruckt am: 13.03.2025 um 16:03 Uhr
17 Kommentare
Neuester Kommentar

Kannst dir ja einfach die Blöcke per Code zu einer Config zusammenstellen und nginx danach reloaden
Die liste der IPs kannnst du ja auch in Config-Variablen schreiben und in den Blöcken verwenden.
Hier gibt's noch ne Methode
https://docs.nginx.com/nginx/admin-guide/security-controls/denylisting-i ...
location /path {
proxy_pass http://upstream;
allow 1.2.3.4;
allow 5.6.7.8;
deny all;
}
Hier gibt's noch ne Methode
https://docs.nginx.com/nginx/admin-guide/security-controls/denylisting-i ...

Wenn Du statt Apache HAproxy nimmst, dann könnte Dir die "Runtime API" von HAproxy weiterhelfen.
Eine Grundkonfiguration von HAproxy als Reverse Proxy ist nicht so schwer, es dürfte genügend Beispiel im Netz geben.
Für Zugriffe sind ACL (access control lists) zuständig. Da kann man sowas bauen wie "IP 1.2.3.4 darf ZIEL-URL" aufrufen.
Eventuell reicht auch die Übergabe einer Liste. Es gibt eine Konfigurationsoption die so ähnlich anwendbar ist wie das hier:
Die Textdatei würde dann IP-Adresse beinahlten. Die kann man dann weiter verarbeiten bzw. in andere ACLs füttern.
HAproxy selbst hat keine großen System- und Softwareanforderungen. Es gibt es sogar als Docker-Image.
Google einfach mal nach "haproxy", "acl", "dynamic"...
Eine Grundkonfiguration von HAproxy als Reverse Proxy ist nicht so schwer, es dürfte genügend Beispiel im Netz geben.
Für Zugriffe sind ACL (access control lists) zuständig. Da kann man sowas bauen wie "IP 1.2.3.4 darf ZIEL-URL" aufrufen.
Eventuell reicht auch die Übergabe einer Liste. Es gibt eine Konfigurationsoption die so ähnlich anwendbar ist wie das hier:
http-request allow if { src -f erlaubt.txt }
Die Textdatei würde dann IP-Adresse beinahlten. Die kann man dann weiter verarbeiten bzw. in andere ACLs füttern.
HAproxy selbst hat keine großen System- und Softwareanforderungen. Es gibt es sogar als Docker-Image.
Google einfach mal nach "haproxy", "acl", "dynamic"...
Hallo Stefan,
vielleicht geht es so?
https://www.lukasthiel.de/wiki/Blacklist_mit_Fail2Ban
Viele Grüße, commodity
vielleicht geht es so?
https://www.lukasthiel.de/wiki/Blacklist_mit_Fail2Ban
Viele Grüße, commodity
Fail2Ban liest zwar Logs aus, aber nur für die Ban-Entscheidung . Gebannte IPs werden direkt und in Echtzeit durch iptables geblockt (oder per Routing). https://wiki.ubuntuusers.de/fail2ban/
Man könnte ggf. mit einem Skript die Access-Log auslesen und daraus eine Log-Datei für F2B machen.
Aber dabei hat man eine Verzögerung zwischen 1 und 60 Sekunden bei Nutzung mit Cron.
Aber dabei hat man eine Verzögerung zwischen 1 und 60 Sekunden bei Nutzung mit Cron.
Bei Bedarf (hier m.E. nicht gegeben) kannst Du die Access-Logs auch direkt durch Fail2Ban auslesen lassen. Cron o.ä. wird da nicht gebraucht, jedenfalls, wenn das Format passt.
Nicht optimal.
Denke doch Viele Grüße, commodity

N`abend zusammen,
BlueKobold
Und? Kommt hier noch Feedback?
Attacke!Bestimmte IPs dürfen nur bestimmte URLs aufrufen.
Eventuell eine "Whitelist"?BlueKobold