FleetDM: Policies, Queries und Labels (Debian 12): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „== FleetDM: Policies, Queries und Labels für Debian 12 == === Übersicht === Diese Sammlung enthält grundlegende Policies, Live-Queries und Label-Abfragen f…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | |||
| − | === | + | === Zielsetzung === |
| − | Diese | + | Diese Anleitung beschreibt, wie man FleetDM verwendet, um grundlegende Sicherheitsrichtlinien, automatische Host-Gruppierung und geplante Sicherheitsabfragen einzurichten – vollständig über die Weboberfläche. |
=== Voraussetzungen === | === 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 ( | + | === Policies anlegen (Sicherheitsprüfungen) === |
| − | *SSH-Server aktiv | + | * Ö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: | ||
| + | |||
| + | <pre> | ||
SELECT 1 FROM processes WHERE name = 'sshd' OR path = '/usr/sbin/sshd'; | SELECT 1 FROM processes WHERE name = 'sshd' OR path = '/usr/sbin/sshd'; | ||
| + | </pre> | ||
| − | * | + | * Wähle „All Hosts“ oder ein bestimmtes Label |
| − | + | * Speichere die Policy | |
| − | + | Weitere Beispiele: | |
| − | |||
| − | + | ;Auditd läuft | |
| + | <pre> | ||
SELECT * FROM processes WHERE name = 'auditd'; | SELECT * FROM processes WHERE name = 'auditd'; | ||
| + | </pre> | ||
| − | *Hostname entspricht nicht | + | ;Root-Konto wurde genutzt |
| + | <pre> | ||
| + | SELECT * FROM logged_in_users WHERE uid = 0; | ||
| + | </pre> | ||
| + | |||
| + | ;Hostname entspricht nicht dem Muster „debian-*“ | ||
| + | <pre> | ||
SELECT hostname FROM system_info WHERE hostname NOT LIKE 'debian-%'; | SELECT hostname FROM system_info WHERE hostname NOT LIKE 'debian-%'; | ||
| + | </pre> | ||
| + | |||
| + | === 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: | ||
| + | |||
| + | <pre> | ||
| + | SELECT * FROM system_info WHERE hardware_model LIKE '%VirtualBox%' OR hardware_model LIKE '%KVM%'; | ||
| + | </pre> | ||
| + | |||
| + | Weitere Beispiele: | ||
| + | |||
| + | ;Ist ein Laptop (hat Akku) | ||
| + | <pre> | ||
| + | SELECT * FROM battery; | ||
| + | </pre> | ||
| − | + | ;Ist ein Server (Debian, kein Akku, kein GUI) | |
| − | + | <pre> | |
| − | SELECT name | + | SELECT * FROM os_version WHERE name = 'debian' AND platform = 'ubuntu' AND build != ''; |
| + | </pre> | ||
| − | + | 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 | |
| + | <pre> | ||
SELECT path, permissions FROM suid_bin; | SELECT path, permissions FROM suid_bin; | ||
| + | </pre> | ||
| − | + | ;Welt-schreibbare Dateien unter /etc (alle 24h) | |
| − | + | <pre> | |
| − | SELECT * FROM | + | SELECT * FROM file WHERE directory = '/etc' AND mode LIKE '%w%'; |
| + | </pre> | ||
| − | + | ;Offene Ports (alle 4 Stunden) | |
| − | SELECT | + | <pre> |
| + | SELECT pid, address, port, protocol, family FROM listening_ports; | ||
| + | </pre> | ||
| − | + | ;Prozesse (alle 60 Minuten) | |
| − | SELECT | + | <pre> |
| + | SELECT name, pid, path, cmdline FROM processes; | ||
| + | </pre> | ||
| − | === | + | === Ergebnis === |
| − | * Policies zeigen | + | * Policies werden regelmäßig ausgewertet und zeigen „pass“ oder „fail“ pro Host |
| − | + | * Labels ordnen Hosts automatisch Gruppen zu | |
| − | * Labels | + | * Scheduled Queries liefern regelmäßig verwertbare Ergebnisse |
| − | * | + | * Alles funktioniert zentral über die Weboberfläche ohne zusätzliche Agenten- oder CLI-Konfiguration |
[[Kategorie:FleetDM]] | [[Kategorie:FleetDM]] | ||
[[Kategorie:osquery]] | [[Kategorie:osquery]] | ||
| − | [[Kategorie: | + | [[Kategorie:xinux.net Anleitung]] |
| − | [[Kategorie: | + | [[Kategorie:Sicherheitsrichtlinien]] |
Aktuelle Version vom 20. April 2025, 08:34 Uhr
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