Mettre en place un IDS avec Suricata, collecter les logs avec Filebeat et les visualiser dans Wazuh (OpenSearch Dashboards).
sudo dnf install epel-release -y
sudo dnf install suricata -y
suricata -V
af-packet:
- interface: ens224
cluster-id: 99
default-rule-path: /etc/suricata/rules
rule-files:
- test.rules
/etc/suricata/rules/test.rules) :alert icmp any any -> any any (msg:"ICMP test alert"; sid:1000001; rev:1;)
alert tcp any any -> any any (flags:S; msg:"[TEST] TCP SYN Scan detected"; sid:1000002; rev:1;)
alert http any any -> any any (msg:"[TEST] HTTP request with curl User-Agent"; content:"User-Agent: curl"; http_header; sid:1000003; rev:1;)
alert udp any any -> any 53 (msg:"[TEST] DNS Request to port 53"; sid:1000004; rev:1;)
sudo suricata -T -c /etc/suricata/suricata.yaml
sudo chown -R suricata:suricata /var/log/suricata
sudo chmod 644 /etc/suricata/*.config /etc/suricata/rules/test.rules
Copier les fichiers manquants si besoin :
sudo cp /usr/share/suricata/*.config /etc/suricata/
sudo systemctl enable --now suricata
sudo journalctl -u suricata -f
/etc/filebeat/filebeat.yml) :filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/suricata/eve.json
json.keys_under_root: true
json.add_error_key: true
setup.kibana:
host: "https://<IP>:443"
ssl.verification_mode: none
output.elasticsearch:
hosts: ["https://<IP>:9200"]
username: "admin"
password: "motdepasse"
ssl.verification_mode: none
setup.ilm.enabled: false
setup.template.enabled: false
setup.license.check: false
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
sudo systemctl enable --now filebeat
filebeat-* avec le champ @timestamp.@timestampterms sur alert.signature.keywordsudo journalctl -u suricata -f
eve.json est rempli :
tail -f /var/log/suricata/eve.json
eve.json :
sudo rm /var/lib/filebeat/registry/filebeat/*
sudo systemctl restart filebeat
{"timestamp":"2025-04-19T20:00:25.157762+0200","event_type":"alert","src_ip":"192.168.31.200","src_port":2449,"dest_ip":"104.18.32.47","dest_port":443,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":1000002,"rev":1,"signature":"[TEST] TCP SYN Scan detected","severity":3}}
.ndjson