Suricata
Prinzip
Suricata ist ein IDS(Intrusion Detection System) bzw. IPS(Intrusion Prevention System) System das nach folgendem Prinzip funktioniert
Empfang
- Pakete werden vom Netzwerk gelesen.
- Durch abhören einer Schnittstelle (IDS)
- oder
- Übergabe durch den Firewall Stack (IPS)
Decodierung
Die Pakete werden decodiert und der Original-Datenstrom wird restauriert.
Analyse
Der Datenstrom wird mit den hinterlegten Signaturen verglichen.
Output
- Auftretene Alarmierungen werden verarbeitet. (IDS)
- Bei Treffern können die Pakete verworfen (IPS).
Multitreadverarbeitung durch Suricata
Bild: Alexander Hosfeld Lizenz(en): Creative Commons Namensnennung
Installation
- sudo apt update
- sudo apt -y install suricata
Install Rules
- wget http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
- tar zxvf emerging.rules.tar.gz
- cd rules
- cat *.rules > /etc/suricata/rules/suricata.rules
Suricata config
- add to /etc/suricata/suricata.yaml
rule-files:
- suricata.rules - local.rules
Schaubild
- suricata
- WANDEV=enp0s3
- LANDEV=enp0s8
IDS
Local Rules
- cat /etc/suricata/rules/local.rules
alert icmp any any -> any any (msg:"ICMP Test"; sid:1000000002;) alert tcp any any -> any any (flags: S; msg: "SYN packet"; sid:100000003;)
Start suricata
- suricata -i eth1
check
- tail -f /var/log/suricata/fast.log
IPS
Local Rules
- cat /etc/suricata/rules/local.rules
drop icmp any any -> 1.1.1.1 any (msg:"DROP Test"; sid:1000000001;) alert icmp any any -> any any (msg:"ICMP Alert Test"; sid:1000000002;)
Start suricata
- suricata -q0
Send all Forward Packets to suricata
- iptables -I FORWARD -i $WAN -o eth1 -j NFQUEUE
Links
- https://www.pro-linux.de/artikel/2/1751/suricata-einbruchserkennung-mit-dem-erdm%C3%A4nnchen.html
- https://www.howtoforge.com/tutorial/suricata-with-elk-and-web-front-ends-on-ubuntu-bionic-beaver-1804-lts/
- https://suricata.readthedocs.io/en/suricata-4.1.0/index.html
- https://suricata.readthedocs.io/en/suricata-5.0.3/setting-up-ipsinline-for-linux.html?highlight=inline

