Suricata.yaml Erklärung
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 |