Suricata.yaml Erklärung

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Suricata – Konfiguration

Diese Seite beschreibt die Suricata-Konfigurationsdatei /etc/suricata/suricata.yaml im Detail.

Variablen (vars)

Suricata verwendet Adressgruppen, die in der YAML-Konfiguration unter vars.address-groups definiert werden. Sie erlauben es, Regeln netzwerkunabhängig zu formulieren.

Variable Wert Bedeutung
LAN 172.26.2XX.0/24 Internes LAN-Netz (XX = Studentennummer)
DMZ 10.88.2XX.0/24 Demilitarisierte Zone
SERVER 10.2XX.1.0/24 Servernetz
INT $LAN, $DMZ, $SERVER Zusammenfassung aller internen Netze
HOME_NET $INT Alias für alle internen Netze (wird von Regeln verwendet)
EXTERNAL_NET !$INT Alles außerhalb der internen Netze
vars:
  address-groups:
    LAN: "[172.26.2XX.0/24]"
    DMZ: "[10.88.2XX.0/24]"
    SERVER: "[10.2XX.1.0/24]"
    INT: "[$LAN,$DMZ,$SERVER]"
    HOME_NET: "$INT"
    EXTERNAL_NET: "!$INT"

NFQ (Netfilter Queue)

Suricata kann Pakete über die Netfilter-Queue direkt von iptables/nftables empfangen und wieder zurückgeben.

Parameter Wert Bedeutung
mode repeat Paket wird nach Inspektion erneut in die Queue eingespeist
repeat-mark 1 Markierung, die auf wiederholte Pakete gesetzt wird
repeat-mask 1 Bitmaske zur Erkennung bereits verarbeiteter Pakete
nfq:
  mode: repeat
  repeat-mark: 1
  repeat-mask: 1

Allgemeine Einstellungen

Parameter Wert Bedeutung
default-log-dir /var/log/suricata/ Verzeichnis für alle Log-Dateien
pid-file /var/run/suricata.pid Pfad zur PID-Datei
host-mode auto Automatische Erkennung der Host-Rolle (Router/Sniffer)
coredump: max-dump unlimited Keine Größenbeschränkung für Core-Dumps

Statistiken

stats:
  enabled: yes
  interval: 8

Statistiken werden alle 8 Sekunden erfasst und in stats.log sowie eve.json geschrieben.

Ausgaben (outputs)

Suricata unterstützt mehrere parallele Ausgabeformate:

Ausgabe Datei Beschreibung
fast fast.log Einzeilige Alert-Zusammenfassungen (schnelle Übersicht)
alert-debug alert-debug.log Erweiterte Debug-Informationen zu Alerts
stats stats.log Statistiken mit Gesamtwerten (threads: no)
eve-log eve.json Strukturiertes JSON-Log (Hauptformat für SIEM-Integration)

EVE-JSON Ereignistypen

Das EVE-Log ist das zentrale Ausgabeformat für die Weiterverarbeitung (z. B. mit Elasticsearch/Kibana):

Typ Beschreibung
alert Regelübereinstimmungen (IDS/IPS-Alarme)
drop Im IPS-Modus verworfene Pakete
http HTTP-Anfragen und -Antworten
dns DNS-Anfragen und -Antworten
tls TLS-Handshake-Metadaten (SNI, Zertifikat, Version)
flow Netzwerkflüsse (Start, Ende, Bytes, Pakete)
ssh SSH-Verbindungsmetadaten
stats Interne Suricata-Statistiken

Logging

logging:
  default-log-level: notice
  outputs:
  - console:
      enabled: yes
  - file:
      enabled: yes
      level: info
      filename: suricata.log
Ziel Level Beschreibung
Console notice Ausgabe auf stdout (für systemd/journald)
Datei info Detaillierteres Logging in suricata.log

Unix Command Socket

unix-command:
  enabled: yes
  filename: /var/run/suricata-command.socket

Ermöglicht die Steuerung eines laufenden Suricata-Prozesses über das Tool suricatasc, z. B. zum Nachladen von Regeln ohne Neustart:

suricatasc -c reload-rules

Engine-Analyse

engine-analysis:
  rules-fast-pattern: yes
  rules: yes

Beim Start analysiert Suricata die geladenen Regeln und gibt Hinweise zur Performance-Optimierung aus.

Defragmentierung

Suricata setzt IP-Fragmente vor der Inspektion wieder zusammen:

Parameter Wert Bedeutung
memcap 32mb Maximaler Speicher für Fragmentpuffer
hash-size 65536 Größe der Hash-Tabelle für Fragment-Tracking
trackers 65535 Maximale Anzahl gleichzeitig verfolgter Fragmentströme
max-frags 65535 Maximale Anzahl gespeicherter Fragmente
prealloc yes Speicher wird beim Start vorab allokiert
timeout 60 Sekunden bis unvollständige Fragmente verworfen werden

Regeln

Parameter Wert Bedeutung
default-rule-path /etc/suricata/rules Basisverzeichnis für alle Regeldateien
rule-files local.rules Zu ladende Regeldatei(en)
classification-file /etc/suricata/classification.config Klassifikation der Regelkategorien
reference-config-file /etc/suricata/reference.config URLs für externe Referenzen in Regeln

Eigene Regeln werden in /etc/suricata/rules/local.rules gepflegt.

Anwendungsschicht-Protokolle (app-layer)

Suricata kann den Netzwerkverkehr auf Protokollebene dekodieren und analysieren. Alle folgenden Protokolle sind aktiviert:

Standardprotokolle

Protokoll Beschreibung
http Webtraffic (HTTP/1.x)
http2 Modernes Webprotokoll (HTTP/2)
tls TLS/SSL-Verschlüsselung (Metadaten, kein Klartextinhalt ohne SSL-Bump)
dns Namensauflösung
ftp Dateiübertragung
ssh Sichere Shell
smtp E-Mail-Versand
imap E-Mail-Abruf
ntp Zeitsynchronisation
dhcp IP-Adressvergabe
snmp Netzwerkmanagement

Windows/Netzwerkdienste

Protokoll Beschreibung
smb Windows-Dateifreigabe (Samba)
dcerpc Windows RPC (Fernprozeduraufrufe)
krb5 Kerberos-Authentifizierung (Active Directory)
nfs Unix-Netzwerkdateisystem
tftp Einfaches Dateiübertragungsprotokoll (z. B. PXE-Boot)
rdp Remote Desktop Protocol

IoT / OT / Spezialprotokolle

Protokoll Beschreibung
modbus Industriesteuerungen (SCADA)
enip EtherNet/IP (Industrieautomatisierung)
dnp3 Protokoll für Fernwirktechnik (Energieversorgung)
ikev2 VPN-Schlüsselaustausch (IPsec)
sip VoIP-Signalisierung
rfb Remote Framebuffer (VNC)
mqtt IoT-Messaging-Protokoll

Siehe auch