Praxisanleitung · Linux · Heimnetz

Netzzeit mit dem Familienkalender steuern

Ein nachvollziehbares Modell für IT-affine Eltern: Jedes Kind meldet sich mit einer eigenen Identität an. Ein Kalender ergänzt den normalen Wochenplan, ohne Passwörter oder Routerzugänge zu enthalten.

Architektur der Netzzeitsteuerung vom Familienkalender über den Policy-Dienst bis zu FreeRADIUS und MikroTik
Passwörter bleiben in der Anmeldung; der Kalender transportiert ausschließlich Zeitregeln.

Das Prinzip

Ein Kalender, eine Entscheidung, zwei Durchsetzungen

01 · EingabeFamilienkalenderBONUS oder SPERRE
iCal
02 · EntscheidungLinux-Policy-DienstPriorität + Failsafe
Regeln
03 · WirkungRADIUS + RouterLogin und feste Geräte

01 · Zielbild

Planbar, aber nicht starr

Ein normaler Wochenplan bleibt die Grundlage. Schulferien können automatisch längere Zeiten erlauben. Eltern setzen im vertrauten Kalender nur Ausnahmen: zusätzliche Zeit mit BONUS Kind1 oder eine Sperre mit SPERRE Kind1.

SPERREimmer zuerst
BONUSzeitlich begrenzt
Ferienautomatische Ausnahme
Grundplannormaler Wochenplan
Der Kalender ist keine Benutzerverwaltung

Er enthält nur Profilnamen und Zeitfenster. Konten, Kennwörter und Gerätezuordnungen bleiben in den dafür vorgesehenen Systemen.

02 · Identität

Wer meldet sich an?

Die Zeitregel muss einer stabilen Identität folgen. Nur dann wirkt sie auch dann korrekt, wenn ein Smartphone seine IP-Adresse wechselt oder zwischen Access Points roamt.

Benutzerbasiert

Enterprise-WLAN

Das Kind verwendet ein eigenes Konto. Der Access Point reicht die Anmeldung per PEAP/MSCHAPv2 an FreeRADIUS weiter. FreeRADIUS prüft Kennwort und Zeitregel.

Gerätebasiert

Feste Geräte

PC, Konsole oder Tablet werden zusätzlich einem Routerprofil zugeordnet. Das deckt Geräte ab, die sich nicht selbst per RADIUS anmelden.

Beide Wege dürfen dasselbe logische Profil verwenden. Eine Sperre muss dann sowohl einen RADIUS-Login ablehnen als auch das Routerprofil schließen.

03 · Bedienung

Zwei eindeutige Termintitel

TitelWirkung während des Termins
BONUS Kind1Zugang vollständig freigeben
SPERRE Kind1Zugang vollständig sperren

Der Parser sollte nur exakt passende Titel akzeptieren, beispielsweise mit dem regulären Ausdruck ^(BONUS|SPERRE)\s+(.+?)\s*$. Notizen gehören in die Terminbeschreibung. Zeitgesteuerte, ganztägige und wiederkehrende Termine lassen sich damit einheitlich behandeln.

SUMMARY:SPERRE Kind1
DTSTART;TZID=Europe/Berlin:20260811T220000
DTEND;TZID=Europe/Berlin:20260812T070000

04 · Profile

Eine Quelle für alle Namen

Das Profil verbindet Kalendername, RADIUS-Benutzer, Routerprofil und Grundplan. Die folgende neutrale JSON-Datei ist ein Schema-Beispiel und muss an den eigenen Auswertedienst angepasst werden.

{
  "timezone": "Europe/Berlin",
  "profiles": [{
    "calendar_name": "Kind1",
    "radius_user": "kind1",
    "router_profile": "Kind1",
    "school_schedule": {
      "mon": "06:00-20:00",
      "fri": "06:00-22:00"
    }
  }],
  "priority": ["block", "bonus", "holiday", "base_schedule"]
}

Groß- und Kleinschreibung kann der Parser beim Kalendernamen tolerant behandeln. Für RADIUS und Router sollten die technisch hinterlegten Namen dagegen exakt und eindeutig bleiben.

05 · WLAN

FreeRADIUS setzt die Loginzeit durch

Der Policy-Dienst erzeugt aus dem effektiven Modus eine kleine Include-Datei. Im Grundplan wird Login-Time gesetzt. BONUS und Ferien erhalten einen ganztägigen Wert. Eine aktive Sperre muss als vollständiger Reject erscheinen.

# Grundplan
kind1  Login-Time := "Mo0600-2000,Tu0600-2000,We0600-2000,Th0600-2000,Fr0600-2200,Sa0600-2200,Su0600-2000"

# Aktive Sperre
kind1  Auth-Type := Reject

Die Datei sollte zunächst temporär geschrieben, mit freeradius -XC geprüft und danach atomar ersetzt werden. Erst eine gültige Änderung rechtfertigt einen Reload.

RADIUS-Zertifikat prüfen

Endgeräte müssen der ausstellenden CA vertrauen und den erwarteten Servernamen kontrollieren. Ohne diese Prüfung schützt PEAP nicht zuverlässig vor einem fremden Anmeldepunkt.

06 · Geräte

MikroTik ergänzt die Geräteebene

Das Routerprofil verwendet denselben Wochenplan. Feste Geräte werden dem Profil zugeordnet. Beispielwerte müssen vor dem Import angepasst werden:

/ip kid-control add name=Kind1 \
  mon=6h-20h tue=6h-20h wed=6h-20h thu=6h-20h \
  fri=6h-22h sat=6h-22h sun=6h-20h

/ip kid-control device add name=Kind1-Tablet \
  mac-address=02:00:00:00:00:01 user=Kind1

Bei BONUS oder Ferien setzt der Dienst alle Wochentage auf 0s-1d. Bei SPERRE werden die Zeitfenster geleert. Vor jeder Änderung sollte geprüft werden, dass genau ein Routerprofil mit diesem Namen existiert.

Private MAC-Adressen beachten

iOS und Android können pro WLAN eine zufällige MAC verwenden und sie nach dem erneuten Anlegen des Profils ändern. Die Benutzeranmeldung bleibt stabil; eine zusätzliche feste Gerätezuordnung muss dann aktualisiert werden.

07 · Linux

Minütlich und ohne Dauerprozess

Ein systemd-Timer reicht für diese Aufgabe aus. Der Auswertedienst lädt Kalender und Ferien, berechnet alle Profile gemeinsam und veröffentlicht danach Router- und RADIUS-Regeln.

[Unit]
Description=Familien-Netzzeit aktualisieren

[Timer]
OnBootSec=2min
OnUnitActiveSec=1min
RandomizedDelaySec=5s
Unit=family-access.service

[Install]
WantedBy=timers.target

Die private iCal-Adresse gehört in eine eigene root-lesbare Datei und niemals in das Skript oder ein öffentliches Repository:

sudo install -d -o root -g root -m 700 /etc/family-access
sudoedit /etc/family-access/private-calendar-url
sudo chmod 600 /etc/family-access/private-calendar-url

08 · Failsafe

Fehler dürfen nicht großzügiger machen

  • Bei einem Downloadfehler bleibt die letzte gültige Konfiguration aktiv.
  • Ein BONUS aus einem mehr als 15 Minuten alten Cache wird unterdrückt.
  • Eine bereits bekannte SPERRE bleibt auch bei einem alten Cache wirksam.
  • Ungültige Kalenderdaten oder Profile ändern weder Router noch RADIUS.
  • Der Routerzugang nutzt ein eigenes, minimal berechtigtes Automationskonto.
  • Private Kalender-URL, SSH-Key und RADIUS-Secret werden getrennt geschützt.

Kalenderzugriff sollte nur lesend erfolgen. Wer den Kalender bearbeitet, kann Netzzeit steuern, erhält dadurch aber keinen Router- oder Serverzugang.

09 · Abnahme

Die ganze Kette testen

  1. Grundplan außerhalb und innerhalb des erlaubten Fensters prüfen.
  2. BONUS an Beginn, Ende und über Mitternacht testen.
  3. SPERRE gleichzeitig mit BONUS testen; SPERRE muss gewinnen.
  4. RADIUS-Login und fest zugeordnetes Routergerät getrennt prüfen.
  5. Kalenderdownload blockieren und das Verhalten mit altem Cache prüfen.
  6. Ungültige RADIUS-Datei simulieren; die letzte gültige Policy muss bleiben.
  7. Timer, Logs und Rückkehr zum Grundplan nach Terminende kontrollieren.

Erst wenn diese Übergänge reproduzierbar funktionieren, ist die Lösung für den Familienalltag geeignet. Ein grüner Dienststatus allein beweist noch keine wirksame Sperre.