FleetDM Docker-Installation

Aus Xinux Wiki
Version vom 20. April 2025, 09:31 Uhr von Thomas.will (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Docker & Tools installieren

  • apt install -y docker.io docker-compose curl

Zertifikate und Keys vorbereiten

Docker Compose-Konfiguration

  • vi docker-compose.yaml
version: '3.8'

services:
  mysql:
    image: mysql:8.0.36
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpw
      MYSQL_DATABASE: fleet
      MYSQL_USER: fleet
      MYSQL_PASSWORD: changeme
    volumes:
      - ./mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-pfleet"]
      interval: 10s
      timeout: 5s
      retries: 10

  redis:
    image: redis:7
    container_name: redis
    volumes:
      - ./redis-data:/data

  fleet-init:
    image: fleetdm/fleet:v4.49.1
    container_name: fleet-init
    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_started
    environment:
      FLEET_MYSQL_ADDRESS: mysql:3306
      FLEET_MYSQL_DATABASE: fleet
      FLEET_MYSQL_USERNAME: fleet
      FLEET_MYSQL_PASSWORD: changeme
      FLEET_REDIS_ADDRESS: redis:6379
    command: fleet prepare db --no-prompt
    restart: "no"

  fleet:
    image: fleetdm/fleet:v4.49.1
    container_name: fleet
    ports:
      - "8080:8080"
    depends_on:
      fleet-init:
        condition: service_completed_successfully
    environment:
      FLEET_MYSQL_ADDRESS: mysql:3306
      FLEET_MYSQL_DATABASE: fleet
      FLEET_MYSQL_USERNAME: fleet
      FLEET_MYSQL_PASSWORD: changeme
      FLEET_REDIS_ADDRESS: redis:6379
      FLEET_SERVER_TLS: "true"
      FLEET_SERVER_CERT: /certs/fullchain.pem
      FLEET_SERVER_KEY: /certs/privkey.pem
    volumes:
      - ./certs:/certs
    command: fleet serve
  • docker-compose up -d

fleetctl besorgen (auf dem Server)

Paket für die Clients bauen (insecure-Variante)

Die Enroll-Secret gibt’s in der Web-Oberfläche unter
  • Hosts → Add Host → Linux (DEB)
  • fleetctl package --type=deb --enable-scripts ^C-fleet-url=https://fleet.it113.int:8080 --fleet-certificate /mnt/docker/fleet/certs/fullchain.pem --enroll-secret=gYpHjdyHvQb3/JD1K2NSdnJg4aAqgSH8


Erzeugt wird z. B.:

  • fleet-osquery_1.41.0_amd64.deb

Debian Paket auf den Clients installieren

  • dpkg -i fleet-osquery_1.41.0_amd64.deb
  • systemctl status orbit.service

CA auf dem Client einspielen

  • cp ca.crt /usr/local/share/ca-certificates/fleet-ca.crt
  • update-ca-certificates

Der erste Host ist drin

Fleet-1.png