Wie man einen Nginx-Webserver in wenigen einfachen Schritten absichert
Von Idego Group

Im Jahr 2004 entwickelte Igor Sysoyev NGINX, einen hochperformanten, in C geschriebenen Webserver, der heute mehr als ein Drittel aller Websites weltweit betreibt. Über die grundlegende Webbereitstellung hinaus funktioniert NGINX als Reverse Proxy, Load Balancer, Mail Proxy und HTTP-Cache. Angesichts seiner weitverbreiteten Nutzung und seiner Rolle als Einstiegspunkt zwischen Clients und Anwendungen ist die Implementierung robuster Sicherheitsmaßnahmen unerlässlich.
Es ist wichtig, Serverinformationen vor potenziellen Angreifern zu verbergen. Administratoren sollten die Servertoken-Exposition mithilfe von server_tokens off deaktivieren, um das Durchsickern von Versionsinformationen zu verhindern. Ebenso entfernt die Direktive proxy_hide_header X-Powered-By Technologie-Identifizierungsheader, die Backend-Systeme offenbaren könnten.
Eine kritische Schwachstelle entsteht, wenn die Puffergrößen zwischen NGINX und Upstream-Servern unterschiedlich sind. Ein Angreifer, der überdimensionierte Header sendet, könnte Backend-Fehler auslösen, die sensible Details wie Serverversionen und IP-Adressen preisgeben. Die Einstellung large_client_header_buffers sollte kleiner als die Backend-Limits kalibriert werden, um eine solche Informationsoffenbarung zu verhindern.
Fortgeschrittene Administratoren können IP Personality-Patches implementieren, um das TCP/IP-Stack-Verhalten zu modifizieren und Systeme so erscheinen zu lassen, als wären sie andere Betriebssysteme. Dies umfasst Kernel-Patching und iptables-Konfiguration und täuscht so effektiv Aufklärungstools.
Stärken Sie die Verschlüsselung durch mehrere Konfigurationsdirektiven: Generieren Sie starke Diffie-Hellman-Parameter mit openssl, deaktivieren Sie veraltete SSLv3-Protokolle, bevorzugen Sie Server-Chiffren gegenüber Client-Präferenzen und aktivieren Sie OCSP-Stapling zur Zertifikatsvalidierung.
NAXSI ist ein WAF-Modul von Drittanbietern, das HTTP-Verkehr inspiziert und Anfragen blockiert, die bekannte Angriffsmuster aufweisen. Mounten Sie Partitionen mit restriktiven Optionen, um Privilege Escalation zu verhindern. Implementieren Sie Chroot-Umgebungen, um den NGINX-Prozesszugriff auf wesentliche Dateien und Bibliotheken zu beschränken und potenzielle Sicherheitsverletzungen einzudämmen.
Die Komplexität der Sicherheitshärtung hängt von der Risikobewertung der Organisation und der Kritikalität des Dienstes ab. Regelmäßige OS-Updates stellen die wirkungsvollste Einzelsicherheitspraxis dar, zusammen mit mehrschichtigen Defensivstrategien.