Zum Inhalt springen

Services, Wiki-Artikel und Blog-Beiträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen

Webserver: Funktionsweise, Typen und Absicherung

Was ein Webserver ist, wie das HTTP-Request-Response-Prinzip funktioniert, welche Software-Typen (Apache, Nginx, IIS, Caddy) es gibt und wie man einen Webserver gegen Angriffe absichert: TLS, Security-Header, WAF, Logging und Härtungsmaßnahmen.

Inhaltsverzeichnis (5 Abschnitte)

Kurzerklärung: WebSockets ermöglicht bidirektionale Echtzeit-Kommunikation zwischen Browser und Server. Sicherheitsrisiken entstehen durch fehlende Origin-Validierung (Cross-Site WebSocket Hijacking), fehlende Authentifizierung nach Handshake, unverschlüsselte ws:// statt wss://-Verbindungen und fehlende Input-Validierung in WebSocket-Messages. Schutz: Origin-Header validieren, wss:// erzwingen, Token-Authentifizierung beim Handshake.

Ein Webserver ist eine Software (und oft auch der physische Rechner, auf dem sie läuft), die eingehende HTTP- oder HTTPS-Anfragen von Clients entgegennimmt und die angeforderten Inhalte zurückliefert. Er bildet das technische Fundament jeder öffentlich erreichbaren Webanwendung und ist damit eines der meistangegriffenen Systeme in einer IT-Infrastruktur. Die sichere Konfiguration eines Webservers ist deshalb keine optionale Maßnahme, sondern Pflicht für jeden Betreiber.

Funktionsweise: Request und Response

Das Grundprinzip ist das HTTP-Request-Response-Modell. Ein Client - typischerweise ein Browser - sendet eine HTTP-Anfrage an eine bestimmte IP-Adresse und einen Port. Der Webserver nimmt diese Anfrage entgegen, verarbeitet sie und antwortet mit einer HTTP-Response, die den angeforderten Inhalt (HTML, CSS, Bilder, JSON usw.) sowie einen Status-Code enthält.

Der Ablauf im Detail

  1. DNS-Auflösung: Der Browser wandelt den Hostnamen (z. B. a7.de) in eine IP-Adresse um.
  2. TCP-Verbindung: Der Client baut eine TCP-Verbindung zum Server auf - bei HTTPS zunächst einen TLS-Handshake.
  3. HTTP-Anfrage: Der Client sendet eine Anfrage mit Methode (GET, POST usw.), Pfad, HTTP-Version und Request-Headern.
  4. Verarbeitung: Der Webserver liest die Anfrage aus, prüft Berechtigungen und Konfiguration und ermittelt den passenden Inhalt.
  5. HTTP-Antwort: Der Server antwortet mit einem Status-Code (200, 301, 403, 404, 500 usw.), Response-Headern und dem Antwort-Body.

HTTP vs. HTTPS

Unverschlüsseltes HTTP überträgt alle Daten - inklusive Passwörter, Cookies und Formulardaten - im Klartext. HTTPS erweitert HTTP um eine TLS-Schicht, die Authentizität des Servers (via Zertifikat), Vertraulichkeit (Verschlüsselung) und Integrität (Manipulationsschutz) garantiert. Seit Jahren ist HTTPS der Standard: Browser markieren reine HTTP-Seiten als "Nicht sicher", und Suchmaschinen bevorzugen HTTPS-Domains im Ranking.

Gängige Ports:

  • 80/tcp - HTTP (Klartext)
  • 443/tcp - HTTPS (TLS-verschlüsselt)
  • 8080/tcp, 8443/tcp - Oft für Entwicklungs- oder Proxy-Dienste

Webserver-Software im Überblick

Apache HTTP Server

Apache ist der weltweit am längsten aktiv eingesetzte Open-Source-Webserver und bis heute einer der verbreitetsten. Er ist modular aufgebaut: Funktionen werden über Module wie mod_ssl, mod_rewrite oder mod_security aktiviert oder deaktiviert. Das ist gleichzeitig Stärke und Schwäche - ein schlecht gewarteter Apache mit unnötigen Modulen vergrößert die Angriffsfläche erheblich.

Typische Einsatzgebiete: Shared Hosting, PHP-basierte Anwendungen (WordPress, Drupal), klassische LAMP-Stacks.

Nginx

Nginx (ausgesprochen "Engine-X") wurde speziell für hohe Gleichzeitigkeit entwickelt. Statt für jede Verbindung einen eigenen Prozess zu starten, nutzt es ein asynchrones, ereignisgesteuertes Modell. Das macht Nginx besonders effizient bei vielen gleichzeitigen Verbindungen und statischen Inhalten. Häufig wird Nginx als Reverse Proxy vor anderen Anwendungsservern (z. B. Node.js, Python/Gunicorn) eingesetzt.

Typische Einsatzgebiete: Hochlast-Umgebungen, API-Gateways, Reverse-Proxy, CDN-Edge-Nodes.

Microsoft IIS

Der Internet Information Services (IIS) ist der Webserver von Microsoft und eng in das Windows-Ökosystem integriert. Er unterstützt nativ ASP.NET-Anwendungen und ist über den Windows Server Manager oder PowerShell administrierbar. IIS ist auf Windows-Server-Infrastrukturen im Enterprise-Bereich verbreitet.

Typische Einsatzgebiete: .NET-Anwendungen, SharePoint, Exchange Webdienste, Microsoft-zentrierte Infrastrukturen.

Caddy

Caddy ist ein moderner Open-Source-Webserver, der sich durch automatisches TLS als Kernfeature auszeichnet: Er holt und erneuert Let's-Encrypt-Zertifikate ohne manuelle Konfiguration. Die Konfiguration erfolgt über eine lesbare "Caddyfile"-Syntax. Caddy eignet sich besonders gut für Umgebungen, in denen einfaches HTTPS-Setup und moderne Defaults wichtig sind.

Typische Einsatzgebiete: Kleinere Deployments, Self-hosted-Dienste, DevOps-Umgebungen, Reverse Proxy mit automatischem TLS.

Sicherheitsrisiken

OWASP Top 10 als Bezugsrahmen

Die OWASP Top 10 beschreibt die zehn kritischsten Sicherheitsrisiken für Webanwendungen. Viele davon haben einen direkten Bezug zur Webserver-Konfiguration:

  • A01 - Broken Access Control: Falsch konfigurierte Berechtigungen, Directory Listing, zugängliche Backup-Dateien.
  • A05 - Security Misconfiguration: Default-Konfigurationen, aktivierte Debug-Modi, zu gesprächige Fehlermeldungen mit Stack-Traces.
  • A06 - Vulnerable and Outdated Components: Veraltete Webserver-Versionen mit bekannten CVEs.
  • A08 - Software and Data Integrity Failures: Fehlende Integritätsprüfungen bei Modulen und Plugins.

Häufige Fehlkonfigurationen

Versionsinformationen preisgeben Server-Header wie Server: Apache/2.4.51 (Ubuntu) oder X-Powered-By: PHP/8.1.2 verraten einem Angreifer exakt, welche Software in welcher Version läuft. Bekannte CVEs für diese Version können sofort gezielt ausgenutzt werden.

Directory Listing aktiv Ist Directory Listing aktiviert, zeigt der Webserver den Verzeichnisinhalt an, wenn keine Index-Datei vorhanden ist. So werden Dateistrukturen, Backups, Konfigurationsdateien oder Quellcode öffentlich sichtbar.

Unnötige HTTP-Methoden Für normale Webanwendungen werden fast ausschließlich GET und POST benötigt. Methoden wie PUT, DELETE, TRACE oder OPTIONS können - je nach Anwendung - missbraucht werden und sollten deaktiviert sein.

Fehlende oder falsche Security-Header Ohne Header wie Content-Security-Policy, X-Frame-Options oder Strict-Transport-Security fehlen grundlegende Schutzmechanismen gegen XSS, Clickjacking und Protocol-Downgrade-Angriffe.

Unsichere TLS-Konfiguration Ältere TLS-Versionen (SSLv2, SSLv3, TLS 1.0, TLS 1.1) und schwache Cipher Suites (z. B. RC4, DES, NULL-Cipher) ermöglichen Angriffe wie BEAST, POODLE oder DROWN.

Zu weitreichende Dateisystemberechtigungen Läuft der Webserver-Prozess als Root oder hat Schreibzugriff auf systemkritische Verzeichnisse, kann ein kompromittierter Prozess das gesamte System übernehmen.

Härtungsmaßnahmen

TLS richtig konfigurieren

Nur TLS 1.2 und TLS 1.3 sollten aktiv sein. TLS 1.3 bevorzugen, da es schnellere Handshakes und bessere Sicherheitseigenschaften bietet. Schwache Cipher Suites deaktivieren und HSTS (HTTP Strict Transport Security) aktivieren, damit Browser zukünftige Verbindungen ausschließlich über HTTPS aufbauen.

# Empfohlene TLS-Konfiguration (Nginx-Beispiel)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

Zertifikate sollten automatisch erneuert werden (Let's Encrypt via Certbot oder Caddy). Abgelaufene Zertifikate führen zu Browser-Warnungen und unterbrechen den Betrieb.

Security-Header setzen

Eine der wirkungsvollsten und einfachsten Maßnahmen ist das Setzen von HTTP-Security-Headern:

HeaderZweck
Content-Security-PolicySchränkt erlaubte Quellen für Skripte, Stile und andere Ressourcen ein (XSS-Schutz)
X-Frame-Options: DENYVerhindert das Einbetten der Seite in iFrames (Clickjacking-Schutz)
X-Content-Type-Options: nosniffVerhindert MIME-Type-Sniffing durch den Browser
Referrer-Policy: strict-origin-when-cross-originKontrolliert, welche Referrer-Informationen weitergegeben werden
Permissions-PolicyDeaktiviert nicht benötigte Browser-APIs (Kamera, Mikrofon, Geolocation)

Versionsinformationen aus dem Server-Header entfernen:

# Apache
ServerTokens Prod
ServerSignature Off

# Nginx
server_tokens off;

Directory Listing deaktivieren

# Apache (.htaccess oder httpd.conf)
Options -Indexes

# Nginx
autoindex off;

Zusätzlich sollten sensible Verzeichnisse und Dateien (.git, .env, wp-config.php, Backup-Dateien mit Endungen .bak, .old, .sql) entweder nicht im Webroot liegen oder explizit gesperrt sein.

Minimalprinzip bei Modulen und Funktionen

Nur tatsächlich benötigte Module aktivieren. Bei Apache lässt sich mit apache2ctl -M die Liste aktiver Module prüfen. Nicht benötigte Module wie mod_autoindex, mod_status oder mod_info deaktivieren. Das reduziert die Angriffsfläche und den Ressourcenverbrauch.

Regelmäßige Updates

Webserver-Software sollte zeitnah aktualisiert werden, wenn Sicherheitsupdates verfügbar sind. Viele erfolgreiche Angriffe nutzen bekannte CVEs aus, für die bereits Patches existieren. Eine regelmäßige Schwachstellenprüfung mit einem Schwachstellenscanner hilft, veraltete Komponenten zu erkennen.

Web Application Firewall (WAF)

Eine WAF sitzt vor dem Webserver und analysiert eingehenden HTTP-Verkehr auf bekannte Angriffsmuster wie SQL Injection, XSS, Path Traversal oder Command Injection. Sie kann Angriffe blockieren, bevor sie die eigentliche Anwendung erreichen.

Bekannte WAF-Lösungen:

  • ModSecurity (Open Source, integriert in Apache und Nginx, mit OWASP Core Rule Set)
  • Cloudflare WAF (Cloud-basiert, einfache Integration)
  • AWS WAF / Azure Application Gateway WAF (für Cloud-Deployments)

Eine WAF ersetzt keine sichere Anwendungsentwicklung, ist aber eine wichtige Verteidigungsschicht im Defense-in-Depth-Konzept.

Prozessrechte einschränken

Der Webserver-Prozess sollte unter einem dedizierten Dienstbenutzer ohne Login-Shell und ohne Root-Rechte laufen. Schreibzugriff auf das Webroot sollte auf das notwendige Minimum beschränkt sein. In Container-Umgebungen (Docker, Kubernetes) sollte der Prozess als Nicht-Root-User gestartet werden.

Monitoring und Logging

Webserver erzeugen standardmäßig Access-Logs und Error-Logs. Diese Logs sind eine unverzichtbare Quelle für Sicherheitsanalysen:

  • Access-Log: Jede HTTP-Anfrage mit IP-Adresse, Zeitstempel, Methode, Pfad, Status-Code und User-Agent. Ermöglicht Erkennung von Scan-Aktivitäten, Brute-Force-Versuchen und ungewöhnlichen Zugriffsmustern.
  • Error-Log: Fehler bei der Anfrageverarbeitung, Konfigurationsprobleme und Ausnahmen.

Empfehlungen für den Produktivbetrieb:

Logs sollten zentral gesammelt und nicht nur lokal auf dem Webserver gespeichert werden - ein kompromittierter Server kann seine eigenen Logs manipulieren. Log-Aggregationssysteme (z. B. ELK-Stack, Graylog oder ein SIEM) ermöglichen Korrelation über mehrere Systeme und automatische Alarmierung.

Wichtige Monitoring-Metriken:

  • 4xx-Fehlerraten: Hohe Raten von 403/404-Fehlern können auf Scanning oder Directory-Enumeration hinweisen.
  • 5xx-Fehlerraten: Deuten auf Anwendungsprobleme oder Angriffe hin, die den Server destabilisieren.
  • Anfragevolumen pro IP: Auffällige Spitzen können DDoS-Versuche oder automatisiertes Scanning sein.
  • Ungewöhnliche User-Agents oder Pfade: Bekannte Scanner-Signaturen, Webshell-Zugriffsmuster oder Zugriffsversuche auf bekannte Schwachstellen-Pfade (z. B. /wp-admin, /.env, /cgi-bin/).

Die Kombination aus korrekter Konfiguration, aktueller Software, Security-Headern, einer WAF und aktivem Monitoring bildet die Basis für einen sicher betriebenen Webserver. Keiner dieser Bausteine allein reicht aus - erst im Zusammenspiel entsteht eine belastbare Verteidigung.

  • Output Encoding: Alle Nutzerdaten müssen kontextabhängig escaped werden (HTML-Entities, JS-Encoding)
  • Content Security Policy (CSP): HTTP-Header, der inline JavaScript und unbekannte Script-Quellen blockiert
  • Sanitization: Vor der Speicherung in der Datenbank
  • HttpOnly- und Secure-Cookies: Verhindert JavaScript-Zugriff auf Session-Cookies
  • Modern Frontend Frameworks: React, Angular, Vue escapen standardmäßig, wenn korrekt verwendet

Fragen zu diesem Thema?

Unsere Experten beraten Sie kostenlos und unverbindlich.

Erstberatung

Über den Autor

Chris Wojzechowski
Chris Wojzechowski

Geschäftsführender Gesellschafter

E-Mail

Geschäftsführender Gesellschafter der AWARE7 GmbH mit langjähriger Expertise in Informationssicherheit, Penetrationstesting und IT-Risikomanagement. Absolvent des Masterstudiengangs Internet-Sicherheit an der Westfälischen Hochschule (if(is), Prof. Norbert Pohlmann). Bestseller-Autor im Wiley-VCH Verlag und Lehrbeauftragter der ASW-Akademie. Einschätzungen zu Cybersecurity und digitaler Souveränität erschienen u.a. in Welt am Sonntag, WDR, Deutschlandfunk und Handelsblatt.

10 Publikationen
  • Einsatz von elektronischer Verschlüsselung - Hemmnisse für die Wirtschaft (2018)
  • Kompass IT-Verschlüsselung - Orientierungshilfen für KMU (2018)
  • IT Security Day 2025 - Live Hacking: KI in der Cybersicherheit (2025)
  • Live Hacking - Credential Stuffing: Finanzrisiken jenseits Ransomware (2025)
  • Keynote: Live Hacking Show - Ein Blick in die Welt der Cyberkriminalität (2025)
  • Analyse von Angriffsflächen bei Shared-Hosting-Anbietern (2024)
  • Gänsehaut garantiert: Die schaurigsten Funde aus dem Leben eines Pentesters (2022)
  • IT Security Zertifizierungen - CISSP, T.I.S.P. & Co (Live-Webinar) (2023)
  • Sicherheitsforum Online-Banking - Live Hacking (2021)
  • Nipster im Netz und das Ende der Kreidezeit (2017)
IT-Grundschutz-Praktiker (TÜV) IT Risk Manager (DGI) § 8a BSIG Prüfverfahrenskompetenz Ausbilderprüfung (IHK)
Dieser Artikel wurde zuletzt am 29.03.2026 bearbeitet. Verantwortlich: Chris Wojzechowski, Geschäftsführender Gesellschafter bei AWARE7 GmbH. Lizenz: CC BY 4.0 - freie Nutzung mit Namensnennung: „AWARE7 GmbH, https://a7.de