"Not a Pentest" Trust-Anker: Reverse Proxy Hardening schützt eigene Dienste. Keine Angriffswerkzeuge.
OpenClaw Reverse Proxy Security
Gehärteter nginx als Security-Layer vor OpenClaw — Rate Limiting, WAF, Security Headers und DDoS-Schutz.
⚙️ nginx Hardening Konfiguration
# /etc/nginx/sites-available/openclaw — Gehärtete Konfiguration
# Rate Limiting Zones
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=auth:10m rate=3r/m;
limit_conn_zone $binary_remote_addr zone=perip:10m;
server {
listen 443 ssl http2;
server_name openclaw.example.com;
# TLS
ssl_certificate /etc/letsencrypt/live/openclaw.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/openclaw.example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
# Security Headers
add_header X-Frame-Options DENY always;
add_header X-Content-Type-Options nosniff always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# Server Token verstecken
server_tokens off;
# Connection Limits
limit_conn perip 20;
# Auth Endpoints: strikteres Rate Limiting
location /api/auth/ {
limit_req zone=auth burst=5 nodelay;
proxy_pass http://openclaw:3000;
}
# API Endpoints
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://openclaw:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# Blockiere bekannte Bad Paths
location ~* (eval|base64|phpinfo|shell|cmd) {
deny all;
return 444;
}
}✅ Proxy Security Checklist
✅Rate Limiting auf alle API-Endpoints konfiguriert
✅Auth-Endpoints mit strikterem Limit (3 req/min)
✅Alle Security Headers gesetzt (X-Frame, CSP, HSTS)
✅Server Version versteckt (server_tokens off)
✅TLS 1.0/1.1 deaktiviert
✅HTTP → HTTPS Redirect (301)
✅Backend-Server nicht direkt erreichbar
✅Access Logs aktiviert und gespeichert
✅Error Logs auf keine sensiblen Infos geprüft
✅IP-Blocking für bekannte Angreifer-Ranges