# Hosts, die per SSH ueberwacht werden. # Nach Aenderungen: ./setup.sh apply (Manager + Collector neu starten) # # Pro Host gibt es drei Bausteine (alle optional, Defaults siehe unten): # logs Logs werden dauerhaft per SSH gestreamt (journald und/oder Dateien) # -> Wazuh-Regeln/Decoder laufen darauf wie bei einem Agent # integrity Datei-Integritaet (FIM) per Agentless: Hashes/Rechte von Dateien, # Alarm bei Aenderung # commands Befehlsausgaben per Agentless, Alarm wenn sich die Ausgabe aendert # (offene Ports, Benutzer, sudoers, Cronjobs, ...) # agent_tunnel Optional: echter Wazuh-Agent auf dem Host, der sich ueber einen # SSH-Reverse-Tunnel (-R 1514/1515) beim Manager meldet ssh: # yes = nur Hosts aus ssh/known_hosts (vorher: ./setup.sh keyscan) # accept-new = Host-Key beim ersten Kontakt automatisch akzeptieren (TOFU) host_key_checking: "yes" connect_timeout: 15 server_alive_interval: 30 defaults: user: wazuh-pull # SSH-Benutzer auf den Zielhosts port: 22 identity_file: id_ed25519 # Datei in ./ssh/ sudo: false # true = Befehle mit "sudo -n" (NOPASSWD noetig) logs: - type: journal # komplettes Journal (Benutzer braucht Gruppe systemd-journal) integrity: enabled: true interval: 3600 # Sekunden paths: [/etc, /usr/bin, /usr/sbin, /bin, /sbin, /boot] commands: enabled: true interval: 3600 run: - ss -tulpn 2>/dev/null || netstat -tulpn - cat /etc/passwd - cat /etc/group - find /etc/sudoers /etc/sudoers.d -type f -exec md5sum {} + 2>/dev/null - crontab -l -u root 2>/dev/null; ls -la /etc/cron.d - systemctl list-unit-files --state=enabled --no-pager 2>/dev/null agent_tunnel: false hosts: - name: web01 # Anzeigename / SSH-Alias (A-Z a-z 0-9 . _ -) address: 192.168.10.21 - name: web02 address: web02.example.lan port: 2222 logs: - type: journal units: [ssh, nginx] # nur diese Units (optional) - type: file path: /var/log/nginx/access.log format: apache # Wazuh log_format (syslog, apache, json, audit, ...) - type: file path: /var/log/nginx/error.log - name: db01 address: 10.0.0.5 sudo: true # z.B. fuer /etc/shadow im Integritaetscheck integrity: paths: [/etc, /usr/bin, /usr/sbin, /var/lib/postgresql/16/main/pg_hba.conf] commands: enabled: false - name: legacy01 # Alter Host ohne journald address: 10.0.0.9 logs: - type: file path: /var/log/auth.log - type: file path: /var/log/syslog # - name: app01 # Voller Wazuh-Agent ueber SSH-Tunnel # address: 10.0.0.30 # agent_tunnel: true # logs: [] # Logs liefert dann der Agent selbst # integrity: {enabled: false} # commands: {enabled: false}