đŻ TUTORIEL PAS Ă PAS
đĄïž Installation et configuration de Suricata
đ
Mis à jour : Août 2026
â±ïž DurĂ©e : 45 min
đ Niveau : IntermĂ©diaire / AvancĂ©
đ§ Debian 13
đł Docker
đĄïž Suricata
Suricata est un moteur dâanalyse rĂ©seau open-source, haute performance, capable
dâeffectuer de lâIDS (Intrusion Detection System), de lâIPS
(Intrusion Prevention System) et de lâanalyse de sĂ©curitĂ© rĂ©seau (NSM). Il utilise des
rÚgles (similaires à Snort) pour détecter les menaces, et peut analyser
le trafic en temps réel ou sur des fichiers PCAP.
đ Ce tutoriel couvre :
- Lâinstallation sur Debian 13 (bare-metal).
- Lâinstallation via Docker (conteneur lĂ©ger).
- La configuration avancée (rÚgles, fichiers de logs, modes IDS/IPS).
- Le test et la validation de lâinstallation.
1 Présentation de Suricata
Quâest-ce que Suricata ?
- Moteur IDS/IPS : détection et prévention des intrusions.
- Multi-threadé : conçu pour les réseaux à haut débit.
- Compatibilité : utilise les rÚgles Snort (VRT) et Emerging Threats.
- Analyse avancée : protocoles (HTTP, TLS, SSH, etc.), file extraction, TLS fingerprinting.
- Mode IPS : peut bloquer activement le trafic malveillant (avec Netfilter ou NFQUEUE).
2 Installation sur Debian 13
2.1 â Mise Ă jour du systĂšme
$ sudo apt update && sudo apt upgrade -y
2.2 â Installation du paquet Suricata
Sur Debian 13, Suricata est disponible dans les dépÎts officiels.
$ sudo apt install suricata -y
â
Suricata est installé. Vérifiez la version : suricata --version.
2.3 â Installation des rĂšgles (Emerging Threats)
TĂ©lĂ©chargez les rĂšgles open-source dâEmerging Threats pour une protection de base.
$ sudo suricata-update
â
Les rÚgles sont téléchargées et installées dans /var/lib/suricata/rules/.
đĄ Astuce : Pour des rĂšgles plus complĂštes, vous pouvez utiliser suricata-update --enable-source oisf/trafficid.
2.4 â Configuration de lâinterface rĂ©seau
Identifiez lâinterface rĂ©seau Ă surveiller (ex: eth0, ens192).
$ ip a
Modifiez le fichier de configuration /etc/suricata/suricata.yaml pour dĂ©finir lâinterface.
$ sudo nano /etc/suricata/suricata.yaml
# Recherchez la section "af-packet" ou "pcap" et dĂ©finissez lâinterface
af-packet:
- interface: eth0
cluster-id: 99
cluster-type: cluster_flow
defrag: yes
use-mmap: yes
tpacket-v3: yes
đ Explication : Le mode af-packet est plus performant que pcap sur Linux.
Il permet une capture Ă haute vitesse avec peu de latence.
2.5 â Test de la configuration
Vérifiez que la configuration est correcte.
$ sudo suricata -T -c /etc/suricata/suricata.yaml
â
Si tout est correct, vous verrez Configuration provided passed validation.
2.6 â DĂ©marrage du service
$ sudo systemctl enable suricata
$ sudo systemctl start suricata
$ sudo systemctl status suricata
â
Suricata est actif. Les logs sont dans /var/log/suricata/.
2.7 â Visualisation des alertes
Consultez le fichier dâalertes en temps rĂ©el pour voir les dĂ©tections.
$ sudo tail -f /var/log/suricata/fast.log
3 Installation via Docker
Lâapproche conteneurisĂ©e est idĂ©ale pour une isolation rapide, des tests ou un dĂ©ploiement
sans dépendances systÚme.
3.1 â PrĂ©requis
Assurez-vous que Docker et Docker Compose sont installés.
3.2 â CrĂ©er le rĂ©pertoire du projet
$ mkdir -p ~/suricata-docker && cd ~/suricata-docker
3.3 â CrĂ©er le fichier docker-compose.yml
$ nano docker-compose.yml
---
services:
suricata:
image: jasonish/suricata:latest
container_name: suricata
restart: always
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
- SYS_NICE
volumes:
- ./rules:/var/lib/suricata/rules
- ./logs:/var/log/suricata
- ./suricata.yaml:/etc/suricata/suricata.yaml:ro
command: -i eth0
đ Explication :
network_mode: host : permet de capturer le trafic rĂ©seau de lâhĂŽte.
cap_add : ajoute les capacités nécessaires à la capture réseau.
volumes : persiste les rĂšgles, les logs et la configuration.
command: -i eth0 : interface Ă surveiller.
3.4 â CrĂ©er un fichier de configuration personnalisĂ©
Si vous souhaitez personnaliser la configuration, créez un fichier suricata.yaml.
$ nano suricata.yaml
Vous pouvez utiliser la configuration par dĂ©faut ou lâadapter Ă vos besoins.
3.5 â TĂ©lĂ©chargement des rĂšgles et dĂ©marrage
$ mkdir -p rules logs
$ docker compose run --rm suricata suricata-update
$ docker compose up -d
â
Le conteneur Suricata est démarré et analyse le trafic.
3.6 â Consultation des logs
$ docker compose logs -f
Les alertes sont disponibles dans le volume ./logs/fast.log.
4 Configuration avancée
4.1 â Mode IPS (PrĂ©vention)
Pour activer le mode IPS, Suricata doit ĂȘtre configurĂ© pour bloquer le trafic malveillant.
Cela nĂ©cessite gĂ©nĂ©ralement lâutilisation de NFQUEUE.
# Dans suricata.yaml, activer le mode IPS
af-packet:
- interface: eth0
cluster-id: 99
cluster-type: cluster_flow
defrag: yes
use-mmap: yes
tpacket-v3: yes
mode: IPS
# Pour le mode IPS, ajouter :
# copy-mode: ips
# copy-iface: eth1 (interface de sortie)
â ïž Attention : Le mode IPS est plus intrusif et nĂ©cessite une configuration rĂ©seau adaptĂ©e
(bridge, redirection de paquets, etc.). Testez-le dâabord en environnement de laboratoire.
4.2 â Ajout de rĂšgles personnalisĂ©es
Vous pouvez ajouter vos propres rĂšgles dans le fichier /etc/suricata/rules/local.rules.
# Exemple de rĂšgle : alerter sur un scan de port
alert tcp $HOME_NET any -> $EXTERNAL_NET 1:1024 (msg:"Port Scan détecté"; flags:S; threshold: type both, track by_src, count 10, seconds 10; sid:1000001; rev:1;)
đĄ Astuce : Utilisez suricata-update pour intĂ©grer vos rĂšgles locales.
suricata-update --local /etc/suricata/rules/local.rules
4.3 â Export des logs vers un systĂšme externe
Suricata peut exporter ses alertes au format EVE JSON pour une intégration avec
un SIEM (ex: Elasticsearch, Graylog).
# Dans suricata.yaml
outputs:
- eve-log:
enabled: yes
filetype: regular
filename: eve.json
types:
- alert
- http
- dns
- tls
â
Test de validation
đ Installation rĂ©ussie si :
- Suricata est en cours dâexĂ©cution (
systemctl status suricata ou docker compose ps).
- Des alertes sont générées dans
/var/log/suricata/fast.log (ou ./logs/fast.log pour Docker).
- La commande
suricata --version affiche la version installée.
- Les rÚgles sont chargées et appliquées (vérifiez
suricata -T -c /etc/suricata/suricata.yaml).
đ Ressources complĂ©mentaires