Apache2 Webserver aufsetzen nach IT-Grundschutz: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
= Apache2 Webserver aufsetzen nach IT-Grundschutz =
 
 
 
== Ziel der Schulung ==
 
== Ziel der Schulung ==
 
Diese Schulung zeigt, wie ein Apache2-Webserver auf einem Linux-System gemäß den IT-Grundschutz-Richtlinien des BSI aufgesetzt wird. Das Ziel ist, eine sichere und stabile Webserverumgebung zu schaffen, die den Anforderungen an Verfügbarkeit, Vertraulichkeit und Integrität entspricht.
 
Diese Schulung zeigt, wie ein Apache2-Webserver auf einem Linux-System gemäß den IT-Grundschutz-Richtlinien des BSI aufgesetzt wird. Das Ziel ist, eine sichere und stabile Webserverumgebung zu schaffen, die den Anforderungen an Verfügbarkeit, Vertraulichkeit und Integrität entspricht.

Aktuelle Version vom 7. September 2024, 09:29 Uhr

Ziel der Schulung

Diese Schulung zeigt, wie ein Apache2-Webserver auf einem Linux-System gemäß den IT-Grundschutz-Richtlinien des BSI aufgesetzt wird. Das Ziel ist, eine sichere und stabile Webserverumgebung zu schaffen, die den Anforderungen an Verfügbarkeit, Vertraulichkeit und Integrität entspricht.

Annahmen

  • Betriebssystem: Ubuntu Server 20.04 LTS
  • Webserver: [Apache2](https://httpd.apache.org/)
  • Nutzung: Bereitstellung einer internen Webanwendung für Mitarbeiter
  • Sicherheitsanforderungen: Vertraulichkeit und Integrität haben höchste Priorität, da sensible interne Daten verarbeitet werden.

Planung und Vorbereitung

Sicherheitsanforderungen definieren

  • Vertraulichkeit: Zugriff nur für autorisierte Mitarbeiter
  • Integrität: Sicherstellung der Datenkonsistenz
  • Verfügbarkeit: Der Webserver muss eine hohe Verfügbarkeit aufweisen, jedoch nicht 24/7.

Rollen und Verantwortlichkeiten

  • Systemadministrator: Verantwortlich für die Installation und Konfiguration des Servers
  • Sicherheitsbeauftragter: Überwachung der Sicherheitsmaßnahmen und Durchführung regelmäßiger Audits

IT-Grundschutz-Bausteine anwenden

Webanwendungen (WEB)

  • **WEB.1: Planung und Konzeption von Webanwendungen** - Der Webserver wird intern genutzt, daher werden nur notwendige Funktionen bereitgestellt. Externe Zugriffe sind nicht erlaubt.
  • **WEB.2: Betrieb von Webservern** - Es werden nur die unbedingt notwendigen Module von Apache2 installiert und konfiguriert, um die Angriffsfläche zu minimieren.

Systemhärtung

Grundlegende Anforderungen an Applikationen (APP.1.2.A1)

  • Unnötige Dienste deaktivieren:
 * Beispiel: `sudo systemctl disable --now avahi-daemon`
  • Regelmäßige Updates:
 * Beispiel: `sudo apt update && sudo apt upgrade -y`
 * Grund: Um bekannte Sicherheitslücken schnell zu schließen.

Server-Härtung

  • Entfernen nicht benötigter Module:
 * Beispiel: `sudo a2dismod autoindex` - [Autoindex Modul](https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html) wird deaktiviert, um keine unnötigen Verzeichnisinformationen preiszugeben.
  • Sicherheitsmodule installieren:
 * Beispiel: `sudo apt install libapache2-mod-security2` und `sudo a2enmod security2` - [ModSecurity](https://github.com/SpiderLabs/ModSecurity) schützt gegen Webangriffe.
 * Grund: Um grundlegende Schutzmechanismen gegen Webangriffe zu bieten.

Sichere Konfiguration des Apache2-Servers

SSL/TLS Verschlüsselung

  • HTTPS erzwingen:
 * Beispiel: Installation von Zertifikaten mit [Let's Encrypt](https://letsencrypt.org/): `sudo apt install certbot python3-certbot-apache`
 * SSL/TLS aktivieren: `sudo a2enmod ssl` und Konfiguration der virtuellen Hosts auf Port 443.
 * Grund: Schützt die Kommunikation durch Verschlüsselung.

Sichere Header konfigurieren

  • Sicherheitsheader:
 * Beispiel: In der Apache-Konfigurationsdatei (z.B. `/etc/apache2/conf-enabled/security.conf`) folgende Zeilen hinzufügen:
   ```
   Header always set X-Content-Type-Options "nosniff"
   Header always set X-Frame-Options "DENY"
   Header always set X-XSS-Protection "1; mode=block"
   Header always set Content-Security-Policy "default-src 'self';"
   ```
 * Grund: Schutz vor gängigen Angriffen wie Clickjacking, MIME-Sniffing und XSS.

Dateizugriffsrechte beschränken

  • Sicherstellen, dass der Webserver nur auf die benötigten Dateien zugreifen kann:
 * Beispiel: `sudo chmod -R 750 /var/www/html`
 * Grund: Minimiert das Risiko unbefugter Zugriffe auf die Dateien des Webservers.

Monitoring und Protokollierung

Log-Management

  • Aktivieren und Überwachen der Apache2-Logs:
 * Beispiel: Konfiguriere [Logrotate](https://man7.org/linux/man-pages/man8/logrotate.8.html) für Apache-Logs: `sudo nano /etc/logrotate.d/apache2`
 * Grund: Ermöglicht die Nachverfolgung von Sicherheitsereignissen und die Fehlerdiagnose.

Automatische Überwachung

  • Tools zur Überwachung:
 * Beispiel: Installation von [Fail2Ban](https://www.fail2ban.org/) zum Schutz gegen Brute-Force-Angriffe: `sudo apt install fail2ban`
 * Grund: Blockiert IP-Adressen, die sich wiederholt fehlgeschlagen anmelden.

Regelmäßige Sicherheitsüberprüfungen und Patches

Schwachstellenmanagement

  • Beispiel: Regelmäßige Nutzung von Tools wie [Lynis](https://cisofy.com/lynis/) zur Sicherheitsprüfung: `sudo apt install lynis && sudo lynis audit system`
  • Grund: Erkennung und Behebung von Schwachstellen.

Penetrationstests und Audits

  • Regelmäßige Sicherheitstests durchführen:
 * Beispiel: Internes Audit-Tool oder externe Penetrationstests einsetzen.
 * Grund: Sicherstellung, dass der Server keine neuen Schwachstellen hat.

Notfallmanagement

Incident Response Plan

  • Verfahren zur Reaktion auf Sicherheitsvorfälle entwickeln:
 * Beispiel: Eine Checkliste für Sicherheitsvorfälle erstellen und regelmäßig testen.
  • Grund: Schnelle und effektive Reaktion bei Sicherheitsvorfällen.

Dokumentation

  • Alle Maßnahmen und Konfigurationen dokumentieren:
 * Beispiel: Eine Wiki-Seite für die Konfigurationsdokumentation und Sicherheitsprotokolle pflegen.
 * Grund: Gewährleistung der Nachvollziehbarkeit und Unterstützung bei der Fehlersuche.

Quellen

Fazit

Durch die Anwendung dieser Schritte und Maßnahmen stellen wir sicher, dass der Apache2-Webserver nach den Richtlinien des IT-Grundschutzes sicher betrieben wird. Die Einhaltung dieser Standards schützt den Server vor bekannten Bedrohungen und trägt zu einer stabilen und sicheren IT-Infrastruktur bei.