Suricata/Konfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Konfiguration ==
== Konfiguration ==
; Die Konfiguration von Suricata erfolgt im Verzeichnis ''/etc/suricata/''
; ''/etc/suricata/''
* Dort sollte mindestens die Datei ''suricata.yaml'' zu finden sein, die die Hauptkonfiguration beinhaltet
* Dort sollte mindestens die Datei ''suricata.yaml'' zu finden sein, die die Hauptkonfiguration beinhaltet
* Je nach eingesetzter Distribution kann der Dateiname auch anders lauten
 
; Je nach eingesetzter Distribution kann der Dateiname auch anders lauten
* Bei Debian und Ubuntu etwa findet man die Konfiguration in ''/etc/suricata/suricata-debian.yaml''
* Bei Debian und Ubuntu etwa findet man die Konfiguration in ''/etc/suricata/suricata-debian.yaml''
* Hier lässt sich nicht nur das Regelwerk und die Einbindung von Netzwerkschnittstellen konfigurieren, sondern auch die Paketanalyse steuern
* Hier lässt sich nicht nur das Regelwerk und die Einbindung von Netzwerkschnittstellen konfigurieren, sondern auch die Paketanalyse steuern
Zeile 8: Zeile 9:
; Suricata zieht zur Paketanalyse verschiedene Variablen heran und nutzt diese Informationen bei der Frage, welche Regeln für das aktuelle Paket überhaupt in Betracht kommen
; Suricata zieht zur Paketanalyse verschiedene Variablen heran und nutzt diese Informationen bei der Frage, welche Regeln für das aktuelle Paket überhaupt in Betracht kommen
* Wozu sollte man auch ein Paket auf eine Vielzahl von Angriffsmustern für Webserver analysieren, wenn auf der IP-Adresse gar kein Webserver horcht?  
* Wozu sollte man auch ein Paket auf eine Vielzahl von Angriffsmustern für Webserver analysieren, wenn auf der IP-Adresse gar kein Webserver horcht?  
* Es geht also darum, Suricata das zu schützende Netz möglichst genau zu beschreiben.
* Es geht also darum, Suricata das zu schützende Netz möglichst genau zu beschreiben


; Allen voran ist hier die wichtigste Variable <tt>HOME_NET</tt> zu nennen.
; Allen voran ist hier die wichtigste Variable <tt>HOME_NET</tt> zu nennen
* Diese Variable gibt den Adressbereich an, der durch das IDS geschützt werden soll, und kann eine einzelne IP-Adresse oder ein Netzwerkbereich sein.  
* Diese Variable gibt den Adressbereich an, der durch das IDS geschützt werden soll, und kann eine einzelne IP-Adresse oder ein Netzwerkbereich sein.  
* In einer üblichen kleineren Netzwerktopologie wird man hier in der Praxis das LAN und vielleicht eine externe IP-Adresse finden.  
* In einer üblichen kleineren Netzwerktopologie wird man hier in der Praxis das LAN und vielleicht eine externe IP-Adresse finden.  
Zeile 44: Zeile 45:
   host-os-policy:  ..                    # according to the OS running the ips
   host-os-policy:  ..                    # according to the OS running the ips
   magic-file: /usr/share/file/misc/magic.mgc
   magic-file: /usr/share/file/misc/magic.mgc


== Starting Suricata ==
== Starting Suricata ==

Version vom 18. März 2023, 09:00 Uhr

Konfiguration

/etc/suricata/
  • Dort sollte mindestens die Datei suricata.yaml zu finden sein, die die Hauptkonfiguration beinhaltet
Je nach eingesetzter Distribution kann der Dateiname auch anders lauten
  • Bei Debian und Ubuntu etwa findet man die Konfiguration in /etc/suricata/suricata-debian.yaml
  • Hier lässt sich nicht nur das Regelwerk und die Einbindung von Netzwerkschnittstellen konfigurieren, sondern auch die Paketanalyse steuern
Suricata zieht zur Paketanalyse verschiedene Variablen heran und nutzt diese Informationen bei der Frage, welche Regeln für das aktuelle Paket überhaupt in Betracht kommen
  • Wozu sollte man auch ein Paket auf eine Vielzahl von Angriffsmustern für Webserver analysieren, wenn auf der IP-Adresse gar kein Webserver horcht?
  • Es geht also darum, Suricata das zu schützende Netz möglichst genau zu beschreiben
Allen voran ist hier die wichtigste Variable HOME_NET zu nennen
  • Diese Variable gibt den Adressbereich an, der durch das IDS geschützt werden soll, und kann eine einzelne IP-Adresse oder ein Netzwerkbereich sein.
  • In einer üblichen kleineren Netzwerktopologie wird man hier in der Praxis das LAN und vielleicht eine externe IP-Adresse finden.
  • Also z.B. HOME_NET: "[192.168.0.0/16,1.2.3.4]".
  • Das Hinzufügen der externen IP-Adresse hat den Vorteil, dass potentielle Angriffe auf das Suricata-System selbst ebenfalls erkannt werden.
  • Ist das Suricata-System auch das Gateway für das interne Netz, sollte die externe IP-Adresse auf jeden Fall in das HOME_NET aufgenommen werden, da aufgrund von SNAT-Techniken (IP-Maskierung) sonst einige Angriffsmuster nicht als solche erkannt werden.
Die Variable EXTERNAL_NET gibt an, welche IP-Adressen nicht zum lokalen Netzwerk gehören.
  • Die Standardeinstellung ist auf EXTERNAL_NET: "!$HOME_NET" vorgegeben.
  • Demnach wird alles als extern und potentiell böswillig angesehen, was nicht zum internen Netz gehört.
Neben HOME_NET und EXTERNAL_NET können eine Reihe weiterer Angaben gemacht werden, die eine noch gezieltere Auswertung möglich machen und z.B.
  • die Erkennung von protokollspezifischen Mustern auf einzelne IP-Adressen beschränkt.
  • Wenn z.B. bekannt ist, dass der einzige zu überwachende Webserver die IP-Adresse 192.168.1.100 hat, dann kann auch die Detektion von webbasierten Angriffen auf diese IP-Adresse beschränkt werden.
  • Selbiges gilt entsprechend für DNS-, SQL-, Telnet-Server und analog für *_CLIENT</nowiki>- und <nowiki>*_PORTS-Variablen.
  • Selbst der vom Betriebssystem abhängige Umgang mit fragmentierten Paketen lässt sich Suricata mitteilen – vorausgesetzt, der Adressbereich für verschiedene Betriebssysteme im lokalen Netz ist hinreichend stark fragmentiert:
host-os-policy:
 windows: [0.0.0.0/0]         # Default
 bsd: [192.168.1.1]           # Gateway 
 linux: [192.168.1.128/25, 192.168.1.100]    # Linux Webservers
Bei allen von Suricata genutzten Variablen gilt

Je genauer diese sind, desto performanter ist der Analyse-Prozess und desto weniger falsch-positive Meldungen treten auf.

Dateien

The main configuration file is /etc/suricata/suricata.yaml
You should change the following parts of the configuration in order to make it run
 default-log-dir: /var/log/suricata/     # where you want to store log files
 classification-file: /etc/suricata/classification.config
 reference-config-file: /etc/suricata/reference.config
 HOME_NET: "[10.0.0.0/8]"                # your local network
 host-os-policy:   ..                    # according to the OS running the ips
 magic-file: /usr/share/file/misc/magic.mgc

Starting Suricata

Manual startup

You may start the suricata service manually with:

# /usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0
systemd service configuration

To start Suricata automatically at system boot, enable suricata.service