Zum Inhalt springen

Moodle/Sicherheit

Aus Foxwiki

Sicherheit

Nutzer von Moodle, die ihr System haben registrieren lassen, erhalten sicherheitsrelevante Informationen automatisch und vorab.

  • Damit haben sie die Möglichkeit, ihr System zu aktualisieren.
  • Informationen hierzu werden in den Security Announcements veröffentlicht.
  • Die Meldung von Sicherheitsproblemen erfolgt im Tracker.
  • Sofern Einträge als „Serious security issue“ gekennzeichnet werden, werden sie nicht veröffentlicht, bevor das „security team“ diese geprüft hat.


Einführung

Wichtige Sicherheitsmaßnahmen für eine Moodle-Installation
  • Melden Sie Sicherheitsprobleme im Moodle-Tracker (als Sicherheitsproblem markieren), damit Entwickler sie sehen und registrierte Moodle-Websites so schnell wie möglich über Korrekturen informieren können
  • Veröffentlichen keine Exploits, um Moodle-Administratoren zu schützen, die noch kein Upgrade durchgeführt haben

Einfache Sicherheitsmaßnahmen

  • Die beste Sicherheitsstrategie ist ein gutes Backup! Aber Sie haben kein gutes Backup, wenn Sie es nicht wiederherstellen können. Testen Sie Ihre Wiederherstellungsverfahren!
  • Laden Sie nur Software oder Dienste, die Sie verwenden werden
  • Führen Sie regelmäßige Updates durch
  • Orientieren Sie sich bei der Sicherheit an den Schichten, die Sie an einem kalten Wintertag tragen

Grundlegende Empfehlungen

Aktualisieren Sie Moodle regelmäßig bei jeder Veröffentlichung
Veröffentlichte Sicherheitslücken ziehen nach der Veröffentlichung die Aufmerksamkeit von Crackern auf sich. Je älter die Version, desto mehr Schwachstellen enthält sie wahrscheinlich.
Verwenden Sie https, um alle Seiten (nicht nur die Anmeldeseite) zu sichern
Schützen Sie den gesamten Datenverkehr von Ihrer Moodle-Instanz und Ihren Benutzern, indem Sie alle Seiten nur über https zugänglich machen. Dies schützt nicht nur die Passwörter bei der Anmeldung, sondern gewährleistet auch die Privatsphäre Ihrer Benutzer, sodass alle Benutzerdaten nicht von Dritten, wie z. B. WLAN-Anbietern, abgefangen oder manipuliert werden können („Ad Injection“). Kostenlose https-Zertifikate sind unter https://letsencrypt.org/ erhältlich. Setzen Sie außerdem httpslogin=yes in Ihrer Moodle-Konfiguration, um eine zusätzliche Schutzebene für die Übermittlung von Anmeldedaten hinzuzufügen.
Register globals MÜSSEN deaktiviert werden
Dies hilft, mögliche XSS-Probleme in Skripten von Drittanbietern zu verhindern.
Führen Sie den Security Overview Report aus
Dieser identifiziert verschiedene Konfigurationen innerhalb Ihrer Moodle-Website, die ein Sicherheitsrisiko darstellen können. Daher sollten alle in diesem Bericht angesprochenen Probleme untersucht und gegebenenfalls Maßnahmen ergriffen werden.
Verwenden Sie sichere Passwörter für Administratoren und Lehrkräfte
Die Wahl „schwieriger“ Passwörter ist eine grundlegende Sicherheitsmaßnahme zum Schutz vor „Brute-Force“-Angriffen auf Konten.
Geben Sie Lehrerkonten nur an vertrauenswürdige Benutzer weiter. Vermeiden Sie die Erstellung öffentlicher Sandkästen mit kostenlosen Lehrerkonten auf Produktionsservern.
Lehrerkonten haben viel liberalere Berechtigungen und es ist einfacher, Situationen zu schaffen, in denen Daten missbraucht oder gestohlen werden können.
Trennen Sie Ihre Systeme so weit wie möglich
Eine weitere grundlegende Sicherheitstechnik besteht darin, unterschiedliche Passwörter auf verschiedenen Systemen zu verwenden, unterschiedliche Maschinen für unterschiedliche Dienste zu verwenden und so weiter. Dadurch wird verhindert, dass sich Schäden ausbreiten, selbst wenn ein Konto oder ein Server kompromittiert wird.

Führen Sie regelmäßige Updates durch

  • Verwenden Sie automatische Updatesysteme
  • Windows Update
  • Linux: up2date, yum, apt-get
Erwägen Sie die Automatisierung von Updates mit einem über cron geplanten Skript
  • Mac OSX-Updatesystem
  • Bleiben Sie auf dem neuesten Stand bei PHP, Apache und Moodle

Verwenden Sie Mailinglisten, um auf dem Laufenden zu bleiben

  • CISA-Empfehlungen zur Internetsicherheit – https://www.cisa.gov/news-events/cybersecurity-advisories
  • PHP - http://www.php.net/mailing-lists.php - Tragen Sie sich in die Ankündigungsliste ein
  • MySQL - http://lists.mysql.com - Tragen Sie sich in die MySQL-Ankündigungsliste ein

Firewalls

  • Sicherheitsexperten empfehlen eine doppelte Firewall
Unterschiedliche Hardware-/Software-Kombinationen
  • Die Deaktivierung nicht verwendeter Dienste ist oft genauso effektiv wie eine Firewall
Verwenden Sie netstat -a, um offene Netzwerkports zu überprüfen
  • Keine Garantie für Schutz
  • Ports zulassen
80, 443 (ssl) und 9111 (für Chat),
Remote-Admin: ssh 22 oder rdp 3389

Passwortrichtlinie

Eine Passwortrichtlinie kann unter Einstellungen > Website-Verwaltung > Sicherheit > Website-Richtlinien eingerichtet werden.

Es gibt ein Kontrollkästchen, mit dem festgelegt werden kann, ob die Kennwortkomplexität erzwungen werden soll oder nicht, sowie die Option, die Mindestlänge des Kennworts, die Mindestanzahl der Ziffern, die Mindestanzahl der Kleinbuchstaben, die Mindestanzahl der Großbuchstaben und die Mindestanzahl der nicht alphanumerischen Zeichen festzulegen.

Wenn ein Benutzer ein Kennwort eingibt, das diese Anforderungen nicht erfüllt, wird eine Fehlermeldung angezeigt, in der die Art des Problems mit dem eingegebenen Kennwort angegeben wird.

Die Durchsetzung der Passwortkomplexität und die Verpflichtung der Benutzer, ihr anfängliches Passwort zu ändern, tragen wesentlich dazu bei, dass Benutzer „gute Passwörter“ wählen und tatsächlich verwenden.

Wenn die Überprüfung jedoch zu aufwendig ist, schreiben sie das Passwort einfach auf. Seien Sie also realistisch.

Seien Sie auf das Schlimmste vorbereitet

  • Halten Sie Backups bereit
  • Üben Sie Wiederherstellungsverfahren im Voraus
  • Verwenden Sie regelmäßig einen Rootkit-Detektor
    • Linux/MacOSX - http://www.chkrootkit.org/
    • Windows - http://technet.microsoft.com/en-en/sysinternals/bb897445.aspx und http://technet.microsoft.com/de-de/sysinternals/bb897445.aspx

Moodle-Sicherheitswarnungen

  • Registrieren Sie Ihre Website bei Moodle.org
Registrierte Benutzer erhalten E-Mail-Benachrichtigungen
  • Sicherheitswarnungen werden auch online veröffentlicht
  • Web - http://moodle.org/security
  • RSS-Feed - http://moodle.org/rss/file.php/1/1/forum/996/rss.xml

Verschiedene Überlegungen

Dies sind alles Dinge, die Sie in Betracht ziehen sollten und die sich auf Ihre allgemeine Sicherheit auswirken:

  • Verwenden Sie die Einstellung „Sichere Formulare“
  • Legen Sie immer ein mysql-Root-Benutzerkennwort fest
  • Deaktivieren Sie den mysql-Netzwerkzugriff
  • Verwenden Sie SSL, httpslogins=yes
  • Verwenden Sie gute Passwörter – richten Sie eine Passwortrichtlinie unter Einstellungen > Website-Administration > Sicherheit > Website-Richtlinien ein
  • Aktivieren Sie nicht die Einstellung opentowebcrawlers (unter Einstellungen > Website-Administration > Sicherheit > Website-Richtlinien)
  • Deaktivieren Sie den Gastzugriff
  • Fügen Sie Registrierungsschlüssel zu allen Kursen hinzu oder setzen Sie Kursregistrierung = Nein für alle Kurse
  • Stellen Sie sicher, dass der Registrierungsschlüssel-Hinweis unter Administration > Site-Administration > Plugins > Registrierung > Selbstregistrierung deaktiviert ist (was standardmäßig der Fall ist).

Die sichersten/paranoidsten Dateiberechtigungen

Hinweis: Die folgenden Informationen gelten nur für Linux/Unix-basierte Installationen, da das MS Windows-Berechtigungssystem ganz anders ist.

Je nach Serverkonfiguration gibt es zwei verschiedene Szenarien:

  1. Sie betreiben Moodle auf Ihrem eigenen dedizierten Server.
  2. Sie betreiben Moodle auf einer gemeinsam genutzten Hosting-Umgebung.

In den folgenden Abschnitten müssen Sie das Webdienst-Benutzerkonto und die Webdienst-Gruppe verwenden, um die Berechtigungen festzulegen. Sie müssen diese also kennen. Dies kann von Server zu Server sehr unterschiedlich sein, aber wenn diese Funktion auf Ihrem Server nicht deaktiviert wurde, können Sie zu http://your.moodle.site/admin/phpinfo.php gehen (sich als admin anmelden) und dann in der Tabelle „apache“ nach der Zeile „User/Group“ suchen. Ich erhalte zum Beispiel „www-data“ für das Benutzerkonto und „www-data“ auch für die Gruppe.

Ausführen von Moodle auf einem dedizierten Server

Angenommen, Sie führen Moodle auf einem versiegelten Server aus (d. h. keine Benutzeranmeldungen auf dem Computer zulässig) und root kümmert sich um die Änderungen sowohl am Moodle-Code als auch an der Moodle-Konfiguration (config.php), dann sind dies die strengsten Berechtigungen, die ich mir vorstellen kann:

1. moodledata-Verzeichnis und alle seine Inhalte (und Unterverzeichnisse, einschließlich Sitzungen):

Besitzer: apache-Benutzer (apache, httpd, www-data, was auch immer; siehe oben)
Gruppe: apache-Gruppe (apache, httpd, www-data, was auch immer; siehe oben)
Berechtigungen: 700 für Verzeichnisse, 600 für Dateien

2. moodle-Verzeichnis und alle seine Inhalte und Unterverzeichnisse (einschließlich config.php):

Besitzer: root
Gruppe: root
Berechtigungen: 755 für Verzeichnisse, 644 für Dateien.

Wenn Sie lokale Anmeldungen für reguläre Benutzer zulassen, sollte 2. wie folgt aussehen:

Besitzer: root
Gruppe: apache-Gruppe (apache, httpd, www-data, was auch immer; siehe oben)
Berechtigungen: 750 für Verzeichnisse, 640 für Dateien.

Diese Berechtigungen sind die strengsten. Mit weniger strengen Berechtigungen können Sie sowohl in den moodledata- als auch in den moodle-Verzeichnissen (und Unterverzeichnissen) ausreichend sicher sein.

Moodle in einer gemeinsam genutzten Hosting-Umgebung ausführen

Wenn Sie Moodle auf einer gemeinsam genutzten Hosting-Umgebung betreiben, sind die oben genannten Berechtigungen wahrscheinlich falsch. Wenn Sie 700 als Berechtigung für Verzeichnisse (und 600 für Dateien) festlegen, verweigern Sie dem Webdienst-Benutzerkonto wahrscheinlich den Zugriff auf Ihre Verzeichnisse und Dateien.

Wenn Sie Ihre Berechtigungen so weit wie möglich einschränken möchten, müssen Sie Folgendes wissen:

  1. das Benutzerkonto und die Gruppe, unter denen der Webservice läuft (siehe oben).
  2. den Eigentümer der Verzeichnisse/Dateien von moodledata und dem moodle-Verzeichnis (dies sollte normalerweise Ihr Client-Benutzerkonto sein) und die Gruppe der Verzeichnisse/Dateien. Diese Informationen erhalten Sie normalerweise über den Dateimanager Ihres Hosting-Control-Panels. Gehen Sie zum Moodle-Ordner und wählen Sie ein beliebiges Verzeichnis oder eine Datei aus und versuchen Sie, die Berechtigungen, den Eigentümer und die Gruppe dieser Datei anzuzeigen/zu ändern. Normalerweise werden die aktuellen Berechtigungen, der Eigentümer und die Gruppe angezeigt. Führen Sie den gleichen Vorgang für das Verzeichnis „moodle-data“ aus.

Je nach den folgenden Szenarien sollten Sie dann unterschiedliche Berechtigungen (aufgelistet von sicherer bis weniger sicher) für Ihr Verzeichnis „moodle-data“ verwenden:

  1. Wenn das Webdienstkonto und der Eigentümer der Verzeichnisse/Dateien identisch sind, sollten Sie 700 für Verzeichnisse und 600 für Dateien verwenden.
  2. Wenn die Webdienstgruppe und die Gruppe der Verzeichnisse/Dateien identisch sind, sollten Sie 770 für Verzeichnisse und 660 für Dateien verwenden.
  3. Wenn keine der oben genannten Optionen zutrifft, müssen Sie 777 für Verzeichnisse und 666 für Dateien verwenden, was weniger sicher ist, aber Ihre einzige Option darstellt. 707 und 606 wären sicherer, aber je nach Ihrer speziellen Konfiguration kann es funktionieren oder auch nicht.

Tatsächlich müssen Sie moodledata nur die oben angegebenen Berechtigungen zuweisen, da alle darin enthaltenen Verzeichnisse und Dateien vom Webservice selbst erstellt werden und über die richtigen Berechtigungen verfügen.

Was das Moodle-Verzeichnis betrifft, so sollte es ausreichen, solange das Webservice-Benutzerkonto die Dateien lesen und die Verzeichnisse lesen und ausführen kann. Es ist nicht erforderlich, dem Webservice-Konto/der Webservice-Gruppe Schreibberechtigungen für Dateien oder Unterverzeichnisse zu erteilen. Der einzige Nachteil ist, dass Sie die Datei config.php während des Installationsprozesses manuell erstellen müssen, da Moodle sie nicht erstellen kann. Dies sollte jedoch kein großes Problem darstellen.

Siehe auch

  • Sicherheits-FAQ
  • Artikel mit den wichtigsten Sicherheitstipps für Moodle-Administratoren

Verwendung von Moodle-Forumsdiskussionen:

  • Leitfaden zur Sicherung Ihres Moodle-Servers
  • So sichern Sie Ihre Moodle-Website vor Hacking, einschließlich Empfehlungen zur Notfallwiederherstellung