Config Drift Prevention: Desired State, agentless vs. agent-based

Config Drift, also die unkontrollierte Abweichung von Serverkonfigurationen vom definierten Sollzustand, ist eine der häufigsten Ursachen für Sicherheitsprobleme, Ausfälle und unerwartetes Verhalten in IT-Umgebungen. Eine konsequente Strategie zur Drift-Prävention basiert auf einem klar definierten Desired State, überwachten Abgleichsmechanismen und der Entscheidung zwischen agentless- und agent-based Ansätzen.

Desired State Management

Der Kern der Config Drift Prevention ist die Definition eines Sollzustandes. Dieser beschreibt exakt, welche Pakete, Dienste, Netzwerkeinstellungen, Benutzerrechte und Policies auf einem Host oder in einer Umgebung vorhanden sein müssen.

Komponenten des Desired State

  • Systempakete: Versionen, Installation und Patchlevel
  • Dienste: Aktivitätsstatus, Starttyp und Abhängigkeiten
  • Netzwerk: IP-Adressen, Routing, Firewalls und VLANs
  • Dateisystem und Berechtigungen: Ownership, ACLs, Mount-Optionen
  • Security Policies: SELinux/AppArmor, PAM, sysctl Parameter

Definieren von Standards

Alle Hosts innerhalb einer Rolle oder Zone sollten auf Basis von standardisierten Templates oder Baselines konfiguriert werden. Tools wie Ansible, Puppet oder Chef ermöglichen die Versionierung und Wiederverwendbarkeit dieser Definitionen.

# Beispiel: Desired State für einen Webserver (Ansible)
- hosts: webservers
  become: yes
  tasks:
    - name: Apache installieren
      package:
        name: httpd
        state: present

    - name: Dienst aktivieren
      service:
        name: httpd
        state: started
        enabled: true

Agentless vs. Agent-Based

Die Umsetzung der Drift-Prävention kann entweder agentless oder agent-based erfolgen. Beide Ansätze haben spezifische Vor- und Nachteile, abhängig von Skalierung, Sicherheitsanforderungen und Komplexität der Infrastruktur.

Agentless Monitoring

Agentless Tools greifen über SSH, WinRM oder API-Schnittstellen auf Hosts zu und prüfen deren Konfiguration gegen den Desired State.

  • Vorteile: Kein zusätzlicher Software-Overhead, einfache Bereitstellung, keine persistenten Agents
  • Nachteile: Echtzeitüberwachung schwieriger, höhere Latenz bei großen Umgebungen, eingeschränkte Korrekturmöglichkeiten
  • Beispiele: Ansible Pull Mode, Salt SSH, Rundeck
# Agentless Überprüfung via Ansible
ansible all -m setup
ansible webservers -m yum -a "name=httpd state=present"

Agent-Based Monitoring

Agenten laufen permanent auf den Hosts und melden Abweichungen automatisch an einen zentralen Server oder Controller.

  • Vorteile: Echtzeit-Überwachung, automatische Korrektur, detaillierte Audit Logs
  • Nachteile: Agent muss installiert und aktualisiert werden, potenzieller Ressourcenverbrauch
  • Beispiele: Puppet Agent, Chef Client, Salt Minion, OSQuery
# Agent-based Audit mit OSQuery
osqueryi --json "SELECT * FROM processes WHERE name='httpd';"
osqueryi --json "SELECT * FROM rpm_packages WHERE name='httpd';"

Auditierung und Reporting

Unabhängig vom Ansatz sollten alle Konfigurationsabweichungen dokumentiert und in Reports zusammengeführt werden. Dies erhöht die Nachvollziehbarkeit und unterstützt Compliance-Prüfungen.

Reporting Strategien

  • Drift-Reports: Tägliche oder wöchentliche Zusammenfassung der Abweichungen
  • Trend-Analysen: Langfristige Auswertung von wiederkehrenden Drifts
  • Integration in SIEM: Drift-Events können als Security Alerts weiterverarbeitet werden

Automatische Korrektur

In vielen Szenarien ist es sinnvoll, nicht nur zu erkennen, sondern Abweichungen automatisch zu korrigieren. Hierbei ist der Einsatz von agent-based Tools meist effektiver.

Beispiel Puppet Manifest

node 'webserver.example.com' {
  package { 'httpd':
    ensure => installed,
  }

service { 'httpd':
ensure => running,
enable => true,
}
}

Versionierung und Change Management

Die Definition des Desired State sollte versioniert werden. So lassen sich Änderungen nachvollziehen und bei Bedarf revertieren.

Git als Source of Truth

  • Alle Konfigurationsdateien und Templates in Git-Repositories verwalten
  • CI/CD Pipelines prüfen neue Versionen vor Deployment
  • Rollback auf vorherige Versionen bei Drift oder Fehlkonfigurationen

Best Practices

  • Desired State klar dokumentieren und rollenbasiert definieren
  • Agentless Monitoring für kleine Umgebungen oder ad-hoc Checks nutzen
  • Agent-Based Monitoring für Echtzeit-Korrektur und Audit einsetzen
  • Automatisierte Reports und Logs zentral sammeln
  • Versionierung und CI/CD für alle Konfigurationsdefinitionen implementieren
  • Regelmäßige Drift-Tests durchführen, um unerkannte Abweichungen zu vermeiden

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles