Zum Inhalt springen

eLeDia Konfigurationshärtung

Komponente eledia_config · Version 5.1

Die Konfigurationshärtung ist für Moodle-Plattformen gedacht, die eLeDia betreibt oder die nach demselben Verfahren betrieben werden: Der Code kommt nur über ein Deployment auf den Server, nie über die Oberfläche. Sie richtet sich an das Hosting und an die Administration der Plattform.

Anders als die übrigen Bausteine im Paket ist sie kein Moodle-Plugin. Sie besteht aus zwei PHP-Dateien, die in der config.php eingebunden werden. Deshalb erscheint sie nicht in der Plugin-Übersicht.

Die beiden Dateien .eledia_config und .eledia_config_post liegen neben der config.php. In die config.php kommen zwei Einbindungen:

  1. .eledia_config wird vor dem Laden von lib/setup.php eingebunden. Diese Datei setzt Konfigurationswerte.
  2. .eledia_config_post wird nach dem Laden von lib/setup.php eingebunden. Diese Datei sperrt Aufrufe, für die Moodle bereits geladen sein muss.

Beide Einbindungen prüfen, ob die Datei existiert. Fehlt eine Datei, läuft Moodle ohne die jeweilige Härtung weiter.

Updates und Installation

  • Hinweise auf verfügbare Updates sind abgeschaltet.
  • Automatische Updates und die Installation von Plugins per Klick sind abgeschaltet.

Schutz vor Eingriffen

  • Das Löschen von Plugin-Verzeichnissen über die Plugin-Übersicht wird verworfen.
  • Der Leistungstest des Caches (cache/testperformance.php) läuft ohne Anzahl und damit ohne Last.
  • Der Testdaten-Generator läuft ohne Debug-Ausgabe.
  • Das Werkzeug zum Datenbankumzug ist gesperrt.
  • Die Deinstallation von Admin-Werkzeugen (tool_…) wird auf die Administrationsseite umgeleitet.

Feste Betriebswerte

  • Der Pfad zu PHP ist auf /usr/bin/php gesetzt.
  • Der Virenscanner ClamAV ist über einen Unix-Socket angebunden.
  • Aufgabenprotokolle werden 14 Tage und höchstens 5000 Läufe lang aufbewahrt.
  • Für Configurable Reports ist die SQL-Sicherheit erzwungen.

Die Dateien liegen im GitLab-Repository eledia_plugins/other/eledia_config, für Moodle 5.1 auf dem Branch 51. Änderungen laufen wie bei einem Plugin über einen Merge Request und gehen mit dem nächsten Deployment auf die Plattformen.

Prüfen Sie bei jeder Änderung zwei Dinge:

  1. Gehört der Wert in die Datei vor dem Laden von Moodle oder in die Datei danach? Konfigurationswerte gehören in .eledia_config, Umleitungen, die Moodle-Funktionen brauchen, in .eledia_config_post.
  2. Gilt der Wert für alle Plattformen? Kundenspezifische Werte gehören in die config.php der jeweiligen Plattform, nicht in die gemeinsame Härtung.

Die Härtung verarbeitet keine personenbezogenen Daten. Sie trägt zur Sicherheit bei: Der Virenscan von Uploads ist fest eingestellt, und SQL-Berichte können keine beliebigen Abfragen ausführen.

  • Die Härtung ist auf die Serverumgebung im eLeDia-Hosting zugeschnitten. Pfade zu PHP und ClamAV müssen auf anderen Servern geprüft werden.
  • Sie ersetzt keine Rollen und Rechte. Wer Administrationsrechte hat, kann weiterhin Einstellungen ändern, die hier nicht gesetzt sind.
  • Werte, die hier gesetzt sind, lassen sich in der Oberfläche nicht ändern. Änderungen laufen über das Repository und das Deployment.
  • Sie ist kein Moodle-Plugin und hat deshalb weder Datenschutz-API noch Tests.

Ein Plugin lässt sich in der Oberfläche nicht installieren. Das ist beabsichtigt. Neue Plugins kommen über das Deployment auf den Server.

Die Deinstallation eines Admin-Werkzeugs führt zurück auf die Startseite der Administration. Auch das ist beabsichtigt. Wenden Sie sich an das Hosting.

Wie prüfe ich, ob die Härtung aktiv ist? Öffnen Sie die Plugin-Übersicht. Fehlt dort die Schaltfläche zum Installieren von Plugins, ist die Datei vor dem Laden von Moodle eingebunden. Ein Aufruf des Werkzeugs zum Datenbankumzug führt zurück auf die Administrationsseite, wenn auch die zweite Datei wirkt.

Uploads schlagen mit einem Virenscan-Fehler fehl. Prüfen Sie, ob der ClamAV-Dienst auf dem Server läuft und der Socket unter /var/run/clamav/clamd.ctl erreichbar ist.