Hallo zusammen,
ich habe ein Konfigurationsproblem zwischen meinem QNAP (QTS) und dem Nginx Proxy Manager (NPM), wodurch mein Fail2ban (oder der QTS-Zugangsschutz) bei Brute-Force-Angriffen wirkungslos bleibt.
Meine Konfiguration:
QNAP (QTS): Lokale IP 192.168.10.10 (ich habe sie auf eine Standard-RFC1918-IP-Adresse geändert, aber Sie können Ihre eigene verwenden)
Nginx Proxy Manager: Lokale IP 192.168.10.6 (in einem Docker-Container oder auf einer separaten VM)
Ziel: Zugriff auf QTS über einen Domainnamen (z. B. myqnap.domain.com) unter Verwendung von NPM für SSL und als Reverse Proxy.
Das Problem:
Der Zugriff funktioniert einwandfrei. Mein Domainname zeigt auf meinen Router, der die Ports 80/443 an den Nginx Proxy Manager (100.6) weiterleitet, und NPM leitet den Traffic dann an mein QNAP (100.10) weiter.
Das Problem ist, dass QTS die tatsächliche Quell-IP (öffentliche IP) der Besucher nicht sieht.
Wenn ein Verbindungsversuch fehlschlägt (Brute-Force-Angriff), geben die QTS-Sicherheitsprotokolle an, dass der Versuch von der IP 100.6 (der IP meines Nginx Proxy Managers) stammt.
Die Folge: Wenn ich den IP-Zugangsschutz oder Fail2ban auf dem QNAP aktiviere, um IPs nach mehreren Fehlversuchen zu sperren, wird die IP meines Nginx Proxy Managers (100.6) gesperrt.
Ergebnis:
Der Angreifer wird nie gesperrt.
Mein eigener Proxy wird gesperrt, was den Zugriff auf QTS für alle legitimen Nutzer unterbindet.
Meine Frage: Wie kann ich den Nginx Proxy Manager so konfigurieren, dass die Quell-IP-Adresse korrekt weitergeleitet wird (über die X-Forwarded-For- oder X-Real-IP-Header) UND wie kann ich QTS so konfigurieren, dass es diesen Header liest und vertraut?
Ich habe in den NPM-Optionen nachgesehen (ich habe „Forward Client-IP“ und „Forward Hostname“ aktiviert), aber QTS scheint immer noch die IP des Proxys zu sehen. Muss ich eine benutzerdefinierte Konfiguration in Nginx (über den „Advanced“-Tab in NPM) hinzufügen oder gibt es eine versteckte Einstellung in QTS, um einem Proxy zu „vertrauen“?
Vielen Dank im Voraus für eure Hilfe!