Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
Quick reference for Nginx web server, reverse proxy, and load balancer configuration
Eine dedizierte Reverse-Proxy-Schicht ist die effektivste Sicherheitsinvestition, die Sie fĂŒr eine Webanwendung tĂ€tigen können. Sie ĂŒbernimmt die SSL-Terminierung, Rate Limiting, WAF-Inspektion und das Upstream-Routing â all dies sind Aufgaben, die einzelne Applikationsserver nicht selbst verwalten sollten.
Der hier vorgestellte Stack kombiniert drei praxiserprobte Tools: Nginx fĂŒr das Request-Handling, Certbot fĂŒr automatisches SSL und CrowdSec fĂŒr eine verhaltensbasierte WAF/IPS.
Die ereignisgesteuerte Architektur von Nginx bedeutet, dass die Worker-Konfiguration direkten Einfluss auf den Durchsatz hat:
worker_processes auto;
worker_connections 1024;
multi_accept on;
use epoll;
auto Worker-Prozesse = Anzahl der CPU-Kerneepoll ist der Linux-native Event-Loop â signifikant effizienter als select oder pollDie SSL-Konfiguration folgt dem âModernâ-Profil von Mozilla:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
Wichtige Entscheidungen:
Das Rate Limiting wird pro Zone und nicht pro Request konfiguriert:
limit_req_zone $binary_remote_addr zone=api:10m rate=30r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
Der $binary_remote_addr Key verwendet die Client-IP im BinĂ€rformat (4 Bytes fĂŒr IPv4, 16 fĂŒr IPv6), um den Speicherverbrauch zu minimieren. Die 10MB-Zone speichert ca. 80.000 EintrĂ€ge.
Der Certbot-Container verwaltet den vollstÀndigen Lebenszyklus der Zertifikate:
/var/www/certbot durch.0 */12 * * *), um Erneuerungen zu prĂŒfen.Certbot unterstĂŒtzt mehrere Challenge-Typen. Der Webroot-Modus (--webroot -w /var/www/certbot) ist die beste Wahl fĂŒr diesen Stack:
CrowdSec ist eine verhaltensbasierte Security-Engine. Sie analysiert Logs, erkennt Angriffe mithilfe von Community-beigesteuerten Szenarien und blockiert bösartige IPs auf der Ebene des Reverse Proxys:
Der CrowdSec-Container ist mit der Nginx-Collection konfiguriert, welche Folgendes enthÀlt:
crowdsecurity/nginx: Basis-Nginx-Parsercrowdsecurity/http-cve: Erkennung von HTTP-Vulnerability-Scanningcrowdsecurity/http-bf: Brute-Force-Erkennung an Login-Endpunktencrowdsecurity/http-path-traversal: Path-Traversal-VersucheDer Bouncer lĂ€uft als separater Container (basiert auf nftables), der ĂŒber eine API mit CrowdSec kommuniziert:
docker compose exec crowdsec cscli decisions list
# Manually ban an IP
docker compose exec crowdsec cscli decisions add --ip 1.2.3.4 --duration 24h
server_tokens off) â verhindert die Offenlegung der Versionclient_max_body_size pro Anwendung setzen â Standard-1MB blockiert Datei-Uploadslimit_req pro Upstream konfigurieren â verhindert, dass ein langsamer Dienst andere blockiertproxy_read_timeout angemessen setzen â Long-Polling-Endpunkte benötigen 300s+/etc/letsencrypt sichern â der Verlust von SSL-Zertifikaten erfordert eine Neuausstellung und Neupropagierungcscli metrics zeigt das Erkennungsvolumen und blockierte IPs