Moodle gehört weltweit zu den meistgenutzten Lernplattformen in Schulen, Hochschulen und Universitäten. Auf Moodle können Schüler und Studierende Unterrichtsmaterial abrufen, Lernaktivitäten durchführen, Prüfungen absolvieren und noch vieles mehr. Durch die Registrierung und Nutzung der Plattform verarbeitet Moodle viele sensible Daten: Namen, E-Mail-Adressen, Prüfungen, Leistungsnachweise und in manchen Fällen sogar personenbezogene Kontaktdaten. Aus diesem Grund ist die Zugriffssicherheit aber auch Datensicherheit ein großes Thema.
Das dieses Thema seit der Corona Pandemie immer mehr relevant geworden ist, zeigt auch eine Untersuchung der Gesellschaft für Informatik (GI) aus dem deutschsprachigen Raum. Hierbei wurden über 500 Hochschulen in Deutschland, Österreich und Schweiz im Jahr 2022 und 2023 untersucht. Es wurde festgestellt, dass zahlreiche eingesetzte Lernmanagementsysteme bekannte Sicherheitslücken (Common Vulnerabilities) aufweisen und/oder mit veralteten Versionen betrieben werden. Fehlende Updates oder unsichere Konfigurationen können dadurch nicht nur einzelne Benutzerkonten gefährden, sondern im Ernstfall auch Auswirkungen auf die gesamte Datenbank oder im Worst-Case Szenario die ganze IT-Infrastruktur betreffen.
Viele dieser Szenarios können mit einfachen Einstellungen aber schon vermieden werden. Wir wollen daher hier einige Sicherheitsmaßnahmen nach dem „Eisberg-Prinzip“ vorstellen um so die Sicherheit einer Moodle Instanz deutlich zu erhöhen.
Die Basics – die Spitze des Eisberges
Diese Maßnahmen kennt man überall, wo man Passwörter im Einsatz hat. Sie bieten aber auch gleichzeitig schon einen großen Sicherheitsgewinn.
SSL aktivieren und HTTPS erzwingen
Hierfür kann man z.B. über Let’s Encrypt ein SSL-Zertifikat erstellen, das man auf dem eigenen Apache- oder Nginx-Webserver einbindet und anschließend in der Moodle-config.php das HTTPS aktiviert. Dadurch werden Login-Daten und Sitzungen geschützt.
Rollen und Rechte prüfen
Der Moodle Admin sollte hier alle Rollen- und Gruppenrechte prüfen. Minimale Rechte für normale Nutzer, fortgeschrittene oder Administratoren-Rechte nur für befugte Personen. Hierdurch lassen sich viele „Hoppalas“ vermeiden, wo auf einmal bestimmte Nutzergruppen oder Lehrpersonen Zugriff auf ganze Datenbestände oder Konfigurationen unabsichtlich erhalten.
Gast-Zugang deaktivieren
Informationen über Kurse, Benutzer oder interne Inhalte sind meist unbeabsichtigt durch übersehene Einstellungen auch für Gäste einsehbar. Daher ist eine gute Maßnahme, den Gast-Zugriff, wenn nicht notwendig, ganz zu deaktivieren. Hierfür muss man unter Nutzerverwaltung in den Authentifizierung Einstellungen bei der Einstellung „Guest login button“ den Wert auf „verbergen“ setzen.
Starke Passwortrichtlinien aktivieren
Ein Klassiker unter den Sicherheitseinstellungen. Hier gilt auch:
- Mindestlänge definieren
- Sonderzeichen verlangen
Viele erfolgreiche Brute-Force-Angriffe erfolgen durch schwache oder unernste Passwörter wie „12345“.
Regelmäßige Updates
Wie auch beim Windows finden Hacker über Zeit Schwachstellen in einer bestehenden Version. Durch Updates lassen sich diese Schwachstellen patchen.
- Moodle-Core aktuell halten
- Plugins aktualisieren und wenn möglich minimieren
- Plugins, die nicht mehr verwendet werden, entfernen
Erweiterte Einstellungen – unter der Eisfläche
Hier beginnt der Bereich, den viele vernachlässigen oder wo gerne auf manche Punkte vergessen wird.
Zwei-Faktor-Authentifizierung (2FA)
- Absicherung für Admin-Accounts
Führt dazu, dass Admin-Accounts nur sehr schwer von außen gehackt werden können, auch wenn dass Passwort bekannt ist. Es verhindert auch, dass sich Personen wie Kollegen unberechtigt anmelden und unbeabsichtigt Einstellungen verändern.
Rate Limiting und KI-Schutz
- Fehlgeschlagene Login Versuche begrenzen
- Captchas einrichten
Um Brute-Force-Angriffe zu unterbinden und KI-Bots zu stoppen sind diese Einstellungen essenziell. Unter Sicherheit -> Sicherheitseinstellungen -> Schwelle zur Kontosperrung kann man die Anzahl an Versuchen anpassen und darunter die Sperrzeit setzen. Man kann auch wenn man sich ein Re-Captcha Key auf Google generiert hat, diesen in Moodle einfügen und so das Registrieren für Bot-Programme erschweren.
Selbstregistrierung deaktivieren
Dieser Schritt kann auch als Basic angesehen werden, da er in geschlossenen Institutionen wie Schulen oder Universitäten immer durchgeführt werden sollte. Wenn der Verwendungszweck es erlaubt, sollte man das Einschreiben per E-Mail für alle deaktivieren. Dadurch lassen sich nicht autorisierte Zugänge oder Spam-Accounts komplett ausschließen. Hierfür muss man in den Authentifizierung Einstellungen beim Feld „E-Mail-basierte Selbstregistrierung“ auf das Auge-Icon klicken, sodass das Auge geschlossen ist. Auch ohne offene Selbstregistrierung bietet Moodle verschiedene Möglichkeiten zur Benutzerverwaltung. Administratoren können Accounts manuell anlegen, per CSV importieren oder zentral über LDAP beziehungsweise Single Sign-on verwalten.
Datei Uploads einschränken
In Moodle werden Dateien häufig über Aufgaben, Foren oder Kursmaterialien hochgeladen. Dies kann dazu führen, dass potentielle schädliche Dateien auf den Server gelangen oder dass die Festplatten des Servers schnell voll werden.
- Nur vordefinierte Filetypen erlauben
- Maximale Dateigröße einstellen
Durch das Vordefinieren von Filetypen können schon viele schädliche Dateien abgewendet werden und gelangen so erst gar nicht auf den Server. Zusätzlich helfen Upload-Limits dabei, unnötigen Speicherplatz und potenziell hohe Serverlast durch sehr große Dateien oder viele gleichzeitige Uploads zu vermeiden.
Logs regelmäßig prüfen
Moodle bietet zahlreiche Berichte zu Aktivitäten, die auf der Plattform geschehen, an. Dazu gehören Aktivitäten wie Login Versuche, Datei-Uploads oder Rollenänderungen.
Unter Website Administration -> Berichte -> Protokolle können diese Aktivitäten gefiltert und ausgewertet werden. Die Berichte können auch als Excel kompatible Datei exportiert und zum Beispiel in einem Programm wie Power BI weiterverarbeitet werden.
So lassen sich auffällige Aktionen wie viele fehlgeschlagene Login Versuche, unerwartete Rollenänderungen oder Zugriffe auf die Plattform außerhalb üblicher Nutzungszeiten erkennen und man kann früh genug handeln.
Server Hardening – die Tiefe des Eisbergs
Im fortgeschrittenen Bereich der Moodle-Sicherheit geht es um die Server- und Netzwerkstruktur. Hier geht es darum, die Infrastruktur abzusichern, Zugriffe zu begrenzen und das Herzstück von Moodle, die Datenbank abzusichern.
Designierte Moodle Maschine
Um zu vermeiden, dass ein Angriff auf die Moodle Instanz auch auf die Gesamte IT-Infrastruktur überschwappt oder ein technisches Gebrechen auf einem Server die Moodle-Instanz auch mit lahmlegt, empfiehlt es sich, eine eigene Maschine wie zum Beispiel eine Ubuntu-VM auf einem eigenen designierten Server aufzusetzen. Dadurch lassen sich auch User und deren Rechte, SSH Verbindungen und Updates besser umsetzen.
Unnötige Dienste deaktivieren und Zugriffe begrenzen
Auf produktiven Moodle-Instanzen sollten nur Dienste aktiv sein, die auch wirklich verwendet werden. Nicht verwendete Dienste, offene Ports oder andere Oberflächen erhöhen die Angriffsfläche des Servers.
- Dienste wie FTP-Server, Mailserver, phpMyAdmin deaktivieren
- Nur Ports wie 443 und 22 (einschränken auf internes Netz) offenlassen
- Softwarepakete die nicht genutzt werden entfernen
Durch das Abdrehen von Diensten und Schließen & Begrenzen von Ports kann der Server fast nur noch über das interne Netz oder per VPN erreicht werden. SSH-Verbindungen sollten ausschließlich aus dem internen Netzwerk erlaubt werden, damit keine unautorisierten Zugriffe von extern auf den Server möglich sind.
Datenbank und Dateien absichern
Die Moodle-Datenbank enthält Informationen wie Benutzerkonten, Kursdaten, Bewertungen usw. Sie bildet das Herzstück von Moodle und muss daher besonders geschützt werden. Daten die von Lehrern oder Schülern hochgeladen werden, befinden sich im „moodle data“ Ordner und müssen ebenfalls gesichert werden. Sonst bleibt einem beim Wiederherstellen ein Moodle ohne Inhalte.
Daher empfiehlt sich:
- Zugangsdaten mit starken Passwörtern
- Separate Datenbank User mit minimalen Rechten
- keine öffentlichen Zugriffe
- automatisierte Backups
Backups können beispielsweise über Cronjobs erstellt werden, die jeden Tag um Mitternacht die Datenbank und den „moodle data“ Ordner kopieren, komprimieren und wegspeicheren. Wichtig hier ist das Prüfen, ob die Wiederherstellung mittels des Backups auch funktioniert.
Es gibt noch viele weitere Einstellungen mit denen sich eine Moodle-Instanz zusätzlich absichern lässt. Grundsätzlich empfiehlt es sich, vor der Umsetzung eine Planung anhand des eigenen Use Case mit einer Risikoanalyse zu machen. So wird einem klarer, welche Moodle- oder Serverfunktionen man braucht, welche Risiken diese mitbringen und welche Gegenmaßnahmen man setzen sollte. Weitere Informationen oder Tipps erhält man aus dem Moodle-Forum und die offizielle Moodle Dokumentation. Auch die frei zugängliche Moodle Academy bietet spannende und sehr hilfreiche Kurse zu Themen wie „Moodle Reports“, „Data Protection“ oder „Moodle Role Management“ an.

