Dokumentation Wiki Lime
Startseite
Inhaltsübersicht
2. Nutzerverwaltung [Bearbeiten]
3. Servervirtualisierung [Bearbeiten]
Hier wird die Schulserverlösung Lime dokumentiert.
LIME ist keine geschlossene Plattform von der Stange, sondern eine offen gedachte Schulserverlösung für Grund- und Förderschulen. Die technische Basis mit OPNsense, SaltStack, FreeIPA, SSO, Nextcloud und Proxmox VE steht dabei für Sicherheit, Transparenz und Weiterentwickelbarkeit. Genau dieser Aspekt passt zum Wettbewerb: Security by Design bedeutet hier nicht Abschottung, sondern sichere, nachvollziehbare und souveräne Infrastruktur.
Bild Logo - Einbinden Logo Datei als svg
Logo in weiß (svg)
Logo in schwarz (svg)
Allgemeine Beschreibung
Beschreibung Komponenten
Firewall [Bearbeiten]
Wir setzen bei uns eine OPNsense ein, mit der wir verschiedene Dienste für unsere Schul-IT-Infrastruktur bereitstellen. Dabei beschränkt sich der Einsatz nicht nur auf die klassische Firewall-Funktion. Beispielsweise nutzen wir den integrierten DHCP-Server, um Clients automatisch IP-Adressen zuzuweisen. Außerdem verwenden wir den ACME-Client zur Verwaltung und automatischen Erneuerung von TLS-Zertifikaten. Zusätzlich setzen wir das Nginx-Plugin ein, um bestimmte URL-Anfragen, etwa für unsere Nextcloud, gezielt zu steuern und weiterzuleiten.
Da OPNsense auch als DNS-Server fungiert, nutzen wir dort zudem Blocking-Listen, um unerwünschte Inhalte zu filtern und den Zugriff entsprechend einzuschränken.
Übersicht Dienste der OPNsense
Beispiel Firewallregeln
Nutzerverwaltung [Bearbeiten]
FreeIPA ist eine Open-Source-Lösung für zentrale Identitäts- und Zugriffsverwaltung in Linux- und Unix-Netzwerken. Vereinfacht gesagt: Mit FreeIPA verwaltet man Benutzer, Gruppen, Rechner, Rechte und Anmeldungen an einer zentralen Stelle, statt alles auf jedem System einzeln einzurichten. Die Projektseite beschreibt FreeIPA als integrierte Lösung für Identity, Authentication, Policy und Audit.
FreeIPA ist für Linux-Netzwerke ungefähr das, was Active Directory oft in Windows-Umgebungen ist. Es sorgt dafür, dass sich Benutzer mit denselben Zugangsdaten an verschiedenen Systemen anmelden können und dass Regeln zentral gelten. Dazu nutzt es bekannte Open-Source-Komponenten wie 389 Directory Server für Verzeichnisdaten, MIT Kerberos für Anmeldung/Single Sign-on, Dogtag für Zertifikate und optional DNS-Dienste.
Aufgaben von FreeIPA sind:
- Benutzer und Gruppen zentral verwalten
- Passwörter und Anmeldungen steuern
- Single Sign-on für mehrere Systeme ermöglichen
- Hosts und Dienste in eine gemeinsame Sicherheitsstruktur aufnehmen
- Zugriffsregeln definieren, etwa für SUDO, SELinux oder Host-Zugriffe
- Zertifikate und teils auch DNS zentral mitverwalten
Dies soll ergänzt werden durch eine Anwendung zum Generieren von Record IDs.
Beschreibung Nutzerverwaltung mit FreeIPA
Demo für Screenshots:
https://ipa.demo1.freeipa.org/ipa/ui/
Nutzername: admin
Passwort: Secret123
Servervirtualisierung [Bearbeiten]
Proxmox VE (Proxmox Virtual Environment) ist eine Open-Source-Plattform zur Server-Virtualisierung. Damit kann man auf einem physischen Server mehrere virtuelle Maschinen (VMs) und Container betreiben und zentral verwalten. Die Plattform basiert auf Debian Linux und kombiniert Virtualisierung, Netzwerk, Storage und Cluster-Verwaltung in einer gemeinsamen Oberfläche.
Anlegen virtueller Maschinen:
- 1 VM für FreeIPA (Benutzerverwaltung)
- 1 VM für Nextcloud (Dateiablage)
- 1 VM für Salt-Server (Automatisierung)
- 1 VM für Testzwecke (Aufgrund der Snapshots kann hier sicher getestet werden)
In Schulen muss man oft Updates, neue Dienste oder Konfigurationen ausprobieren.
Mit Proxmox kann man dafür einfach eine Test-VM anlegen oder einen Snapshot machen. Wenn etwas schiefgeht, geht man zurück.
Das ist gerade bei:
- Client-Updates
- Nextcloud-Anpassungen
- Authentifizierung
- Firewall-nahen Diensten
- neuen pädagogischen Anwendungen
sehr praktisch.
Wenn ein Server kaputt konfiguriert wird oder ein Update fehlschlägt, kann man:
- Backups zurückspielen
- Snapshots verwenden
- VMs auf andere Hardware umziehen
Das reduziert Ausfallzeiten im Schulbetrieb.
Viele Schulserver sind leistungsfähig, aber oft läuft darauf nur ein einzelner Dienst.
Mit Proxmox kann man die vorhandene Hardware besser auslasten und mehrere Dienste auf einem Host bündeln.
Apache Dienst der Nextcloud VM anzeigen lassen
Beschreibung Servervirtualisierung mit Proxmox
Geräteverwaltung [Bearbeiten]
SaltStack, heute meist einfach Salt genannt, ist ein Open-Source-Werkzeug zur IT-Automatisierung. Damit kann man viele Rechner zentral verwalten, Befehle auf ihnen ausführen, Software verteilen und sicherstellen, dass Systeme immer in einem gewünschten Zustand bleiben. Die offizielle Doku beschreibt Salt als eventgesteuertes Automatisierungs- und Infrastruktur-Management-Framework für Deployment, Konfiguration und Verwaltung komplexer IT-Systeme.
Typische Aufgaben mit Salt sind:
- Remote-Befehle ausführen auf vielen Geräten gleichzeitig
- Konfigurationen vereinheitlichen
- Software und Updates ausrollen
- Dienste starten, stoppen, überwachen
- Abläufe automatisieren, z. B. komplette Bereitstellung neuer System
Salt arbeitet mit einem zentralen Master und verwalteten Systemen, den sogenannten Minions. Der Master verteilt Aufgaben, und die Minions führen sie aus.
Automatisierung statt Handarbeit.
Dadurch werden Systeme konsistenter, Fehler seltener und Verwaltungsaufgaben deutlich schneller.
Reagieren auf Ereignisse
Salt stellt mit dem sogenannten Reactorsystem ein äußerst nützliches Feature bereit. Diese Funktion ermöglicht es dem Salt-Server, gezielt auf bestimmte Ereignisse zu reagieren. Startet beispielsweise ein Client, meldet er sich automatisch beim Salt-Server an. Dieses Ereignis kann anschließend eine definierte Reaktion auslösen, die über sogenannte SLS-Dateien konfiguriert wird.
Mithilfe dieser SLS-Dateien lässt sich der Client in einen gewünschten Zustand überführen. Ihr Inhalt kann dabei vielfältig sein: vom Ausführen einzelner Befehle über die Installation von Software bis hin zur gezielten Anpassung oder Änderung von Dateien auf dem Zielsystem.
Sind die States einmal angelegt, reicht diese in der Reactor-Datei einfach mit einem Kommentarzeichen ein- bzw. auszuschalten. Das macht es recht bequem.
Reactor-File Beispiel
Grains und Roles
In Salt dienen Grains und Rollen (Roles) dazu, Systeme gezielt zu identifizieren und zu gruppieren. Grains sind statische Informationen über einen Client, wie etwa Betriebssystem, Hostname oder Hardwaredetails. Diese Daten werden automatisch erfasst und können genutzt werden, um Konfigurationen abhängig von bestimmten Eigenschaften anzuwenden.
Rollen hingegen sind frei definierbare Zuordnungen, die einem System eine bestimmte Funktion geben, beispielsweise „PC“ oder „Server“. Über diese Rollen lassen sich States gezielt auf Gruppen von Systemen anwenden, wodurch die Verwaltung komplexer Infrastrukturen deutlich vereinfacht wird.
Beschreibung Geräteverwaltung mit Salt
Nextloud [Bearbeiten]
Für unsere Eigenlösung haben wir bewusst auf klassische Netzlaufwerke verzichtet, um das System möglichst einfach zu halten („Keep it simple“). Stattdessen dient die Nextcloud als zentrale Dateiablage.
Klassische Home-Laufwerke haben den Vorteil, dass sie nach der Anmeldung automatisch eingebunden werden, ohne dass sich Nutzer erneut authentifizieren müssen. Dieses Prinzip haben wir auf die Nextcloud übertragen: Der Zugriff erfolgt bequem über eine Desktopverknüpfung.
Befindet sich ein Nutzer im internen Netzwerk, erfolgt die Anmeldung automatisch über Single Sign-On (SSO) im Browser. Technisch wird dies durch die SAML-App in der Nextcloud sowie eine entsprechende Konfiguration des Apache-Webservers umgesetzt (z. B. via Kerberos/GSSAPI).
Außerhalb des Schulnetzwerks ist weiterhin eine normale Anmeldung mit Benutzername und Passwort erforderlich. Der externe Zugriff wird dabei über die Firewall und entsprechendes URL-Rewriting ermöglicht, sodass die Nextcloud auch von außen erreichbar ist.
Clients [Bearbeiten]
Linux Mint für Clients ist ein benutzerfreundliches Linux-Betriebssystem für Desktop-PCs und Notebooks. Es ist dafür gedacht, direkt auf Arbeitsplatzrechnern eingesetzt zu werden und Anwendern eine einfache, stabile und alltagstaugliche Oberfläche zu bieten. Durch die an Windows angelehnte Oberfläche ist auch der Umstieg auf Linux Mint recht einfach.