1.) Zweites Leben für ausgemusterte Bürocomputer

Durch das Ende des Supports für Windows 10 und die Hardwareanforderungen von Windows 11 werden derzeit viele voll funktionsfähige Bürocomputer ausgemustert. Diese Geräte eignen sich jedoch ideal als Grundlage für kindersichere Lerncomputer, wenn sie mit einem schlanken Linux System betrieben werden.

Als repräsentatives Beispiel für diese Hardwaregeneration dient in diesem Artikel ein Dell OptiPlex 790 aus dem Jahr 2011. Die vorgestellte Softwarekonfiguration ist jedoch nicht auf dieses spezifische Modell beschränkt. Sie funktioniert auf allen x86 Computern mit ähnlichem oder neuerem Hardwarestandard.

2.) Das Betriebssystem

Der PC läuft auf Debian Stable (trixie), einer etablierten Linux-Distribution. Debian verwendet freie und offene Software (FOSS), was den Fokus auf Datenschutz und Nutzerkontrolle legt.
Die stabile Architektur sorgt dafür, dass Updates sorgfältig geprüft werden und das System langfristig zuverlässig bleibt.

Als Desktopumgebung kommt XFCE zum Einsatz. Sie ist leichtgewichtig, ressourcenschonend und gleichzeitig funktional.
XFCE ist auch für ältere Hardware geeignet und wurde so eingerichtet, dass die Oberfläche einfach und übersichtlich bedienbar ist.

Durch die schlanke Konfiguration läuft Debian mit XFCE selbst auf älteren Rechnern stabil, was den PC für den langfristigen Einsatz als Kinderarbeitsplatz praktikabel macht.

3) Benutzerkonten & Grundsätze

Zielgruppe dieses Rechners

Dieser Rechner ist ausschließlich für Kinder gedacht. Die technischen Sperren und Einschränkungen sind bewusst so konfiguriert, dass Kinder in einer geschützten, aber nicht überbehüteten Umgebung lernen können.

Benutzerkonten-Struktur

  • Admin-Konto (für Erwachsene):
    Ein einziges Konto (z. B. admin) mit Mitgliedschaft in der sudo- und docker-Gruppe.
    Dieses Konto wird nur für Systemadministration, Software-Installation und zum Anpassen der Sperren verwendet.

  • Kinder-Konten (für jedes Kind einzeln):
    Jedes Kind erhält sein eigenes Benutzerkonto.
    Diese Konten sind nicht in der sudo- bzw. docker-Gruppe, damit können Kinder keine Systemeinstellungen ändern oder die Schutzmechanismen deaktivieren.
    Warum eigene Konten? Jedes Kind hat unterschiedliche Bedürfnisse, Reifegrade und Altersstufen. Mit eigenen Konten können die Einschränkungen (Zeitkontingente, gesperrte Plattformen) individuell angepasst werden.

BIOS / UEFI und GRUB sperren

  • BIOS/UEFI-Passwort:
    Das BIOS/UEFI wird mit einem Passwort geschützt. Dadurch kann das Kind nicht:

    • Von einem USB-Stick oder einer Live-CD booten
    • Virtualisierungsoptionen ändern
    • Die Boot-Reihenfolge manipulieren
  • GRUB-Passwort:
    Auch der Bootloader GRUB wird passwortgeschützt. Das verhindert:

    • Booten im Single-User-Mode (Root-Rechte ohne Passwort)
    • Bearbeiten der Boot-Parameter (z. B. init=/bin/bash zur Umgehung der Kindersicherung)

Keine Ausspähung durch Logging

Es gibt kein Logging der Nutzeraktivitäten.
Der Rechner speichert nicht, welche Webseiten besucht, welche Programme gestartet oder welche Tasten gedrückt wurden.

Warum?

  • Kinder sollen sich nicht beobachtet fühlen.
  • Vertrauen ist wichtiger als Kontrolle.
  • Das Umgehen von Sperren ist ein wichtiger Lernprozess, kein Vergehen.

Technische Sperren sind eine Einladung zum Lernen, kein Gefängnis.

Die Sperren altersgerecht lockern

Die im Artikel beschriebenen Sperren (DNS-Filterung, Blocklisten, Zeitkontingente) sind nicht statisch. Sie sind abhängig vom Alter und der Medienkompetenz des Kindes und sollten mit der Zeit schrittweise gelockert werden.

Ziel ist nicht die ewige Abschottung, sondern die begleitete Vorbereitung auf die reale (ungefilterte) digitale Welt.

Kinder werden Sperren umgehen und das ist gut so

Kinder sind neugierig, kreativ und erfinderisch. Sie werden versuchen, die Sperren zu umgehen und das ist kein Problem, sondern ein wertvoller Lernprozess.

  • Wer einen Weg um die Firewall findet, lernt etwas über Netzwerktechnik.
  • Wer eine Blockliste austrickst, versteht plötzlich, wie DNS funktioniert.
  • Wer das Zeitlimit umgeht, denkt über Systemadministration nach.

Die Sperren sind keine unüberwindbaren Mauern, sondern Lernaufgaben.

Wenn ein Kind eine Sperre umgeht, sollte das nicht bestraft, sondern besprochen werden:

  • “Wie hast du das gemacht?”
  • “Was hast du dabei gelernt?”
  • “Wie können wir das System gemeinsam sicherer machen?”

Ein Kind, das aktiv wird, um eine Sperre zu umgehen, ist kein Regelbrecher, es ist ein angehender Systemadministrator.

Zusammenfassung

  • Admin-Konto für Erwachsene (sudo-Gruppe)
  • Eigene Kinder-Konten (keine sudo-Rechte)
  • BIOS + GRUB passwortgeschützt
  • Kein Logging, keine Ausspähung
  • Sperren altersgerecht lockern und schrittweise entwöhnen
  • Umgehungsversuche willkommen, denn sie sind der beste Unterricht

Technik setzt den Rahmen und Pädagogik füllt ihn mit Leben.


4.) Wartung & Troubleshooting

Mit KI-Unterstützung Probleme lösen

Diese Dokumentation ist so geschrieben, dass sie von KI-Assistenten (ChatGPT, Claude, DeepSeek etc.) vollständig verstanden werden kann. Die KI kennt:

  • Welche Software verbaut ist (Debian, nftables, dnsmasq, Timekpr-next)
  • Wo die Konfigurationsdateien liegen (/etc/nftables.conf, /etc/dnsmasq.d/, etc.)
  • Welche Schutzmechanismen auf welchen Ebenen wirken

Wenn etwas nicht funktioniert:

  1. Kopiere diesen Satz in deine KI:

    “Ich nutze das Kinder-PC Setup aus [Link zu dieser Doku]. Das Problem ist: [deine kurze Beschreibung].”

  2. Die KI kennt die gesamte Architektur und gibt dir konkrete, auf dieses Setup zugeschnittene Befehle, keine allgemeinen Ratschläge.

Wie viel Wartung nötig ist

  • Normalbetrieb: Keine. Das System läuft stabil.
  • Bei Umgehungsversuchen: Mit dem Kind besprechen, Blockliste gemeinsam anpassen (mit KI-Hilfe).
  • Blocklisten aktualisieren: Wenn etwas durchkommt, das eigentlich blockiert sein sollte, dann ist der richtige Zeitpunkt. Einfach der KI sagen: “Aktualisiere die Blockliste” oder “Füge diese Domain zur Sperrliste hinzu”.
  • Timekpr-Zeiten ändern: sudo timekpr-next-cli --gui (grafisch) oder die KI fragen, wie es geht.

Keine Angst vor Linux: Wer eine KI fragen kann, kommt damit klar.


5.) Systemoptimierung für ältere Festplatten

Hinweis zur Vorgeschichte: Ursprünglich war eine SSD (Samsung EVO 860) verbaut, die jedoch kaputt ging. Aus Upcycling-Gedanken wurde stattdessen eine klassische 5400-RPM-Notebook-Festplatte eingebaut, da ich diese gerade zur Hand hatte.

Da das System nun auf einer mechanischen Festplatte betrieben wird, wurden zusätzliche Leistungsoptimierungen vorgenommen, um typische Engpässe mechanischer Datenträger spürbar zu reduzieren.

Umgesetzte Maßnahmen

  • zram aktiviert
    Ein komprimierter RAM-basierter Auslagerungsspeicher reduziert Zugriffe auf die Festplatte und verbessert die Reaktionsgeschwindigkeit bei begrenztem Arbeitsspeicher.

  • Angepasste Swappiness-Werte
    Die Speicherverwaltung wurde so abgestimmt, dass Auslagerungen auf den Datenträger möglichst spät erfolgen.

  • Dateisystem-Optimierungen
    Durch Optionen wie noatime und commit=60 werden unnötige Schreibzugriffe verringert und Schreibvorgänge effizienter gebündelt.

Wirkung

Diese Anpassungen sorgen insbesondere auf älterer HDD-Hardware für:

  • kürzere Reaktionszeiten im Alltag
  • weniger unnötige Festplattenaktivität
  • flüssigeres Arbeiten im Browser und bei Lernsoftware
  • geringere mechanische Belastung des Datenträgers
  • insgesamt ruhigeren und effizienteren Systembetrieb

6.) Altersgerechte Nutzung

Das System ist so eingerichtet, dass Kinder sich sicher und altersgerecht im digitalen Raum bewegen können. Dafür kommen mehrere, sich ergänzende Schutzmechanismen auf Systemebene zum Einsatz.

  • DNS-basierte Filterung: Über OpenDNS FamilyShield bzw Cloudflare for Families werden ungeeignete Inhalte wie pornografische oder gewaltverherrlichende Webseiten automatisch blockiert.
  • Lokale DNS-Blocklisten: Über den eigenen dnsmasq-Resolver werden gezielt Plattformen wie soziale Netzwerke, YouTube, TikTok und Roblox blockiert, um Ablenkung zu reduzieren.
  • Firewall-Erzwingung: nftables erlaubt DNS-Anfragen ausschließlich zu den definierten Familienschutz-Resolvern und Umgehungsversuche werden blockiert.
┌─────────────────────────────────────────────────────────────────────────────────┐
│                         KINDERSICHERES LERNSYSTEM (Debian + XFCE)               │
└─────────────────────────────────────────────────────────────────────────────────┘
                                        │
                                        ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 1. NETZWERKEBENE (nftables)                                                     │
│    - Erlaubte DNS-Server:                                                       │
│      - OpenDNS FamilyShield (208.67.222.123 / 208.67.220.123)                   │
│      - Cloudflare Family (1.1.1.3 / 1.0.0.3)  ← Fallback                        │
│    - Alternative DNS/DoH/DoT blockiert                                          │
│    - WAN nur Standardports (80,443 etc.), LAN voll frei                         │
│    → Ermöglicht lokale Multiplayer-Spiele (Minecraft LAN)                       │
└─────────────────────────────────────────────────────────────────────────────────┘
                                        │
                                        ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 2. DNS-EBENE (dnsmasq)                                                          │
│    - Lokaler DNS-Forwarder mit Filterlisten                                     │
│    - Blockiert soziale Netzwerke, YouTube, TikTok, Roblox                       │
│    - Ersetzt klassische hosts-Datei                                             │
│    - Leitet Anfragen an erlaubte Upstream-Resolver weiter (OpenDNS + Cloudflare)│
│    - Redundanz: fällt OpenDNS aus, übernimmt Cloudflare Family                  │
└─────────────────────────────────────────────────────────────────────────────────┘
                                        │
                                        ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 3. BROWSER-EBENE (Firefox gehärtet)                                             │
│    - DNS-over-HTTPS deaktiviert & gesperrt                                      │
│    - uBlock Origin + LibRedirect                                                │
│    - Erweiterungen & Einstellungen gesperrt                                     │
│    - Autoredirect: YouTube → lokale Invidious-Instanz                           │
└─────────────────────────────────────────────────────────────────────────────────┘
                                        │
                                        ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 4. ZEITKONTROLLE (Timekpr-next)                                                 │
│    - Zeitfenster: Mo-Fr 14-19 Uhr, Sa/So 9-20 Uhr                               │
│    - Kontingent: 90 min (Wochentag) / 150 min (Wochenende)                      │
└─────────────────────────────────────────────────────────────────────────────────┘

6.1) NETZWERKEBENE (nftables)

Feste Einbindung in /etc/resolv.conf

Der lokale DNS-Resolver ist direkt in /etc/resolv.conf eingetragen:

1
sudo nano /etc/resolv.conf

Inhalt:

1
nameserver 127.0.0.1

Um unbeabsichtigte oder automatische Änderungen zu verhindern, ist die Datei mit dem immutable-Attribut versehen:

1
sudo chattr +i /etc/resolv.conf

Bei Bedarf kann der Schreibschutz gezielt wieder entfernt werden:

1
sudo chattr -i /etc/resolv.conf

Verhindern automatischer DNS-Änderungen

Da der NetworkManager DNS-Einstellungen überschreiben kann, ist dessen DNS-Verwaltung deaktiviert:

1
sudo nano /etc/NetworkManager/NetworkManager.conf

Inhalt:

1
2
[main]
dns=none
1
sudo systemctl restart NetworkManager

Damit bleibt die DNS-Konfiguration dauerhaft stabil und unter voller Kontrolle.


Netzwerkseitige Erzwingung per nftables

Die DNS-Nutzung per Firewall abgesichert. Dadurch können Anwendungen nicht eigenständig auf alternative Resolver ausweichen.

Zielsetzung
  • Im lokalen Netzwerk (LAN) ist sämtlicher Verkehr erlaubt
  • Im Internet (WAN) sind nur definierte Standarddienste freigegeben
  • DNS ist ausschließlich zu OpenDNS FamilyShield bzw Cloudflare Family erlaubt
  • Andere DNS-Resolver werden blockiert
  • DNS-over-TLS (Port 853) wird unterbunden
  • Bekannte DNS-over-HTTPS-Ziele werden per IP blockiert
Beispielkonfiguration /etc/nftables.conf
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
flush ruleset

define LAN = 10.0.0.0/24

define TCP_STANDARD = {
    20, 21, 22,
    25, 80, 110, 143,
    443, 465, 587,
    993, 995
}

define UDP_STANDARD = {
    123
}

table inet filter {

    # =====================================================
    # INPUT
    # =====================================================
    chain input {
        type filter hook input priority filter; policy drop;

        # Loopback
        iif "lo" accept

        # Bereits bestehende Verbindungen
        ct state established,related accept

        # Docker / Invidious Webinterface
        tcp dport 3000 accept

        # Heimnetz komplett erlaubt
        ip saddr $LAN accept

        # Ping / ICMP
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept
    }

    # =====================================================
    # FORWARD (Docker benötigt das)
    # =====================================================
    chain forward {
        type filter hook forward priority filter; policy accept;
    }

    # =====================================================
    # OUTPUT
    # Nur definierte Verbindungen ins WAN
    # =====================================================
    chain output {
        type filter hook output priority filter; policy drop;

        # Loopback
        oif "lo" accept

        # Bereits bestehende Verbindungen
        ct state established,related accept

        # Heimnetz komplett erlaubt
        ip daddr $LAN accept
        ip daddr 172.16.0.0/12 accept
        ip daddr 10.0.0.0/8 accept
      	ip daddr 192.168.0.0/16 accept
        
        # -----------------------------------------------
        # Öffentliche DNS / DoH Ziele blockieren
        # -----------------------------------------------
        ip daddr {
            1.0.0.1, 1.1.1.1,
            8.8.4.4, 8.8.8.8,
            9.9.9.9, 9.9.9.10, 9.9.9.11, 9.9.9.12,
            149.112.112.112, 149.112.112.10,
            149.112.112.11, 149.112.112.12,
            208.67.222.222, 208.67.220.220,
            146.112.41.2, 146.112.41.4,
            162.159.36.1, 162.159.46.1
        } drop

        # -----------------------------------------------
        # Nur erlaubte DNS Server
        # OpenDNS FamilyShield
        # Cloudflare Family
        # -----------------------------------------------
        ip daddr { 208.67.220.123, 208.67.222.123 } udp dport 53 accept
        ip daddr { 208.67.220.123, 208.67.222.123 } tcp dport 53 accept

        ip daddr { 1.0.0.3, 1.1.1.3 } udp dport 53 accept
        ip daddr { 1.0.0.3, 1.1.1.3 } tcp dport 53 accept

        # -----------------------------------------------
        # Standard WAN Ports
        # -----------------------------------------------
        tcp dport $TCP_STANDARD accept
        udp dport $UDP_STANDARD accept

        # Ping / ICMP
        ip protocol icmp accept
        ip6 nexthdr ipv6-icmp accept
    }
}

Aktivierung

1
2
sudo systemctl enable nftables
sudo systemctl restart nftables

Wirkung

Selbst wenn Programme eigene DNS-Server verwenden möchten, werden DNS-Anfragen an nicht freigegebene Resolver blockiert. Damit bleibt die Filterung technisch erzwungen und nicht nur lokal konfiguriert.

WAN-Einschränkung für lokale Multiplayer-Spiele

Ein zusätzlicher Zweck der WAN-Beschränkung besteht darin, lokale Mehrspieler-Spiele im Heimnetz gezielt zu ermöglichen, ohne externe Spielserver freizugeben.

Dadurch können Kinder im lokalen Netzwerk problemlos gemeinsam spielen, beispielsweise bei Minecraft oder ähnlichen LAN-fähigen Spielen, während Verbindungen zu öffentlichen oder unbekannten Internetservern unterbunden werden.

Praktischer Nutzen

  • Gemeinsames Spielen im eigenen Heimnetz bleibt möglich
  • Lokale Minecraft-Hosts im LAN sind erreichbar
  • Keine Verbindung zu fremden Multiplayer-Servern im Internet
  • Reduziertes Risiko durch Chat, fremde Kontakte oder ungeeignete Inhalte auf externen Servern
  • Mehr Kontrolle über die genutzte Spielumgebung

6.2) DNS-EBENE (dnsmasq)

dnsmasq Basiskonfiguration

Damit dnsmasq nur lokal Anfragen entgegennimmt, wird die folgende Konfigurationsdatei angelegt:

1
sudo nano /etc/dnsmasq.d/00-base.conf

Inhalt:

1
2
listen-address=127.0.0.1
bind-interfaces

Upstream-DNS-Server mit Familienfilter

Weiterleitung an DNS-Server mit integriertem Filter (OpenDNS FamilyShield und Cloudflare Gateway):

1
sudo nano /etc/dnsmasq.d/10-upstream.conf

Inhalt:

1
2
3
4
5
no-resolv
server=208.67.222.123
server=208.67.220.123
server=1.1.1.3
server=1.0.0.3

no-resolv stellt sicher, dass ausschließlich die hier definierten Server verwendet werden.

Blocklisten herunterladen und konvertieren

Die folgenden Befehle laden externe Hostlisten herunter und wandeln sie in das von dnsmasq erwartete Format für NXDOMAIN-Antworten um (address=/domain/).

Blockliste für soziale Netzwerke (basierend auf StevenBlack):

1
2
3
4
sudo curl -s https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/social-only/hosts \
| grep "^0.0.0.0" \
| awk '{print "address=/" $2 "/"}' \
| sudo tee /etc/dnsmasq.d/social.conf > /dev/null

Blockliste für YouTube:

1
2
3
4
sudo curl -s https://raw.githubusercontent.com/Roritharr/youtube-blocklist/refs/heads/main/hosts \
| grep "^0.0.0.0" \
| awk '{print "address=/" $2 "/"}' \
| sudo tee /etc/dnsmasq.d/youtube.conf > /dev/null

Blocklisten: Wie aktuell müssen sie sein?

Die Domains von YouTube, Facebook, TikTok etc. ändern sich praktisch nie. Eine einmal erstellte Liste reicht meist aus.

Optional: Wer die Listen trotzdem regelmäßig aktualisieren möchte, kann ein Script mit Systemd-Timer einrichten, das sie bei jedem Neustart neu lädt.

Blockliste für Roblox, Super RTL, TOGGO:

1
sudo nano /etc/dnsmasq.d/kinder.conf

Inhalt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
############################################
# Roblox 
############################################

address=/.roblox.com/
address=/.rbxcdn.com/

address=/roblox.com/
address=/rbxcdn.com/

address=/api.roblox.com/
address=/auth.roblox.com/
address=/accountsettings.roblox.com/
address=/economy.roblox.com/
address=/friends.roblox.com/
address=/chat.roblox.com/
address=/presence.roblox.com/
address=/games.roblox.com/
address=/assetgame.roblox.com/

address=/setup.rbxcdn.com/
address=/t0.rbxcdn.com/
address=/t1.rbxcdn.com/
address=/t2.rbxcdn.com/
address=/t3.rbxcdn.com/
address=/tr.rbxcdn.com/


############################################
# RTL 
############################################

address=/.rtl.de/
address=/.rtlplus.de/
address=/.ntv.de/
address=/.rtlinteractive.de/

address=/rtl.de/
address=/www.rtl.de/
address=/rtlplus.de/
address=/www.rtlplus.de/
address=/ntv.de/
address=/www.n-tv.de/


############################################
# SUPER RTL / TOGGO 
############################################

address=/.superrtl.de/
address=/.toggo.de/
address=/.toggo-mobile.de/
address=/.toggoeltern.de/
address=/.toggo-games.de/
address=/.rtl-super.de/
address=/superrtl.de/

address=/toggo.de/
address=/toggo-mobile.de/
address=/toggoeltern.de/
address=/toggo-games.de/
address=/rtl-super.de/

5. dnsmasq neu starten und aktivieren

1
2
sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

Damit ist die Einrichtung abgeschlossen. Der lokale DNS-Resolver verwendet die definierten Filterlisten und leitet alle anderen Anfragen an die angegebenen Familienschutz-DNS-Server weiter.

Wirkung

Die Sperren greifen systemweit und browserunabhängig. Dadurch lassen sich die betroffenen Plattformen nicht einfach durch einen anderen Browser oder ein anderes Benutzerprofil umgehen.

Vorteil dieses Ansatzes

  • Sehr ressourcenschonend
  • Keine Zusatzsoftware erforderlich
  • Browserunabhängig
  • Schnell anpassbar und transparent
  • Ideal als zusätzliche Schutzschicht neben DNS-Filterung und Firewall-Regeln

Alternative Inhalte bewusst zugänglich

Bestimmte alternative Plattformen bleiben gezielt erreichbar, z. B.:

  • Invidious: YouTube-Frontend ohne Werbung und Algorithmus
  • Fediverse: dezentrale soziale Netzwerke

Ziel: Medienkompetenz fördern, nicht bloß Inhalte bereitstellen.


6.3) BROWSER-EBENE (Firefox gehärtet)

Der vorinstallierte Firefox wurde gezielt gehärtet, um einen sicheren und kontrollierten Einsatz für Kinder zu ermöglichen. Die eigentliche Inhaltsfilterung erfolgt primär auf Netzwerkebene über OpenDNS FamilyShield sowie ergänzende DNS- (dnsmasq) und Firewall-Sperren (nftables). Browser-interne SafeSearch-Parameter dienen lediglich als zusätzliche Schutzschicht.

  • Zentrale Konfiguration (policies.json)

    • Privater Modus deaktiviert
    • about:config, Add-ons, Entwicklertools und Safe Mode gesperrt
    • DNS-over-HTTPS deaktiviert und gesperrt
    • Proxy-Einstellungen gesperrt
    • Telemetrie, Studies, Pocket und Firefox-Konto deaktiviert
  • Datenschutz und Sicherheit

    • HTTPS-Only-Modus aktiviert
    • Erweiterter Tracking-Schutz erzwungen
    • Schutz vor Fingerprinting, Cryptomining und E-Mail-Tracking aktiviert
    • Suchvorschläge deaktiviert
  • Berechtigungen standardmäßig blockiert

    • Kamera
    • Mikrofon
    • Standort
    • Benachrichtigungen
    • Lautsprecherauswahl
    • Autoplay
    • Virtual Reality / WebXR
    • Pop-ups blockiert
  • Suchmaschinen

    • DuckDuckGo Safe als Standard
    • Google Safe zusätzlich verfügbar

Alle relevanten Einstellungen sind zentral gesperrt und können nicht über die Benutzeroberfläche verändert werden.

Die policies.json liegt in /usr/lib/firefox-esr/distribution/

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
{
  "policies": {
    "BlockAboutAddons": true,
    "BlockAboutConfig": true,
    "DisableTelemetry": true,
    "DisableFirefoxStudies": true,
    "DisablePocket": true,
    "DisableFirefoxAccounts": true,
    "DisableDeveloperTools": true,
    "DisablePrivateBrowsing": true,
    "DisableForgetButton": true,
    "DisableProfileRefresh": true,
    "DisableSafeMode": true,
    "DisableFeedbackCommands": true,

    "PictureInPicture": {
      "Enabled": false,
      "Locked": true
    },

    "DNSOverHTTPS": {
      "Enabled": false,
      "Locked": true
    },

    "Proxy": {
      "Mode": "none",
      "Locked": true
    },

    "PromptForDownloadLocation": false,

    "EnableTrackingProtection": {
      "Value": true,
      "Locked": true,
      "Cryptomining": true,
      "Fingerprinting": true,
      "EmailTracking": true
    },

    "HttpsOnlyMode": "force_enabled",

    "Cookies": {
      "Behavior": "reject-tracker"
    },

    "SearchSuggestEnabled": false,
    "SearchBar": "separate",

    "SearchEngines": {
      "Default": "DuckDuckGo Safe",
      "Add": [
        {
          "Name": "DuckDuckGo Safe",
          "URLTemplate": "https://duckduckgo.com/?q={searchTerms}&kp=1",
          "Method": "GET",
          "IconURL": "https://duckduckgo.com/favicon.ico"
        },
        {
          "Name": "Google Safe",
          "URLTemplate": "https://www.google.com/search?q={searchTerms}&safe=active",
          "Method": "GET",
          "IconURL": "https://www.google.com/favicon.ico"
        }
      ],
      "Remove": [
        "Amazon.com",
        "Bing",
        "eBay",
        "Wikipedia"
      ]
    },

    "FirefoxHome": {
      "Search": true,
      "TopSites": false,
      "Highlights": false,
      "Pocket": false,
      "Snippets": false,
      "Locked": true
    },

    "Permissions": {
      "Camera": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Microphone": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Location": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "SpeakerSelection": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Notifications": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Autoplay": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "VirtualReality": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Popup": "blocked"
    },

    "ExtensionSettings": {
      "*": {
        "installation_mode": "allowed"
      },
      "firefox-translations@mozilla.org": {
        "installation_mode": "blocked"
      }
    },

    "Preferences": {
      "browser.translations.enable": {
        "Value": false,
        "Status": "locked"
      },
      "browser.translations.automaticallyPopup": {
        "Value": false,
        "Status": "locked"
      },
      "browser.translations.detectLanguage": {
        "Value": false,
        "Status": "locked"
      },
      "browser.ml.enable": {
        "Value": false,
        "Status": "locked"
      },

      "network.dns.disablePrefetch": {
        "Value": true,
        "Status": "locked"
      },
      "network.predictor.enabled": {
        "Value": false,
        "Status": "locked"
      },

      "places.history.enabled": {
        "Value": true,
        "Status": "locked"
      },

      "privacy.clearOnShutdown.history": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.cookies": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.cache": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.offlineApps": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.formdata": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.passwords": {
        "Value": false,
        "Status": "locked"
      },
      "privacy.clearOnShutdown.siteSettings": {
        "Value": false,
        "Status": "locked"
      },

      "permissions.default.camera": {
        "Value": 2,
        "Status": "locked"
      },
      "permissions.default.microphone": {
        "Value": 2,
        "Status": "locked"
      },
      "permissions.default.geo": {
        "Value": 2,
        "Status": "locked"
      },

      "media.autoplay.default": {
        "Value": 5,
        "Status": "locked"
      },
      "media.autoplay.blocking_policy": {
        "Value": 2,
        "Status": "locked"
      },
      "media.autoplay.enabled": {
        "Value": false,
        "Status": "locked"
      },

      "dom.vr.enabled": {
        "Value": false,
        "Status": "locked"
      },
      "dom.vr.require-gesture": {
        "Value": true,
        "Status": "locked"
      },
      "dom.vr.webxr.enabled": {
        "Value": false,
        "Status": "locked"
      },

      "browser.search.update": {
        "Value": false,
        "Status": "locked"
      },

      "dom.security.https_only_mode": {
        "Value": true,
        "Status": "locked"
      },
      "dom.security.https_first": {
        "Value": false,
        "Status": "locked"
      },
      "dom.security.https_first_pbm": {
        "Value": false,
        "Status": "locked"
      }
    }
  }
}

Technischer Hinweis: Die Parameter kp=1 (DuckDuckGo) und safe=active (Google) setzen SafeSearch, sind jedoch clientseitig und nicht absolut zuverlässig. Die eigentliche Inhaltsfilterung erfolgt über die DNS-Sperren.

Installierte Erweiterungen

Es sind ausschließlich zwei gezielt ausgewählte Erweiterungen vorinstalliert und zentral verwaltet:

  • uBlock Origin
    Leistungsfähiger Inhaltsblocker zum Entfernen von Werbung, Tracking-Skripten, Pop-ups und bekannten schädlichen Drittinhalten. Dies verbessert sowohl Datenschutz als auch Übersichtlichkeit beim Surfen.

  • LibRedirect
    Leitet ausgewählte Dienste automatisch auf datenschutzfreundlichere Alternativen um. In der aktuellen Konfiguration gilt dies unter anderem für:

    • YouTube → Invidious (http://127.0.0.1:3000 oder öffentliche Instanz)
    • ChatGPThttps://duck.ai (bei Bedarf)

Die Erweiterungen sind fest vorgegeben und können nicht eigenständig verändert oder entfernt werden.

Warum duck.ai?

  • Kein Account erforderlich
  • Keine Datensammlung / tracking-frei
  • Mehrere Modelle zur Auswahl: GPT-4o mini, GPT-oss 120B, Llama 4 Scout, Claude Haiku 4.5, Mistral Small 4

Einschränkung: Die Modelle sind nicht so leistungsstark wie die kostenpflichtigen Vollversionen (z. B. normales GPT-4 oder Claude 3 Opus).

Für den Schulgebrauch reicht es:

  • Hausaufgaben verstehen
  • Textzusammenfassungen
  • Erste Programmierhilfen
  • Recherche-Unterstützung

Pädagogischer Mehrwert: Kinder lernen, dass es nicht das eine KI-Modell gibt, sondern verschiedene Ansätze mit unterschiedlichen Stärken und dass datenschutzfreundliche Alternativen zu ChatGPT und co existieren.


6.4) ZEITKONTROLLE (Timekpr-next)

Zeitliche Nutzungssteuerung mit Timekpr-next

Zur Steuerung der Bildschirmzeit kommt Timekpr-next zum Einsatz. Dabei handelt es sich um ein Jugendschutz- und Zeitkontrollsystem, das Benutzerkonten pro Kind individuell einschränkt.

Grundprinzip

Timekpr-next überwacht und begrenzt die tägliche Nutzungsdauer sowie die erlaubten Zeitfenster für die Anmeldung am System. Nach Ablauf der erlaubten Zeit wird die Sitzung automatisch beendet bzw. ein Login verhindert.

Konfiguration pro Kind

Jedes Kinderkonto kann mit festen Zeitbudgets und Zeitfenstern konfiguriert werden:

  • Z.B. Tägliches Kontingent

    • 90 Minuten Bildschirmzeit an Wochentagen
    • 150 Minuten Bildschirmzeit am Wochenende
  • Z.B. Erlaubte Nutzungszeiten

    • Montag bis Freitag: 14:00 - 19:00 Uhr
    • Samstag und Sonntag: 09:00 - 20:00 Uhr

Außerhalb dieser Zeitfenster ist keine Anmeldung möglich, selbst wenn noch Restzeit verfügbar wäre.

Zielsetzung

  • Verhinderung exzessiver Nutzung außerhalb definierter Zeiten
  • Förderung eines strukturierten Tagesablaufs
  • Unterstützung gesunder digitaler Gewohnheiten
  • Bewusste Trennung von Bildschirmzeit und Freizeitaktivitäten

6.5) Die andere Hälfte: Medienkompetenz durch Begleitung

Technische Schutzmechanismen sind kein Ersatz für Eltern oder pädagogische Begleitung. Sie sind Hilfsmittel, keine Lösungen.

Die beste Firewall nützt nichts, wenn Kinder nicht verstehen, warum bestimmte Inhalte problematisch sind oder wenn sie lernen, dass man Filter umgehen kann, ohne über die Gründe zu sprechen.

Was Kinder (mit Begleitung) lernen sollten

Warum Algorithmen problematisch sind
  • Sie zeigen immer das, womit man möglichst lange auf der Plattform bleibt, nicht das, was wichtig oder richtig ist.
  • Sie verstärken Extreme, weil Empörung und Sensationen mehr Klicks bringen.
  • Kinder sollten verstehen: “Die App will deine Zeit, nicht dein Bestes.”
Warum Werbung manipuliert
  • Werbung finanziert die meisten “kostenlosen” Dienste.
  • Sie nutzt Emotionen, Knappheit („nur noch heute!“) und soziale Bestätigung („alle kaufen das“).
  • Kinder lernen: Kostenlos bedeutet oft, dass du das Produkt bist (deine Aufmerksamkeit, deine Daten).
Wie Fake News funktionieren
  • Reißerische Überschriften, fehlende Quellen, manipulierte Bilder.
  • KI-generierte Inhalte sind heute kaum noch von echten zu unterscheiden.
  • Grundregel: Wenn es zu gut (oder zu schrecklich) klingt, um wahr zu sein, erst prüfen, dann teilen.
Wie man Quellen prüft
  • Wer hat das geschrieben? (Seriöse Quelle oder anonym?)
  • Gibt es Belege? (Andere unabhängige Quellen?)
  • Wie aktuell ist die Information?
  • Kinder lernen: Ein einzelner TikTok-Clip ist kein Beleg.
Warum Datenschutz wichtig ist
  • Daten sind wertvoll, für Werbung, für Algorithmen, für Manipulation.
  • Einmal ins Netz gestellte Inhalte bleiben oft für immer dort.
  • Kinder sollten verstehen: Nicht jede App muss wissen, wo du wohnst, wen du kennst oder was du suchst.

Wie Begleitung konkret aussehen kann

  • Gemeinsam surfen: Zeigen, wie man Quellen prüft, Werbung erkennt, Filter hinterfragt.
  • Fragen stellen: „Warum zeigt dir YouTube gerade dieses Video?“, „Wer könnte dahinterstecken?“
  • Kritische Vorbilder sein: Wenn Eltern selbst ungeprüfte Kettenbriefe teilen, lernen Kinder das falsche Verhalten.
  • Keine Angst vor Fehlern: Kinder werden früher oder später auf problematische Inhalte stoßen. Besser, sie sprechen darüber, als dass sie es heimlich tun.

Die goldene Regel

Technik filtert Inhalte, Begleitung vermittelt Werte.
Ein kindersicherer PC ist nur so gut wie die Gespräche, die um ihn herum geführt werden.

Ohne Medienkompetenz bleiben Kinder verwundbar, selbst auf dem technisch am besten abgesicherten System.

Praktisches Unterrichtsmaterial

Zu genau diesen Themen habe ich einen praxisorientierten Workshop erstellt, der Jugendliche spielerisch an Open Source, Datenschutz und Medienkompetenz heranführt:

github.com/sheepfreak221/IT-Workshop

Der Workshop enthält u.a.:

  • Vortragsfolien zu Open Source und Datenschutz
  • Hands-on-Übungen (EXIF-Daten analysieren, Passwörter knacken, Tracker blockieren, Fake News erkennen)

6.6) Blockieren allein reicht nicht: Alternativen in Bottles

Technische Sperren für Roblox, TikTok & Co. sind notwendig, aber nicht hinreichend. Wer blockt, ohne Alternativen zu bieten, erzieht nicht zu Medienkompetenz, sondern provoziert nur Frust oder Langeweile.

Dieses System sagt nicht nur “Das darfst du nicht”, sondern zeigt: “Hier ist etwas Besseres.”

Auf jedem Kinderkonto ist Bottles vorinstalliert mit einer kuratierten Spielesammlung. Diese Spiele erfüllen drei Bedingungen, um echte Alternativen zu sein:

  1. Sie laufen auf der jeweiligen Hardware: In diesem Fall auf einem OptiPlex 790 (2011) mit integrierter Grafik
  2. Sie bieten echten Spielwert: Keine Leerlauf-Schleifen, keine “täglichen Belohnungen”
  3. Sie haben keine Fallstricke: Keine Mikrotransaktionen, keine Chats mit Fremden, kein Tracking

Wichtig: Auf dieser Hardware-Generation (Intel HD Graphics 2000) ist DXVK (DirectX auf Vulkan) kontraproduktiv. Die Treiberunterstützung für Vulkan auf alten iGPUs ist schlecht bis nicht existent.

Die Regel: Auf alter Hardware, wird in Bottles DXVK und VKD3D abgeschaltet, die Spiele laufen über reines WineD3D (OpenGL-Backend). Ein DirectX 9-Spiel über WineD3D ist flüssig, aber mit DXVK wird es zur Diashow.


7.) Eigene Invidious-Instanz im Docker-Container

Zusätzlich wurde eine eigene Invidious-Instanz betrieben, die lokal in einem Docker-Setup läuft. Dadurch ist man nicht auf öffentliche Instanzen angewiesen, die teilweise überlastet, instabil oder kurzfristig nicht erreichbar sind.

Invidious ist ein freies alternatives Frontend für YouTube. Es ermöglicht das Ansehen von Videos ohne Google-Konto, ohne personalisierte Empfehlungen und mit deutlich reduzierter Datenerfassung.

Vorteile einer eigenen Instanz

  • Unabhängigkeit von öffentlichen Drittservern
  • Höhere Verfügbarkeit und bessere Kontrolle
  • Datenschutzfreundlicher Zugriff auf YouTube-Inhalte
  • Keine Registrierung oder Google-Anmeldung erforderlich
  • Gute Ergänzung zu LibRedirect im Browser

Technische Umsetzung

Die Bereitstellung erfolgte containerbasiert mit Docker Compose auf Basis des offiziellen Projekts.

Grundlegende Einrichtung

1
2
git clone https://github.com/iv-org/invidious.git
cd invidious

Erzeugen der Secret-Keys

Für den sicheren Betrieb werden individuelle Schlüssel benötigt. Diese wurden mit pwgen erzeugt. Dabei handelt es sich um ein Werkzeug zur Erstellung zufälliger Passwörter bzw. Zeichenfolgen.

1
pwgen 16 1

Die erzeugten Passwörter wurden anschließend in die docker-compose.yml übernommen:

  • HMAC_KEY für Invidious
  • invidious_companion_key für Begleitdienste / interne Kommunikation
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
services:
  invidious:
    image: quay.io/invidious/invidious:latest
    # Dem Container die erlaubten DNS-Server mitgeben (von mir ergänzt... das gleiche bei companion)
    dns: 
      - 208.67.222.123 
      - 208.67.220.123
      - 1.1.1.3 
      - 1.0.0.3
    # image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices
    restart: unless-stopped
    # Remove "127.0.0.1:" if used from an external IP
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      # Please read the following file for a comprehensive list of all available
      # configuration options and their associated syntax:
      # https://github.com/iv-org/invidious/blob/master/config/config.example.yml
      INVIDIOUS_CONFIG: |
        db:
          dbname: invidious
          user: kemal
          password: kemal
          host: invidious-db
          port: 5432
        check_tables: true
        invidious_companion:
        # URL used for the internal communication between invidious and invidious companion
        # There is no need to change that except if Invidious companion does not run on the same docker compose file.
        - private_url: "http://companion:8282/companion"
        # IT is NOT recommended to use the same key as HMAC KEY. Generate a new key!
        # Use the key generated in the 2nd step
        invidious_companion_key: "CHANGE_ME!!"
        # external_port:
        # domain:
        # https_only: false
        # statistics_enabled: false
        # Use the key generated in the 2nd step
        hmac_key: "CHANGE_ME!!"
    healthcheck:
      test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/stats || exit 1
      interval: 30s
      timeout: 5s
      retries: 2
    logging:
      options:
        max-size: "1G"
        max-file: "4"
    depends_on:
      - invidious-db

  companion:
    image: quay.io/invidious/invidious-companion:latest
    dns: 
      - 208.67.222.123 
      - 208.67.220.123
      - 1.1.1.3 
      - 1.0.0.3
    # Please read the following file for a comprehensive list of all available
    # environment variables and their associated syntax:
    # https://github.com/iv-org/invidious/blob/master/config/config.example.yml
    environment:
    # Use the key generated in the 2nd step
       - SERVER_SECRET_KEY=CHANGE_ME!!SAME_AS_INVIDIOUS_COMPANION_SECRET_KEY_FROM_INVIDIOUS_CONFIG 
    restart: unless-stopped
    # Uncomment only if you have configured "public_url" for Invidious companion
    # Or if you want to use Invidious companion as an API in your program.
    # Remove "127.0.0.1:" if used from an external IP
    #ports:
    #  - "127.0.0.1:8282:8282"
    logging:
      options:
        max-size: "1G"
        max-file: "4"
    cap_drop:
      - ALL
    read_only: true
    # cache for youtube library
    volumes:
      - companioncache:/var/tmp/youtubei.js:rw
    security_opt:
      - no-new-privileges:true

  invidious-db:
    image: docker.io/library/postgres:14
    restart: unless-stopped
    volumes:
      - postgresdata:/var/lib/postgresql/data
      - ./config/sql:/config/sql
      - ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
    environment:
      POSTGRES_DB: invidious
      POSTGRES_USER: kemal
      POSTGRES_PASSWORD: kemal
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]

volumes:
  postgresdata:
  companioncache:
  

Start der Container

Nach Anpassung der Konfiguration wurde die Instanz gestartet:

1
docker compose up -d

Einbindung im Gesamtsystem

Die lokale Instanz dient gleichzeitig als Ziel für LibRedirect, sodass YouTube-Aufrufe im Browser automatisch auf die eigene Invidious-Installation umgeleitet werden können.

Ergebnis

YouTube-Inhalte bleiben grundsätzlich nutzbar, jedoch ohne die typischen Begleitmechanismen der Originalplattform wie aggressive Datensammlung, Nutzerprofilbildung oder algorithmische Empfehlungsketten.

Wichtiger Hinweis zu Invidious:
YouTube ändert regelmäßig sein internes API-Verhalten. Invidious kann dadurch zeitweise funktionsunfähig sein! Das betrifft alle Invidious-Instanzen, nicht nur die eigene lokale.

Wenn YouTube-Videos nicht mehr laden (Fehler wie “Connection refused” oder leere Suchergebnisse):

  1. Container aktualisieren (nur als Admin, da nur das Admin-Konto in der docker-Gruppe ist):

    1
    2
    
    docker compose pull
    docker compose up -d
    
  2. LibRedirect umstellen: Temporär auf eine öffentliche Invidious-Instanz umschalten (z. B. https://inv.nadeko.net), bis das Problem behoben ist. In LibRedirect unter “Instanzen” → “Benutzerdefiniert” eine öffentliche Instanz eintragen.

  3. Geduld: Meist reicht das Update. Falls nicht: Die Invidious-Entwickler sind schnell und nach ein paar Tagen gibt es ein neues Image.

Die eigene Instanz bleibt trotz dieser gelegentlichen Ausfälle die datenschutzfreundlichste Lösung. Ein öffentlicher YouTube-Zugang ohne Filterung ist keine Alternative.


8.) Technische Einschränkungen

Viele ausgemusterte Business PCs, unabhängig von ihrer Bauform als USFF, SFF oder Miditower, verfügen über Netzteile mit 200 bis 300 Watt. Hersteller wie Dell und HP verwenden dabei oft proprietäre Stromanschlüsse und Gehäuseformate. Ein einfacher Austausch des Netzteils ist daher meist nicht möglich.

Wenn überhaupt eine Grafikkarte nachrüstbar ist, kommen aufgrund dieser Leistungsbegrenzung nur Modelle ohne zusätzlichen Stromanschluss in Frage. In der Praxis sind das Karten wie die Radeon RX 6400 oder GeForce GTX 1050 Ti als praktische Obergrenze.

Für grafisch anspruchsvolle moderne Spiele oder GPU intensive Arbeiten sind diese Rechner nicht geeignet. Für alle in diesem Artikel beschriebenen Bildungs- und Lernanwendungen ist die vorhandene Hardware jedoch vollkommen ausreichend.


9.) Medien

Videos zum Projekt

1.) Schutzmechanismen aktiv: Soziale Netzwerke, Erwachseneninhalte und Systemeinstellungen sind gesperrt, YouTube wird automatisch auf die lokale Invidious-Instanz umgeleitet, SafeSearch ist erzwungen.
2.) Erlaubte Inhalte: Das restliche Internet (Nachrichtenportale, Wikipedia und das gesamte Fediverse (Pixelfed, Mastodon, PeerTube) etc) bleibt frei zugänglich

Bilder zum Projekt

fastfetch
1.) fastfetch: Systeminformationen und das Setup im Überblick
DNS-Test mit dig
2.) DNS-Test: Gleichzeitiger Vergleich, erlaubte DNS (OpenDNS) funktionieren, blockierte (Google DNS) werden von der Firewall unterbunden
nmap Port-Scan
3.) Netzwerksicherheit: nmap Vergleich, vom Kinder-PC sind die Ports von Minecraft-Servern blockiert. Die gleichen Server sind von außen problemlos erreichbar
Bildungssoftware
4.) Bildung: Von TuxMath bis zu GeoGebra
Entwicklungswerkzeuge
5.) Entwicklung: Von Scratch (Blockprogrammierung) bis zu Thonny (Python) und Geany
Multimedia
6.) Multimedia: Kreativität mit Audacity, Shotcut, LMMS und Co
Spiele
7.) Spiele: Native Spiele wie Pingus und Hedgewars
Timekpr-next
8.) Bildschirmzeit: Timekpr-next mit klaren Zeitkontingenten und Nutzungsfenstern
OpenGL Benchmark glmark2
9.) glmark2 zeigt, dass Lernsysteme nicht leistungsstark sein müssen. Auch ältere Hardware genügt völlig
Cat Quest mit Bottles
10.) Windows-Kompatibilität: Über Wine/Bottles läuft eine Vielzahl von Windows-Programmen (Spiele, Lernsoftware, Tools)
Spiele in Bottles
11.) Bottles: Die kuratierte Spielesammlung mit echten Alternativen zu Roblox & Co., ohne Mikrotransaktionen und ohne Fremd-Chats
Spiele in Bottles
12.) XFCE eingerichtet für den Kleinsten

10.) Empfohlene Software für den Kinder-PC

Die folgende Auswahl an freier Software deckt alle relevanten Bildungsbereiche ab, läuft auf älterer Hardware, ist frei von Werbung und Tracking und direkt über den Paketmanager (apt) oder Flatpak installierbar.

Grundschule (6-10 Jahre)

  • GCompris: Sammlung von über 100 Lernspielen zu Lesen, Rechnen, Geografie und logischem Denken.
  • TuxMath: Übungen zum Kopfrechnen.
  • TuxTyping: Einführung ins Zehnfingersystem.
  • KWordQuiz: Karteikarten System für Vokabeln und Fakten.

Sekundarstufe I (10-14 Jahre)

  • GeoGebra: Interaktive Mathematiksoftware für Geometrie, Algebra und Analysis.
  • KGeography: Geografie Lernprogramm mit interaktiven Karten.
  • KDE Marble: Digitale Weltkarte mit Erkundungsmöglichkeiten.
  • BKChem: Zeichnen chemischer Formeln.
  • Kalzium: Interaktives Periodensystem der Elemente.
  • KStars: Astronomie Software zur Beobachtung von Sternbildern und Planeten.
  • KAlgebra: Grafische Oberfläche für mathematische Funktionen und Gleichungen.

Sekundarstufe II & Universität (ab 14 Jahren)

  • Step: Zweidimensionale Physik Simulationsumgebung für Federn, Massen und elektrische Kreise.
  • Pymol: Visualisierung von Molekülen.
  • GNU Octave und wxMaxima: Numerische und symbolische Berechnungen für höhere Mathematik. Octave ist MATLAB kompatibel.
  • GNU PSPP: Alternative zu SPSS für statistische Analysen.
  • R und RStudio: Programmiersprache und Entwicklungsumgebung für Statistik und Datenanalyse.
  • Anki: Karteikarten System mit Wiederholungsalgorithmus.

Multimedia

  • Audacity: Audioaufnahme und Bearbeitung.
  • Cheese: Foto und Videoaufnahme über Webcam.
  • Clementine und Ex Falso: Musikplayer und Musikverwaltung.
  • Shotcut: Videobearbeitung.
  • HandBrake: Videokonvertierung.
  • LMMS: Elektronische Musikkomposition.
  • MuseScore: Notensatz.
  • Sound Juicer: Extraktion von Audio CDs.
  • SimpleScreenRecorder: Bildschirmaufnahme.
  • DroidCam: Nutzung eines Android Smartphones als Webcam.
  • guvcview: Steuerung von USB Webcams.
  • Audio Source: Nutzung eines Android Geräts als Mikrofon.

Office

  • LibreOffice: Textverarbeitung, Tabellen, Präsentationen.
  • Gnumeric: Ressourcenschonende Tabellenkalkulation.
  • Freeplane: Mindmaps.
  • LaTeX mit Gummi: Textsatzsystem mit Live Vorschau.
  • Apostrophe: Markdown Editor.

Programmierung

Für Anfänger:

  • Scratch: Blockbasierte Programmierung.
  • KTurtle: Logo Programmiersprache für Einsteiger.
  • Thonny: Python IDE für Anfänger.

Für Fortgeschrittene:

  • Bluefish und Geany: Leichtgewichtige Code Editoren.
  • GCC: Compiler für C, C++ und andere Sprachen.
  • JDK: Java Entwicklungsumgebung.
  • BlueJ: Objektorientierte Programmierung mit visueller Klassenansicht.
  • Python Ökosystem: Flask für Webentwicklung, NumPy/Pandas für Datenanalyse, TensorFlow für Machine Learning.

Elektronikentwicklung:

  • gEDA PCB und KiCad: Leiterplatten Design.
  • Arduino IDE: Mikrocontroller Programmierung.

Grafik & CAD

  • Darktable: RAW Fotoverwaltung und Bearbeitung.
  • GIMP: Bildbearbeitung für Rastergrafiken.
  • Krita: Digitales Zeichnen und Illustration.
  • Inkscape: Vektorgrafik.
  • Scribus: Desktop Publishing.
  • Shotwell: Fotoverwaltung.
  • FreeCAD: Parametrisches 3D Design.
  • LibreCAD: 2D Zeichnungen.
  • OpenSCAD: Skriptbasiertes 3D Modellieren.
  • LeoCAD: Digitale LEGO Modelle.
  • Voxel Paint: 3D Modelle im Voxelstil.
  • Synfig Studio: 2D Animationen.

Internet

  • Firefox: Webbrowser mit Datenschutzfunktionen.
  • Thunderbird: E Mail, Kalender und Kontakte.
  • Pidgin: Instant Messaging.
  • Transmission: BitTorrent Client.
  • Wireshark: Netzwerkanalyse.

Spiele

Emulatoren:

  • Blastem: Sega Konsolen.
  • Bottles: Wine Frontend für Windows Spiele.
  • DOSBox: DOS Spiele.
  • mGBA, PCSX R, SameBoy, ScummVM, VICE, Stella, ZSnes, Nestopia, Mupen64Plus, FS UAE: Emulatoren für Game Boy Advance, PlayStation, Game Boy, klassische Adventures, Commodore 64, Atari 2600, Super Nintendo, NES, Nintendo 64 und Amiga.

Native Spiele:

  • Koules: Puzzle Spiel.
  • Pingus: Strategiespiel.
  • Hedgewars: Actionstrategie.
  • Atomix: Chemie Puzzle.

Virtualisierung und lokale Serverdienste

  • BusyBox: Minimalistischer Webserver.
  • Python mit Flask: Entwicklung dynamischer Webanwendungen.

Werkzeuge für Datenschutz und Projektmanagement

  • VeraCrypt: Datei und Partitionsverschlüsselung.
  • Steghide: Steganografie (Verstecken von Daten in Bildern oder Audiodateien).
  • GnuPG: Ver und Entschlüsselung nach OpenPGP Standard.
  • Git: Versionskontrolle.

Verwendete Blocklisten

Eingesetzte Softwareprojekte

Hinweis: Alle genannten Projekte sind Freie und Open-Source-Software (FOSS) oder kostenlose Dienste mit Fokus auf Datenschutz.