[[start|zurück]] ====== Proxy-Server – Grundlagen (Forward Proxy & Reverse Proxy) ====== Ein Proxy-Server ist ein Vermittler zwischen Client und Server. Er verändert, filtert oder kontrolliert den Datenverkehr und bietet Sicherheit, Anonymisierung oder Lastverteilung. Es gibt zwei Hauptarten: * **Forward Proxy** * **Reverse Proxy** Diese werden oft verwechselt – diese Seite erklärt die Unterschiede klar. --- ====== 1. Forward Proxy ====== Der **Forward Proxy** steht vor den Clients und vermittelt deren Anfragen nach außen. Clients → Proxy → Internet ASCII: Client → Forward Proxy → Internet ==== Einsatzbereiche ==== * Unternehmensnetzwerke * Jugendschutz / Filter * Logging & Monitoring * Caching (Webseiten lokal zwischenspeichern) * Zugriffskontrolle / Whitelisting * Anonymisierung (Tor, VPN) ==== Beispiele ==== * Squid Proxy * Microsoft Proxy / TMG (veraltet) * Webfilter (Sophos, FortiGate, Palo Alto) * Content-Filter-Proxy ==== Funktionen ==== * URL-Filterung * Benutzer- und Gruppenfilter (LDAP/AD) * Caching * Malware-Prüfung * Zugriffskontrolle (welcher User darf wohin?) * Traffic-Optimierung ==== Vorteile ==== * zentral kontrollierter Internetzugang * Bandbreitenersparnis (durch Caching) * Sicherheit (Filter, Blocklisten) ==== Nachteile ==== * zusätzliche Latenz * Privacy-Themen * komplexe Regelwerke --- ====== 2. Reverse Proxy ====== Der **Reverse Proxy** schützt und verwaltet **Server**. Er steht vor Webanwendungen, APIs oder Diensten. Internet → Reverse Proxy → interne Server ASCII: Internet → Reverse Proxy → Webserver / API / Container ==== Einsatzbereiche ==== * Webhosting * Microservices * Cloud * Docker-Stacks * SSL/TLS-Management * Load Balancing * Sicherheit (WAF, Rate Limits) ==== Beispiele ==== * Nginx * Traefik * HAProxy * Apache mod_proxy * Envoy * Cloudflare (Reverse Proxy CDN) ==== Funktionen ==== * TLS-Terminierung (Zertifikate zentral verwalten) * Routing nach URLs & Domains * Load Balancing (L7) * Caching * Web Application Firewall (WAF) * Rate Limiting * Authentifizierung (OIDC, JWT, Basic Auth) * Verbindung mehrerer Backend-Systeme ==== Vorteile ==== * Backend-Server bleiben privat * öffentliche IP muss nur der Reverse Proxy haben * zentrale Zertifikatsverwaltung * erhöht Sicherheit & Performance ==== Nachteile ==== * ein Reverse Proxy = Single Point of Failure (wenn kein HA) * HTTPS-Offloading braucht CPU --- ====== 3. Unterschiede Forward vs Reverse Proxy ====== ^ Merkmal ^ Forward Proxy ^ Reverse Proxy ^ | Position | vor dem Client | vor dem Server | | Zweck | Kontrolle des Client-Traffics | Schutz & Optimierung von Backend-Servern | | Beispiele | Squid, Webfilter | Nginx, Traefik, HAProxy | | Benutzer | Clients im LAN | externe Benutzer (Internet) | | Sicherheit | Filtert outgoing Traffic | schützt Server vor Angriffen | | Authentifizierung | Nutzer-Login | Webservice-Login, OIDC, JWT | | Caching | Webseiten von außen | Inhalte der eigenen Server | Kurz: * Forward Proxy = „Ich gehe über den Proxy ins Internet.“ * Reverse Proxy = „Das Internet geht über den Proxy auf meine Server.“ --- ====== 4. SSL/TLS-Offloading (Reverse Proxy) ====== Reverse Proxys übernehmen oft die Entschlüsselung von HTTPS. ASCII: Client → HTTPS → Reverse Proxy → HTTP → Backend Vorteile: * weniger Last auf Backend-Servern * ein zentraler Ort für Zertifikate * bessere Sichtbarkeit für IDS/IPS * L7 Routing möglich --- ====== 5. Reverse Proxy in Docker-Umgebungen ====== Moderne Stacks nutzen Reverse Proxys intensiv. Beispiel Aufbau: Traefik → /portainer /vaultwarden /nextcloud /matrix /mail Funktionen: * Weiterleitung nach Subdomain * TLS mit ACME * Middlewares (Redirect, Auth, IP-Whitelist) --- ====== 6. Sicherheit durch Reverse Proxy ====== * DDoS-Reduzierung * Rate Limits * Web Application Firewall * Header-Hardening (HSTS, X-Frame, CSP) * IP-Blocklisten (z. B. CrowdSec) * geobasiertes Blocking * Bot Detection --- ====== 7. Content Caching ====== Reverse Proxys können Inhalte zwischenspeichern: * Bilder * statische Inhalte * API-Antworten Dadurch wird der Backend-Server entlastet. --- ====== 8. Forward Proxy vs NAT ====== Viele verwechseln es: * NAT = Netzwerkadressübersetzung (Layer 3) * Proxy = Anwenderprotokolle werden aktiv vermittelt (Layer 7 oder L4) Proxy ist *viel höher* in der Protokollkette angesiedelt. --- ====== Zusammenfassung ====== * Forward Proxy → kontrolliert ausgehenden Traffic * Reverse Proxy → schützt und verteilt eingehenden Traffic * Reverse Proxy ist standard in Docker & Webhosting * Traefik / Nginx / HAProxy → mächtige Reverse Proxys * Forward Proxys filtern, cachen und steuern Benutzerzugriffe * Reverse Proxys übernehmen TLS, Routing, Auth & WAF