Sicherheitsleitfaden

Dieser Leitfaden behandelt bewährte Sicherheitspraktiken für den Betrieb einer Chamilo 2.0-Plattform im Produktivbetrieb. Sicherheit ist eine gemeinsame Verantwortung zwischen der Plattformsoftware, Ihrer Serverkonfiguration und den laufenden Betriebspraktiken.

Chamilo aktuell halten

Die wichtigste Sicherheitsmaßnahme ist, Ihre Chamilo-Installation stets auf dem neuesten Stand zu halten.

  • Abonnieren Sie den Chamilo-Sicherheitsaccount auf X (@chamilosecurity) oder beobachten Sie das GitHub-Repository für Ankündigungen zu neuen Releases.

  • Wenden Sie Sicherheitspatches zeitnah an. Kleinere Updates innerhalb der 2.0-Branch sind so gestaltet, dass sie sicher angewendet werden können.

  • Folgen Sie dem Upgrade-Prozess für jedes Update.

HTTPS

Betreiben Sie Chamilo im Produktivbetrieb immer über HTTPS.

  • Besorgen Sie sich ein SSL/TLS-Zertifikat (Let's Encrypt bietet kostenlose Zertifikate über Certbot an).

  • Konfigurieren Sie Ihren Webserver so, dass der gesamte HTTP-Verkehr auf HTTPS umgeleitet wird.

  • Aktivieren Sie den HSTS-Header (HTTP Strict Transport Security), um Downgrade-Angriffe zu verhindern:

    Strict-Transport-Security: max-age=31536000; includeSubDomains

Ohne HTTPS werden Anmeldedaten, Sitzungscookies und alle Benutzerdaten unverschlüsselt übertragen und können im Netzwerk abgefangen werden.

Dateiberechtigungen

Beschränken Sie Dateiberechtigungen auf das absolut notwendige Minimum.

Pfad
Eigentümer
Berechtigungen
Hinweise

Anwendungsdateien (Quellcode)

root oder Deploy-Benutzer

755 (Verzeichnisse), 644 (Dateien)

Webserver benötigt nur Lesezugriff.

var/

Webserver-Benutzer

775

Muss für Symfony-Cache, Logs und Datei-Uploads beschreibbar sein.

.env

root oder Deploy-Benutzer

640

Enthält sensible Daten. Webserver benötigt nur Lesezugriff im normalen Betrieb, aber Schreibzugriff während der Installation.

config/

root oder Deploy-Benutzer

750

Enthält sensible Daten. Webserver benötigt nur Lesezugriff im normalen Betrieb, aber Schreibzugriff während der Installation.

Setzen Sie niemals Berechtigungen auf 777. Betreiben Sie den Webserver niemals als root.

Passwortrichtlinien

Konfigurieren Sie strenge Passwortanforderungen in den Sicherheitseinstellungen:

  • Mindestlänge von 8 Zeichen (12+ empfohlen).

  • Fordern Sie eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen.

  • Erwägen Sie die Aktivierung eines Passwortablaufs für Umgebungen mit Compliance-Anforderungen.

  • Schulen Sie Benutzer darin, starke und einzigartige Passwörter zu wählen.

Rate Limiting und Schutz vor Brute-Force-Angriffen

Anwendungsebene

  • Setzen Sie Maximale Anmeldeversuche vor Kontosperrung (login_max_attempt_before_blocking_account) auf einen kleinen Wert (z. B. 5).

  • Aktivieren Sie CAPTCHA auf der Anmeldeseite. CAPTCHA ist entweder ein- oder ausgeschaltet – es wird nicht automatisch nach einer bestimmten Anzahl fehlgeschlagener Anmeldungen aktiviert. Kombinieren Sie es mit CAPTCHA-Fehler vor Sperrung (captcha_number_mistakes_to_block_account), um ein Konto zu sperren, das wiederholt am CAPTCHA scheitert.

Serverebene

Verwenden Sie fail2ban, um Anmeldefehler zu überwachen und angreifende IP-Adressen zu blockieren:

Erstellen Sie einen passenden Filter in /etc/fail2ban/filter.d/chamilo-auth.conf, um fehlgeschlagene Authentifizierungsversuche in den Logeinträgen zu erkennen.

Sitzungsmanagement

  • Legen Sie eine angemessene Sitzungslebensdauer fest (z. B. 3600 Sekunden / 1 Stunde) in den Sicherheitseinstellungen.

  • Konfigurieren Sie Sitzungscookie-Flags in Ihrer Symfony-Konfiguration:

  • Erwägen Sie, die Option "Angemeldet bleiben" auf Plattformen mit sensiblen Inhalten zu deaktivieren.

HTTP-Sicherheitsheader

Konfigurieren Sie Ihren Webserver so, dass Sicherheitsheader gesendet werden:

Header
Wert
Zweck

X-Content-Type-Options

nosniff

Verhindert MIME-Type-Sniffing.

X-Frame-Options

SAMEORIGIN

Verhindert Clickjacking über IFrames.

X-XSS-Protection

1; mode=block

Älterer XSS-Schutz für ältere Browser.

Referrer-Policy

strict-origin-when-cross-origin

Kontrolliert das Auslaufen von Referrer-Informationen.

Content-Security-Policy

Variiert

Kontrolliert, welche Ressourcen geladen werden können. Erfordert sorgfältige Anpassung für Chamilo.

Beispiel für Apache:

Beispiel für Nginx:

Sicherheit bei Datei-Uploads

  • Blockieren Sie ausführbare Dateierweiterungen (exe, bat, sh, php, phtml, cgi) in den Sicherheitseinstellungen.

  • Konfigurieren Sie Ihren Webserver so, dass hochgeladene Dateien niemals ausgeführt werden. Für Apache fügen Sie Folgendes zum gesamten var/-Verzeichnis hinzu:

  • Scannen Sie hochgeladene Dateien mit einem Antivirus-Programm (ClamAV), falls dies in Ihrer Umgebung erforderlich ist.

Datenbanksicherheit

  • Verwenden Sie einen dedizierten Datenbankbenutzer für Chamilo mit nur den benötigten Berechtigungen (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX auf die Chamilo-Datenbank).

  • Verwenden Sie nicht das Root-Datenbankkonto.

  • Stellen Sie sicher, dass die Datenbank nicht über das öffentliche Internet zugänglich ist. Binden Sie sie an localhost oder ein privates Netzwerk.

  • Aktivieren Sie die Datenbank-Audit-Protokollierung für umgebungen mit hohen Compliance-Anforderungen.

Backups

  • Planen Sie tägliche automatisierte Backups sowohl der Datenbank als auch der hochgeladenen Dateien.

  • Speichern Sie Backups an einem separaten Ort vom Server (offsite oder Cloud-Speicher).

  • Testen Sie regelmäßig die Wiederherstellung von Backups, um sicherzustellen, dass sie verwendbar sind.

  • Verschlüsseln Sie Backups, wenn sie sensible Daten enthalten.

Siehe Backups für detaillierte Anweisungen.

Überwachung

  • Überwachen Sie die Chamilo-Protokolle unter var/log/prod.log auf Fehler und verdächtige Aktivitäten.

  • Richten Sie eine Serverüberwachung (CPU, Speicher, Festplatte) ein, um Ressourcenengpässe zu erkennen.

  • Konfigurieren Sie Benachrichtigungen für wiederholte fehlgeschlagene Authentifizierungsversuche.

  • Überprüfen Sie regelmäßig Benutzerkonten auf unbefugte oder inaktive Konten.

Checkliste

Verwenden Sie diese Checkliste bei der Bereitstellung oder Überprüfung einer Chamilo-Installation:

Zuletzt aktualisiert

War das hilfreich?