Raspberry Pi: mehr Transparenz im Heimnetzwerk

Wer in seinem Netzwerk einen Raspberry Pi integriert hat, wird um die Vorteile wissen, die eine solche Maschine bietet. In meinem Fall laufen dort auf einem Dietpi-System im Wesentlichen vier Anwendungen:

Pihole als Werbe - und Telemetrie-Blocker,
Unbound als lokaler DNS-Server, der die providerabhängige Intransparenz von voreingestellten DNS-Servern umgeht,
Baikal, der Kalender- und Adress-Bücher verwaltet, die netzwerkweit zur Verfügung stehen, und schließlich
Nextcloud, als Dokumentenserver, ebenfalls im gesamten Netzwerk verfügbar.

Blackbox-Raspberry
Einmal aufgesetzt, werkelt das Ganze zuverlässig im Hintergrund, erfordert jedoch ein Minimum an Verwaltungsaufwand, indem man sich um Datensicherung und anstehende Updates des Betriebssystems kümmern muss. Vieles davon lässt sich automatisieren und per Zeitsteuerung im Hintergrund ausführen. Das System ist jedoch in gewissem Sinne eine Blackbox, die nichts preisgibt, wenn man nicht in diversen Verzeichnissen nach Protokollen sucht. Das kann umständlich sein, und da man den Pi in aller Regel ohne Peripherie betreibt, muss man sich per SSH einwählen, um zu sehen, ob das System rund läuft und auf aktuellem Stand ist.

Ein einziges Protokoll für das Wesentliche
Daher kam bei mir die Idee auf, die diversen Protokolle von Updates und Datensicherungen in einem einzigen Protokoll zusammenfassen zu lassen, dieses so zu formatieren, dass es gut lesbar ist, wobei die jeweiligen Ergebniszeilen hervorgehoben werden (bei ausgeführten Updates kann es schon mal etwas umfangreicher werden), und es schließlich automatisch 2 x pro Woche als E-Mail an mich senden zu lassen.

Damit habe ich dann eine gewisse Transparenz erreicht, die mir zuverlässig einen Überblick verschafft, ob das System rund läuft und aktuell ist. Und die Überprüfung dauert aufgrund der Aufbereitung weniger als eine Minute.

Zwischenbemerkung: ich habe die Forum - Hinweise zu KI generierten Inhalten zur Kenntnis genommen, die da lautet:

„Hinweis: Inhalte oder Texte, die von einer Künstlichen Intelligenz (KI) generiert wurden, sind ebenfalls nicht erlaubt und grundsätzlich nicht gestattet. Dieses Forum dient dem Austausch zwischen Menschen.“

Das ist auch mein Ansatz und mir geht es ebenfalls darum, dass sich Menschen über dieses Thema austauschen können.

Skript-Erzeugung mit KI
Ich habe ein Skript in großen Teilen durch die Perplexity KI erzeugen lassen, dass alle diese Aufgaben erfüllen kann. Ohne mein Zutun und meine Korrekturen wäre das Skript allerdings nicht entstanden und würde nicht funktionieren. Es ist also, wenn man so will, das Ergebnis einer Mensch-Maschine Interaktion. Es ist hier sicher nicht der richtige Ort, um über Widersprüchlichkeiten und Fragwürdigkeiten der sogenannten „künstlichen Intelligenz“ zu diskutieren. Diejenigen, die sich nur ansatzweise damit beschäftigt haben, werden eingesehen haben, dass sie nicht mehr verschwinden wird. Um es mal klassisch zu sagen: der Geist ist aus der Flasche und niemand wird in der Lage sein, diesen wieder einzufangen, selbst wenn einige Pessimisten den Untergang der Menschheit vorauszusehen meinen. Politische und gesetzgeberische Rahmenbedingungen für die Verwendung der KI zu setzen, ist auf jeden Fall dringend angesagt.

Es ist jedenfalls eine gute Strategie, wenn auch in bescheidenem Umfang, verstehen zu lernen, wie die sogenannte KI arbeitet, und herauszufinden, wie sie auf für Menschen sinnvolle Art und Weise genutzt werden kann.

Ich denke, hiermit den Regularien des Forums entsprochen zu haben, da ich ja hier keine KI-generierten Inhalte poste, sondern weiter unten die Skripte als externen Download anbiete.

Update Skript innerhalb eines “Wrapper”-Skriptes
Das eigentliche Update-Skript besteht nur aus ein paar einfachen Codezeilen. Dieses Update-Skript wird nun innerhalb eines umfassenderen „wrapper“- Skriptes ausgeführt, das alle die übrigen Aufgaben erledigen soll. Es hat gut ein Dutzend Revisionen des Skriptes gebraucht, bis es zufriedenstellend funktioniert hat. Perplexity hat wiederholt „im Brustton der Überzeugung“ behauptet, so und so würde es 100% ig funktionieren, was sich dann aber mehrfach als falsch herausgestellt hat. Durch die vielen Revisionen sind hier und da Redundanzen im Code entstanden. Da es aber, gut funktioniert und gut lesbar ist, habe ich es erst mal dabei belassen. Wer sachkundig den Code beurteilen und vereinfachen kann, ist gerne willkommen, dies zu tun. Betrachtet man den Code im Einzelnen wird man feststellen, dass er „safe“ ist, und für sich genommen keinen Schaden anrichten kann. Schlimmstenfalls werden Syntax-Fehler angemahnt und es bleibt hängen. Ich gehe davon aus, dass dies ein Anwendungsfall ausschließlich innerhalb eines Heim-Netzwerkes ist.

Was das Skript macht:
Update und Upgrade des Debian-Systems (als Basis-OS von dietpi)
Update Pihole
Update des Root-Server-Verzeichnis für Unbound
Protokoll-Einträge der letzten 3-4 Datensicherungen
Alle Einträge mit Zeitstempel versehen

Die Dietpi-System-Updates lassen sich nicht automatisieren und müssen manuell angestoßen werden, also muss man dann und wann die Konsole starten.

Wer ein anderes OS als Dietpi benutzt, muss hier und da eventuell weitere Anpassungen vornehmen. Solange die Basis Debian ist, sollte es so wie es ist, funktionieren.

HTML-Formatierung und E-Mail Versand
Alle Protokolle werden zusammengefasst, gut lesbar als HTML formatiert und schließlich automatisch als E-Mail an meine Adresse verschickt.

In crontab gibt es zwei Einträge, die in meinem Falle mittwochs und samstags das Skript ausführen.

Voraussetzung für den E-Mail Versand ist die Bereitstellung einer Email- Funktionalität.
( z.B. msmtp )

Code Anpassung
Wer den Code für sich nicht nutzen will, muss seine Pfade anpassen und Zugangsdaten (msmtp) eintragen. Um die Vorteile der Formatierungen zu nutzen, sollte man HTML im E-Mail Programm temporär zulassen (z.B. Toggle HTML oder Allow HTML Temp)

Ich habe die Skripte in meinem Magenta-Cloud-Account als txt-Dateien abgelegt, sie müssen daher nach dem Download in .sh umbenannt, in die gewünschten Verzeichnisse hochgeladen, mit chmod +x ausführbar gemacht werden und die entsprechenden Rechte besitzen.

Nach Rücksprache mit den Administratoren: alle Dokumente zum downloaden sind jetzt ohne Passwort verfügbar

Link zum Download
Wer Interesse hat, kann sich hier die Skripte, eine Beispiel-HTML-Ausgabe und eine Kurzanleitung herunterladen:

https://magentacloud.de/s/DWYsziwcrEoy7eK

Das HTML-Protokoll wird z.B. in Betterbird/Thunderbird mit serifenloser Schrift angezeigt. Ruft man die HTML im Browser auf, kommt so was wie TimesNewRoman, was optisch weniger schön ist.

PS: die Nextcloud und Baikal Instanzen bleiben was die Automatisierung betrifft außen vor. Nextcloud meldet sowieso ständig, dass es updates gibt. Und Baikal werkelt gutmütig vor sich hin, bis es gefühlt Jahre später mal ein Update bereitstellt, das sich nicht automatisieren lässt.

2 „Gefällt mir“

Finde ich grundsätzlich interessant. Bis jetzt betreibe ich nur ein Raspi mit Syncthing als Server und vergesse ihn regelmäßig, so dass ich nur alle paar Wochen nach einem Update schaue, was lokal im Heimnetz ja eigentlich nicht so wild ist.

Ich habe eigentlich keinerlei Ahnung vom Programmieren, deshalb habe ich auch mich mit Hilfe einer KI an die Anpassung von PHP Anwendungen an meine Bedürfnisse gewagt.
Perplexity war dabei sehr eifrig, allerdings haben die Codes nie funktioniert, mit Claude bin ich dann, wohl auch mit vielen Nachfragen, zum Ergebnis gekommen.
Einerseits finde ich, dass man damit zumindest den Anreiz hat, sich mit einem Code auseinander zu setzen und man bekommt ja unter Umständen auch ein brauchbares Ergebnis, andererseits bleibt dabei ein mulmiges Gefühl zurück, weil ich nicht wirklich verstehe was dort passiert.

Hallo Toku, das “mulmige Gefühl” ist gut nachvollziehbar, denn es fühlt sich wie eine Grenzüberschreitung an, weil man glaubt die Konsequenzen seiner Aktionen nicht so richtig abschätzen zu können. Bei meinem “Monitoring”-Ansatz wird allerdings nicht in das System eingegriffen, sondern es wird lediglich etwas abgefragt. Wenn es Fehler produziert, stoppt man es einfach und egal, ob man den Code im Detail versteht: es passiert nichts weiter. Im Heimnetz ist das alles nicht so wild, wie Du schreibst, und jahrelange Erfahrungen mit dem Pi zeigen, der funktioniert auch ohne dass man so genau hinschaut. Sehr selten hängt sich das Pi System mal auf, was man daran merkt, dass Webseiten und das E-Mailsystem Fehler melden, und meistens reicht Stecker ziehen, warten und wieder reinstecken aus und das Ganze läuft wieder. Manche fragen sich daher vielleicht “Warum dieser ganze Aufwand?” Und zugegeben, es ist auch einer gewissen Experimentierlust und Risikobereitschaft geschuldet. Obwohl ich ebenfalls keinen Code schreiben kann, hat die Auseinandersetzung damit eine gewisse Lernkurve erzeugt, und ich verstehe mehr und mehr, was der Code macht. Angesichts der Entwicklung der KI sagen einige Insider inzwischen “Don’t learn to code, it’s a waste of time”.
Im konkreten Anwendungsfall beruhigt es immerhin zu sehen, dass die Datensicherung durchgelaufen ist, und dass die Root-Server, ohne die der lokale unbound-DNS Server nicht funktioniert, auf aktuellem Stand sind.