FleetDM: Policies, Queries und Labels (Debian 12)

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Zielsetzung

Diese Anleitung beschreibt, wie man FleetDM verwendet, um grundlegende Sicherheitsrichtlinien, automatische Host-Gruppierung und geplante Sicherheitsabfragen einzurichten – vollständig über die Weboberfläche.

Voraussetzungen

  • Ein oder mehrere Hosts erscheinen unter „Hosts“
  • Zugriff auf die FleetDM-Weboberfläche ist möglich (z. B. https://fleet.it113.int:8080)

Policies anlegen (Sicherheitsprüfungen)

  • Öffne die Weboberfläche
  • Klicke auf „Settings“ → Reiter „Policies“
  • Klicke auf „+ Add a policy“
  • Gib einen Namen an (z. B. SSH-Server aktiv)
  • Trage die SQL-Abfrage ein:
SELECT 1 FROM processes WHERE name = 'sshd' OR path = '/usr/sbin/sshd';
  • Wähle „All Hosts“ oder ein bestimmtes Label
  • Speichere die Policy

Weitere Beispiele:

Auditd läuft
SELECT * FROM processes WHERE name = 'auditd';
Root-Konto wurde genutzt
SELECT * FROM logged_in_users WHERE uid = 0;
Hostname entspricht nicht dem Muster „debian-*“
SELECT hostname FROM system_info WHERE hostname NOT LIKE 'debian-%';

Labels erstellen (automatische Gruppierung)

  • Klicke auf „Hosts“ → Reiter „Labels“
  • Klicke auf „+ Create new label“
  • Gib einen Namen ein (z. B. Ist VM)
  • Trage die SQL-Abfrage ein:
SELECT * FROM system_info WHERE hardware_model LIKE '%VirtualBox%' OR hardware_model LIKE '%KVM%';

Weitere Beispiele:

Ist ein Laptop (hat Akku)
SELECT * FROM battery;
Ist ein Server (Debian, kein Akku, kein GUI)
SELECT * FROM os_version WHERE name = 'debian' AND platform = 'ubuntu' AND build != '';

Nach dem Speichern wird das Label automatisch auf passende Hosts angewendet.

Scheduled Queries einrichten (regelmäßige Prüfungen)

  • Klicke in der Weboberfläche auf „Schedule“
  • Klicke auf „+ Schedule a query“
  • Wähle eine bestehende oder neue gespeicherte Query
  • Gib das Intervall ein (z. B. „Every 24 hours“)
  • Wähle Zielhosts oder ein Label
  • Speichere den Zeitplan

Beispiele:

Tägliche SUID-Binary-Erkennung
SELECT path, permissions FROM suid_bin;
Welt-schreibbare Dateien unter /etc (alle 24h)
SELECT * FROM file WHERE directory = '/etc' AND mode LIKE '%w%';
Offene Ports (alle 4 Stunden)
SELECT pid, address, port, protocol, family FROM listening_ports;
Prozesse (alle 60 Minuten)
SELECT name, pid, path, cmdline FROM processes;

Ergebnis

  • Policies werden regelmäßig ausgewertet und zeigen „pass“ oder „fail“ pro Host
  • Labels ordnen Hosts automatisch Gruppen zu
  • Scheduled Queries liefern regelmäßig verwertbare Ergebnisse
  • Alles funktioniert zentral über die Weboberfläche ohne zusätzliche Agenten- oder CLI-Konfiguration