🎯 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 :

1 Présentation de Suricata

Qu’est-ce que Suricata ?

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 :


📚 Ressources complémentaires


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Tutoriel Suricata v1.0