Icinga Summit 2024

Donnerstag, 13. Juni, 2024

Am 5. und 6. Juni fand in Berlin die Icinga Summit 2024 statt.

2024-06-13-icinga-summit-2024.png

Es waren 2 angenehme Tage, um sich mit anderen zu Monitoring & mehr auszutauschen.

Meine erste Rede auf englisch vor “grossem” Publikum lief dann doch besser, als gedacht. Anschliessend kamen mehrere Leute auf mich zu, um mir nach dem im Vortrag Gehörtem noch Tipps mit auf den Weg zu geben. Das ist doch sympathisch!

Weiterführende Links:

Erstaufruf von Klapp - ich ertrage das Flackern einfach nicht

Dienstag, 11. Juni, 2024

Meine Tochter kommt bald in den Kindergarten. “Klapp” ist das Kommunikationsmittel der Schulen zu Eltern und Schülern.
Nach dem ersten Login führt das Bewegen der Maus über Teile der Webseite zu solch einem enormen Flackern, dass die Augen anfangen zu schmerzen. Man kann auf der Seite einzig nur so kurz wie nötig den Status einsehen und sie verlassen. Ich mache das ja nun wirklich nie - aber ich musste nach wenigen Minuten das Feedback-Formular ausfüllen:

Guten Tag,

ich bin Neukunde, da meine Tochter im August in den Kindergarten kommt. Ich benutze den Firefox (v126). Beim Bewegen der Maus über die Fläche mit Seiteninhalten wird der Bildschirm sehr häufig beim Verlassen von Boxen oder Formularfeldern oder aber Aufklappen von Inhaltsboxen (wie den Einstellungen) für einige Millisekunden blau (die Hintergrundfarbe von ) und man sieht weiss das Klapp-Logo in der Mitte des Bildschirmes. Beim Bewegen der Maus über den Bildschirm kann es schonmal 4..5 mal in der Sekunde flackern.

Und ich habe das Verhalten so noch auf keiner anderen Webseite gesehen.

Ich habe gelesen, dass die Hardwarebeschleuinigung deaktiviert werden kann. Auch das tat ich und habe den Browser neu gestartet. Aber das beendet das wilde flackern von https://klapp.mobi/ während Mausbewegungen nicht.

In der Entwicklerkonsole gibt es keine Besonderheiten oder Fehler durch Javascript.

Das Flackern ist wirklich schwer zu ertragen.

Freundliche Grüsse
Axel Hahn

Update:

Tags darauf kam bereits eine erste Antwort vom . Man konnte das Problem etwas einkerisen - es sei in Bearbeitung. Mannomann: das ging ja schnell.

Härten unseres Restic-Backups

Donnerstag, 21. März, 2024

Unser Server Backup mit dem IML Backup [1] am Institut mit 150+ Systemen lief über Jahre mit Restic [2] und via SFTP zu einem Storage. Mit Restic bin ich soweit sehr zufrieden: es verschlüsselt Daten lokal vor der Übertragung und muss nach einem Initialbackup nur noch inkrementelle Backups machen. Auch das Restore von einzelnen Dateien und Ordnern hat uns nie im Stich gelassen. Insbesondere das Mounten mit Fuse ist ein hilfreiches Feature.

Dann sah ich im Januar 2024 das Videos des CCC [3]. Auf der “wichtigsten Folie des ganze Vortrags” waren Anforderungen an Backups gelistet, um sich gut gegen Ransomware-Verschlüsselungen der Infrastruktur zu wappnen. Bei vielen Punkten waren wir demnach bereits gut gewappnet. Aber es gab unschöne Schwachpunkte. Da diese jeweils eine Rechteausweitung als root voraussetzen, war dies mit “kalkulierten Risiko”.

Ein System kann seine eigenen Backup-Daten löschen.
Damit Backups nicht übermässig gross werden, werden alle N Tage im Anschluss des backups alte Daten älter 180 Tage gelöscht. Wenn ein Sysem gekapert plus der root-Account erreicht würde, kann durch böswilliges Setzen eines Delta statt 180 Tage auf 0 Tage setzend ist so ziemlich alles weggeputzt werden.

Ein System kann theoretisch Backups anderer Systeme löschen.
Bei Einbruch und Rechteausweitung auf root könnte wäre Folgendes denkbar: alle Systeme schreiben auf das Backup-Ziel mit demselben SSH-User. Auf der Zielseite gehören die Dateien demselben User und thoretisch könnte ein System Zugriff auf Backup-Daten eines anderen Systems erhalten und diese zwar nicht entschlüsseln, aber wg. Schreibrechten eben auch löschen.

2024-03-20-restic-via-ssh.png

Es geht nun auch besser.

Auf dem Backup-Endpoint wurde nun der Restic-Rest-Server [4] installiert, der als Systemd Service eingerichtet wurde. Die Backup-Clients kommunizieren nun statt via SSH mit HTTPS. Sie teilen nicht mehr den auf allen Systemen gleichen privaten SSH-Schlüssel.

In den Startparametern des Rest-Servers wurden diese Optionen aufgenommen, um folgende Härtungen zu erreichen:

Ein User (Server) darf nur sein eigenes Repository beschreiben.

Option:

--private-repos

Das Unterbindet das Ausbrechen auf Backup-Daten anderer Systeme.
Jeder Backup-Client (unsere Server) bekommt einen eigenen User und ein eigenes Http-Auth Passwort zugewiesen.
Auf dem Restic Rest Server werden Usernamen und das verschlüsselte Passwort in eine .htpasswd eingetragen.

Stolperfalle: Es böte sich an, die Benutzer gleich zu benennen, wie den Server. Eine Limitierung in der der .htpasswd lässt einen Punkt im Benutzernamen jedoch nicht zu. Aber das Ersetzen des Punkts im FQDN durch einen Unterstrich führt zu keinerlei Überschneidungen. Dem schliest sich an, dass das Backup-Verzeichnis nun statt [Backup-Dir]/ nun [Backup-Dir]/ ist. Bei der Umstellung von SSH auf HTTPS muss somit das Backup-Ziel-Verzeichnis beim Backup-Server umbenannt werden.

Ein User (Server) darf Daten nur anhängen.

Option:

--append-only

Kurz: Löschen ist nicht mehr möglich. Das klingt sicher.

Der Pferdefuss: unser auf jedem Einzelsystem befindliche Restic Prune Job zum Löschen älter N Tage funktioniert so nicht mehr. Ich habe es auch probiert: es wird mit einem 40x Statuscode zurückgewiesen.

Unsere Abhilfe sieht wie folgt aus: auf dem Backup-Zielserver läuft nun ein Cronjob, der über alle Backup-Repos das Pruning macht [4]. Wir lassen es erkennen, wie alt das letzte Prubg war und pausieren das Prune auf ein Repository dann für N Tage. Damit Restic auf Inhalte zugreifen kann, muss das Passwort zum Entschlüsseln aller Serverdaten für das Skript greifbar sein. Wir generieren mit Ansible eine Konfigurationsdatei, die alle Benutzernamen und Restic-Verschlüsselungspasswörter am Backup-System niederschreibt. Diese Datei gehört root:root und hat die Rechte 0400.

Zustand NEU:

Das Ergebnis ist derselbe Datenfluss - nur mit einem anderen Protokoll - Https statt ssh. Entscheidend sind die 2 o.g. Optionen für den Restic Server auf dem Backup-Ziel.

2024-03-20-restic-via-https.png

Dies war eine Beschreibung mit hoher Flughöhe mit weniger technischen Details. Bei Fragen nutzt gern die Kommentarfunktion oder fragt mich an.

Weiterführende Links:

  1. Docs: IML Backup (en)
  2. Github: Restic (en)
  3. CCC Dez 2023: Hirne hacken - Hackback Edition
  4. Github: Restic REST Server (en)
  5. os-docs.iml.unibe.ch: rest-pruner.sh (en)