Suricata IDS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Suricata minimale Konfiguration=
 +
 +
* '''vim /etc/suricata/suricata.yaml'''
 +
 +
%YAML 1.1
 +
---
 +
# Variablen für die Adressgruppen festlegen
 +
vars:
 +
  address-groups:
 +
    LAN: "[172.17.113.0/24]"
 +
    DMZ: "[10.88.113.0/24]"
 +
    SERVER: "[172.16.113.0/24]"
 +
    INT: "[$LAN,$DMZ,$SERVER]"
 +
    HOME_NET: "$INT"
 +
    EXTERNAL_NET: "!$INT"
 +
 +
# Standard-Log-Verzeichnis
 +
default-log-dir: /var/log/suricata/
 +
 +
# Statistiken aktivieren
 +
stats:
 +
  enabled: yes
 +
  interval: 8
 +
 +
# Ausgaben konfigurieren
 +
outputs:
 +
  - fast:
 +
      enabled: yes
 +
      filename: fast.log
 +
      append: yes
 +
  - alert-debug:
 +
      enabled: yes
 +
      filename: alert-debug.log
 +
      append: yes
 +
  - stats:
 +
      enabled: yes
 +
      filename: stats.log
 +
      append: yes
 +
      totals: yes
 +
      threads: no
 +
 +
# Logging-Einstellungen
 +
logging:
 +
  default-log-level: notice
 +
  outputs:
 +
  - console:
 +
      enabled: yes
 +
  - file:
 +
      enabled: yes
 +
      level: info
 +
      filename: suricata.log
 +
 +
# Netzwerkschnittstellen konfigurieren
 +
af-packet:
 +
  - interface: enp0s3
 +
    threads: auto
 +
    cluster-id: 97
 +
    cluster-type: cluster_flow
 +
    defrag: yes
 +
  - interface: enp0s8
 +
    threads: auto
 +
    cluster-id: 98
 +
    cluster-type: cluster_flow
 +
    defrag: yes
 +
  - interface: enp0s9
 +
    threads: auto
 +
    cluster-id: 99
 +
    cluster-type: cluster_flow
 +
    defrag: yes
 +
  - interface: enp0s10
 +
    threads: auto
 +
    cluster-id: 100
 +
    cluster-type: cluster_flow
 +
    defrag: yes
 +
 +
 +
# PID-Datei
 +
pid-file: /var/run/suricata.pid
 +
 +
# Coredump-Einstellungen
 +
coredump:
 +
  max-dump: unlimited
 +
 +
# Host-Modus
 +
host-mode: auto
 +
 +
# Unix-Befehlseingabe konfigurieren
 +
unix-command:
 +
  enabled: yes
 +
  filename: /var/run/suricata-command.socket
 +
 +
# Engine-Analyse-Einstellungen
 +
engine-analysis:
 +
  rules-fast-pattern: yes
 +
  rules: yes
 +
 +
# Defragmentierungseinstellungen
 +
defrag:
 +
  memcap: 32mb
 +
  hash-size: 65536
 +
  trackers: 65535
 +
  max-frags: 65535
 +
  prealloc: yes
 +
  timeout: 60
 +
 +
# Standardregelverzeichnis
 +
default-rule-path: /etc/suricata/rules
 +
 +
# Regel-Dateien
 +
rule-files:
 +
  - local.rules
 +
 +
# Klassifikationsdatei
 +
classification-file: /etc/suricata/classification.config
 +
 +
# Referenzkonfigurationsdatei
 +
reference-config-file: /etc/suricata/reference.config
 +
 
==Local Rules==
 
==Local Rules==
  
Zeile 14: Zeile 132:
 
* '''rm /var/run/suricata.pid'''
 
* '''rm /var/run/suricata.pid'''
 
* Stattdessen diesen Befehl verwenden  
 
* Stattdessen diesen Befehl verwenden  
* '''suricata -D --af-packet -c /etc/suricata/suricata.yml'''
+
* '''suricata -D --af-packet -c /etc/suricata/suricata.yaml'''
  
 
== Suricata stoppen ==
 
== Suricata stoppen ==

Aktuelle Version vom 24. April 2025, 15:45 Uhr

Suricata minimale Konfiguration

  • vim /etc/suricata/suricata.yaml
%YAML 1.1
---
# Variablen für die Adressgruppen festlegen
vars:
  address-groups:
    LAN: "[172.17.113.0/24]"
    DMZ: "[10.88.113.0/24]"
    SERVER: "[172.16.113.0/24]"
    INT: "[$LAN,$DMZ,$SERVER]"
    HOME_NET: "$INT"
    EXTERNAL_NET: "!$INT"

# Standard-Log-Verzeichnis
default-log-dir: /var/log/suricata/

# Statistiken aktivieren
stats:
  enabled: yes
  interval: 8

# Ausgaben konfigurieren
outputs:
  - fast:
      enabled: yes
      filename: fast.log
      append: yes
  - alert-debug:
      enabled: yes
      filename: alert-debug.log
      append: yes
  - stats:
      enabled: yes
      filename: stats.log
      append: yes
      totals: yes
      threads: no

# Logging-Einstellungen
logging:
  default-log-level: notice
  outputs:
  - console:
      enabled: yes
  - file:
      enabled: yes
      level: info
      filename: suricata.log

# Netzwerkschnittstellen konfigurieren
af-packet:
  - interface: enp0s3
    threads: auto
    cluster-id: 97
    cluster-type: cluster_flow
    defrag: yes
  - interface: enp0s8
    threads: auto
    cluster-id: 98
    cluster-type: cluster_flow
    defrag: yes
  - interface: enp0s9
    threads: auto
    cluster-id: 99
    cluster-type: cluster_flow
    defrag: yes
  - interface: enp0s10
    threads: auto
    cluster-id: 100
    cluster-type: cluster_flow
    defrag: yes


# PID-Datei
pid-file: /var/run/suricata.pid

# Coredump-Einstellungen
coredump:
  max-dump: unlimited

# Host-Modus
host-mode: auto

# Unix-Befehlseingabe konfigurieren
unix-command:
  enabled: yes
  filename: /var/run/suricata-command.socket

# Engine-Analyse-Einstellungen
engine-analysis:
  rules-fast-pattern: yes
  rules: yes

# Defragmentierungseinstellungen
defrag:
  memcap: 32mb
  hash-size: 65536
  trackers: 65535
  max-frags: 65535
  prealloc: yes
  timeout: 60

# Standardregelverzeichnis
default-rule-path: /etc/suricata/rules

# Regel-Dateien
rule-files:
  - local.rules

# Klassifikationsdatei
classification-file: /etc/suricata/classification.config

# Referenzkonfigurationsdatei
reference-config-file: /etc/suricata/reference.config

Local Rules

  • flow:to_server bei ICMP ist wichtig, damit ICMP nicht als IP-only verstanden wird
  • vim /etc/suricata/rules/local.rules
alert icmp any any -> any any (msg:"ICMP Test"; flow:to_server; sid:1;)
alert tcp any any -> any any (flags: S; msg: "SYN packet"; sid:2;)

Suricata starten

  • Der Systemd Service ist leider verbuggt
  • manchmal muss die PID File manuell gelöscht werden bevor es starten kann
  • rm /var/run/suricata.pid
  • Stattdessen diesen Befehl verwenden
  • suricata -D --af-packet -c /etc/suricata/suricata.yaml

Suricata stoppen

  • Suricata kann über einen UNIX Socket gesteuert werden
  • Ein Python-Interface dafür bietet suricatasc
  • suricatasc -c shutdown
  • suricatasc -c reload-rules

check

  • tail -f /var/log/suricata/fast.log