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

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Apache2 Webserver aufsetzen nach IT-Grundschutz = == Ziel der Schulung == Diese Schulung zeigt, wie ein Apache2-Webserver auf einem Linux-System gemäß den…“)
 
Zeile 1: Zeile 1:
= Apache2 Webserver aufsetzen nach IT-Grundschutz =
+
 
  
 
== Ziel der Schulung ==
 
== Ziel der Schulung ==

Version vom 7. September 2024, 09:23 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
  • 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 wird deaktiviert, um keine unnötigen Verzeichnisinformationen preiszugeben.
  • Sicherheitsmodule installieren:
 * Beispiel: `sudo apt install libapache2-mod-security2` und `sudo a2enmod security2`
 * 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: `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 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 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` 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.