Comment installer Suricata sur Ubuntu pour sécuriser votre réseau
Les systèmes de détection d’intrusion (IDS) et de prévention d’intrusion (IPS) permettent d’empêcher les cybercriminels d’infiltrer votre serveur. Ces outils de sécurité réseau bloquent automatiquement le trafic et déclenchent des alertes lorsqu’ils détectent une activité malveillante.
Dans un serveur privé virtuel Ubuntu (VPS), Suricata est une solution IDS et IPS très répandue. En plus d’être open-source, cette surveillance du trafic réseau est disponible pour différents systèmes d’exploitation, dont Windows et Linux.
Dans cet article, nous allons vous expliquer comment installer Suricata sur Ubuntu afin d’améliorer la sécurité de votre réseau. Vous apprendrez également à modifier les paramètres par défaut et à définir de nouvelles règles de détection adaptées aux pratiques de sécurité de votre VPS.
Sommaire
Conditions préalables
Bien que Suricata ne mentionne pas ses exigences matérielles minimales, nous recommandons un minimum de 2 cœurs de CPU et 4 Go de RAM pour garantir des performances optimales.
Si vous n’avez pas de plan d’hébergement VPS, nous vous recommandons de commencer avec le plan KVM 2 d’Hostinger et de le mettre à niveau si nécessaire.
Ce plan est idéal car ses 2 cœurs vCPU et ses 8 Go de RAM offrent une marge de manœuvre suffisante pour héberger d’autres applications tout en restant abordable, puisqu’il coûte €5.99/mois.
Pour le système d’exploitation, assurez-vous que votre VPS supporte Ubuntu 22.04 ou une version plus récente. Les versions plus anciennes peuvent être incompatibles avec la dernière version de Suricata.
Les utilisateurs de Hostinger peuvent utiliser le programme d’installation en un clic de hPanel pour passer à d’autres systèmes d’exploitation. Pour ce faire, allez dans le menu latéral de votre VPS → OS & Panel → Système d’exploitation → OS simple. Sélectionnez la dernière version d’Ubuntu et cliquez sur Changer l’OS.
L’installation de Suricata nécessite également les privilèges de root ou de superutilisateur pour exécuter les commandes Linux. Pour éviter les problèmes d’autorisation et garantir un processus d’installation en ligne de commande fluide, choisissez un fournisseur d’hébergement VPS disposant d’un accès complet au serveur, comme Hostinger.
Outre une compatibilité étendue, les meilleurs fournisseurs d’hébergement VPS doivent offrir un temps de disponibilité fiable et diverses fonctionnalités. Par exemple, Hostinger propose un Assistant IA, qui vous permet de simplifier les tâches en saisissant différents prompts IA pour la gestion du VPS.
Nous fournissons également un terminal de navigateur qui vous permet de vous connecter à votre système Ubuntu sans utiliser un client SSH comme PuTTY. Pour accéder à votre VPS à distance, utilisez les identifiants de connexion dans l’onglet Accès SSH du menu Aperçu général.
Important ! Par défaut, vous vous connecterez en tant qu’utilisateur root. Nous vous recommandons de passer à un autre compte disposant des privilèges de superutilisateur afin d’éviter d’exécuter accidentellement des commandes destructrices
Tous nos plans d’hébergement VPS offrent une garantie de disponibilité de 99,9 % et une garantie de remboursement de 30 jours.
Comment installer Suricata sur Ubuntu
Dans cette section, nous allons expliquer les étapes pour installer Suricata sur un VPS fonctionnant sous Ubuntu 22.04. Si vous souhaitez l’installer sur un hôte passerelle pour analyser le trafic réseau entrant et sortant, vous aurez peut-être besoin d’étapes supplémentaires, comme la modification des règles du pare-feu.
1. Mettre à jour les paquets Ubuntu
Avant d’installer Suricata, mettez à jour APT pour vous assurer de recevoir la dernière version locale. Cette étape permet également d’appliquer les derniers correctifs pour d’autres paquets système afin d’améliorer la sécurité et d’éviter les problèmes d’incompatibilité.
Pour dresser la liste des mises à jour de paquets système disponibles dans votre référentiel APT, exécutez la commande suivante :
sudo apt update
Cette commande permet d’installer les mises à jour de tous les paquets du système :
sudo apt upgrade
Le processus peut prendre quelques minutes ou quelques heures, en fonction de la taille totale de la mise à jour et de votre vitesse Internet.
2. Installer Suricata
Il existe plusieurs méthodes pour installer Suricata sur Ubuntu. Dans cette section, nous expliquerons les trois méthodes les plus courantes, en commençant par la plus simple.
Installer Suricata à l’aide d’APT
Utilisez cette commande pour installer Suricata sur Ubuntu en utilisant le dépôt APT local :
sudo apt install -y suricata
Pour vérifier si Suricata est correctement installé, vérifiez son numéro de version à l’aide de cette commande :
suricata -V
Important ! Veillez à respecter les majuscules lors de la saisie des commandes, car celles-ci sont sensibles à la casse.
Vous pouvez également lister les paquets installés sur Ubuntu à l’aide de la commande apt list et filtrer Suricata à l’aide de grep comme suit :
sudo apt list --installed | grep suricata
Notez que cette méthode peut installer une version plus ancienne puisque vous utilisez le dépôt local du gestionnaire de paquets APT.
Installer Suricata à l’aide de paquets binaires
Pour installer la dernière version stable, importez le dépôt de l’Open Information Security Foundation (OISF) depuis le serveur Suricata. Pour ce faire, exécutez les commandes suivantes :
sudo apt install software-properties-common
sudo add-apt-repository ppa:oisf/suricata-stable
Appuyez sur Entrée si le terminal demande une confirmation. Après avoir importé le référentiel, mettez à jour APT et décompressez le logiciel avec cette commande :
sudo apt install suricata
Si vous utilisez d’autres dérivés de Debian, utilisez le dépôt backports pour obtenir la dernière version stable. Référez-vous au guide d’installation des paquets binaires Suricata pour en savoir plus.
Installer Suricata à l’aide des fichiers de distribution des sources
L’installation de Suricata à partir des fichiers de distribution des sources vous permet de configurer les paramètres d’installation. Cependant, vous devrez installer plusieurs dépendances et divers en-têtes de développement.
Après avoir installé les dépendances de Suricata, exécutez les commandes suivantes :
tar xzvf suricata-6.0.0.tar.gz
cd suricata-6.0.0
./configure
make
make install
3. Configurer Suricata
Le package Suricata inclut un fichier de configuration YAML permettant d’ajuster les paramètres et le comportement de l’outil. Vous pouvez l’éditer en utilisant un éditeur de texte comme nano :
sudo nano /etc/suricata/suricata.yaml
Le fichier suricata.yaml contient plusieurs paramètres que vous pouvez ajuster. Voici les plus courants :
- Configuration de l’interface. Détermine la méthode et l’interface réseau pour capturer le paquet. Certains paramètres sont af;-packets, af-xdp et pcap.
- Logging. Modifie l’endroit où Suricata enregistre la détection du réseau, son format et le niveau d’alerte. Vous pouvez modifier les paramètres via le paramètre outputs.
- Fichier PID. Définit le fichier d’identification du processus (PID) permettant d’exécuter Suricata en tant que démon ou service. Déterminez son nom et son répertoire dans le paramètre pid-files.
- Règles de détection. Définit les fichiers contenant les règles de filtrage de paquets et leur emplacement. Les paramètres sont respectivement default-rule-path et rule-files.
- Taille des paquets. Modifie la taille maximale des paquets traités par Suricata et transmis par votre réseau. Spécifiez la valeur byte dans les paramètres max-pending-packet et default-packet-size.
- ID de flux de communauté. Identifie le flux du réseau Suricata pour permettre l’intégration avec un autre outil comme Zeek. Le paramètre community-id est défini par défaut sur false.
Modifiez les configurations et appuyez sur Ctrl + X, Y et Entrée pour enregistrer les modifications. Pour rechercher rapidement un paramètre spécifique, utilisez le raccourci Ctrl + W pour activer la fonction de recherche.
En plus de lire les instructions fournies, consultez la documentation du fichier de configuration de Suricata pour en savoir plus sur les paramètres. Pour les paramètres commentés tels que community-id, supprimez le symbole de hachage (#) au début pour les activer.
4. Activer les interfaces réseau
Pour traiter le trafic réseau et empêcher les paquets malveillants d’endommager votre système, Suricata doit surveiller une interface.
Par défaut, Suricata ne suit pas la connectivité depuis et vers votre serveur. Les utilisateurs doivent spécifier l’interface réseau à surveiller et déterminer la méthode de capture des paquets via le fichier YAML.
Par exemple, nous voulons utiliser la méthode de capture af-packet et surveiller l’interface réseau venet0. Voici à quoi ressemble la configuration :
af-packet: - interface: venet0
Entrez cette commande pour afficher l’interface par défaut et d’autres informations de routage :
ip -p -j route show
Définissez la méthode de capture de paquets en fonction de vos besoins. Par exemple, af-packet convient au suivi du réseau en direct, tandis que pcap est idéal pour l’analyse hors ligne.
Pour surveiller plusieurs interfaces réseau, ajoutez ces nouvelles lignes au bas de la section méthode de capture. Veillez à ce que le cluster-ID soit unique :
- interface: interface name cluster-id: 29
5. Démarrer Suricata
Activez le service Suricata à l’aide de la commande systemctl pour le faire fonctionner en arrière-plan :
sudo systemctl start suricata
Pour vérifier s’il fonctionne correctement, exécutez la commande suivante :
sudo systemctl status suricata
Si le service Suricata est en cours d’exécution, le terminal devrait afficher les états loaded et active comme suit.
N’oubliez pas de toujours redémarrer le service Suricata après avoir modifié le fichier de configuration afin de vous assurer que les nouveaux paramètres s’appliquent correctement. Voici la commande :
sudo systemctl restart suricata
Vous pouvez également arrêter Suricata et le relancer à l’aide de la commande systemctl start. Pour mettre fin au démon, entrez ce qui suit :
sudo systemctl stop suricata
6. Automatiser le démarrage de Suricata
L’automatisation du démarrage de Suricata permet de maintenir une sécurité VPS optimale puisque vous n’avez pas besoin de le réactiver manuellement après le redémarrage du système. Cela permet d’améliorer l’efficacité de la gestion du serveur.
Pour ce faire, créez un nouveau fichier d’unité de service systemd pour déployer automatiquement Suricata au démarrage du serveur à l’aide de la commande suivante :
sudo nano /etc/systemd/system/suricata.service
Dans le fichier de l’unité de service, saisissez les lignes suivantes :
# Define the Suricata systemd unit [Unit] Description=Suricata IDS/IPS After=network.target # Specify the Suricata binary path, the configuration files location, and the network interface [Service] ExecStart=/usr/bin/suricata -c /etc/suricata/suricata.yaml -i venet0 [Install] WantedBy=default.target
Appuyez sur Ctrl + X, Y et Entrée pour enregistrer les modifications. Exécutez la commande suivante pour permettre à Suricata de se charger automatiquement au démarrage du système :
sudo systemctl enable suricata
Ensuite, lancez la commande systemctl start pour démarrer Suricata. Vérifiez l’état du service pour vous assurer qu’il fonctionne.
Si Terminal renvoie l’erreur “No rule files match“, il se peut que Suricata ne soit pas en mesure de charger les règles de surveillance du réseau. Pour résoudre ce problème, exécutez suricata-update pour actualiser le chemin d’accès au répertoire.
Ensuite, ouvrez le fichier suricata.yaml et modifiez les règles de configuration, comme suit :
default-rule-path: /var/lib/suricata/rules
rule-files: - suricata.rules
Enregistrez le fichier et redémarrez le service pour appliquer les modifications.
7. Tester la fonctionnalité de Suricata
Après avoir démarré Suricata, validez son fichier de configuration pour vous assurer que l’outil fonctionne. La façon la plus simple de le faire est d’utiliser la commande de test intégrée :
sudo suricata -T -c /etc/suricata/suricata.yaml -v
L’option -T vous permet d’exécuter le mode test de Suricata, et l’option -c vous permet de trouver le fichier de configuration dans le chemin spécifié. En outre, l’option -v active le mode verbeux, qui fournit des détails sur l’exécution de la commande, y compris les erreurs.
Si vous avez de nombreuses règles et un nombre limité de threads CPU, le processus sera plus long mais ne devrait pas dépasser quelques minutes. Le terminal imprimera les journaux de test comme suit.
Au cours de cette étape, recherchez le message d’avertissement indiquant une mauvaise configuration dans votre fichier YAML. Pour simplifier le dépannage, nous vous recommandons de demander des solutions à notre Assistant VPS IA.
Ensuite, vérifiez les règles de Suricata pour vous assurer qu’elles détectent correctement le trafic malveillant. Le guide de démarrage rapide de Suricata recommande d’utiliser la règle ET Open numéro 2100498 et de se connecter à une URL de test à l’aide de la commande curl :
curl http://testmynids.org/uid/index.html
La commande enverra une requête HTTP pour déclencher la règle d’alerte. Ensuite, Suricata génère des événements dans les fichiers eve.json et fast.log concernant le trafic détecté.
Vérifiez si Suricata marque la requête HTTP comme un trafic potentiellement malveillant dans le fichier fast.log. Pour ce faire, exécutez l’utilitaire grep pour filtrer le numéro d’identification de la règle :
grep 2100498 /var/log/suricata/fast.log
La sortie devrait montrer un log étiquetant le paquet comme “Potentially Bad Traffic” (Trafic potentiellement mauvais).
Le log eve formatant ses entrées au format JSON, son analyse nécessite l’utilisation de l’utilitaire jq. Sautez cette étape si vous avez installé l’utilitaire. Sinon, exécutez ce qui suit :
sudo apt install jq
Ensuite, entrez la commande suivante pour filtrer les entrées du fichier journal en fonction de l’ID de la signature et du type d’alerte :
jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json
Vous devriez voir l’ID de la règle et la même catégorie “Potentially Bad Traffic“. Cela signifie que Suricata a fait correspondre le trafic de votre réseau avec la règle de détection correcte.
Ces journaux sont utiles pour la gestion des alertes et la surveillance de la sécurité du réseau. Par exemple, vous pouvez bloquer les sources de trafic suspectes dans le pare-feu non compliqué (UFW) d’Ubuntu ou dans iptables.
8. Mettre à jour les règles de Suricata
Suricata détecte les paquets suspects à l’aide de signatures ou de règles définies par l’utilisateur. Il en inclut certaines par défaut, mais elles peuvent s’avérer insuffisantes si votre serveur reçoit du trafic en provenance de nombreuses sources.
Pour ajouter de nouvelles règles, récupérez des ensembles de règles supplémentaires auprès de divers fournisseurs tiers. Si certains d’entre eux sont gratuits, d’autres peuvent demander un abonnement. Pour les répertorier, exécutez la commande suivante :
sudo suricata-update list-sources
Vous verrez les fournisseurs, les résumés, les licences et les informations sur les abonnements. Pour importer un jeu de règles, exécutez la commande suivante :
sudo suricata-update enable-source provider-name
Remplacez l’espace réservé au provider-name par la source de ruleset de votre choix. Par exemple, exécutez ceci pour récupérer sslbl/ja3-fingerprints :
sudo suricata-update enable-source sslbl/ja3-fingerprints
Ensuite, exécutez à nouveau la commande suricata-update pour mettre à jour et valider les fichiers de règles dans le répertoire /etc/suricata/rules. Si vous n’ajoutez pas de source externe, la mise à jour de Suricata récupérera les règles par défaut d’ET OPEN.
Après avoir mis à jour la source ET OPEN par défaut, vous verrez que Suricata a traité l’inspection de la packet payload signature et les ip-only rules.
Le message de mise à jour doit se terminer par un nettoyage de la structure de regroupement des signatures. Si vous êtes à jour, Terminal affichera “No changes detected, exiting.“
Nous vous recommandons d’exécuter régulièrement l’outil de mise à jour Suricata pour vous assurer que votre système reçoit la règle la plus récente. L’application de la méthode de détection la plus récente permet de maintenir une sécurité optimale sur les serveurs Ubuntu.
Si vous le souhaitez, vous pouvez utiliser les outils de gestion des règles de Suricata tels que Pulledpork et Oinkmaster pour affiner la méthode de détection. Utilisez nano pour modifier le fichier :
sudo nano /etc/suricata/rules/rule_name.rules
La syntaxe des règles de Suricata est la suivante :
action protocol source-ip/port -> destination-ip/port (options; options; ... )
Voici la signification de chaque paramètre et les valeurs acceptées :
- action. Action à entreprendre lorsque la condition de la règle est remplie. Les valeurs possibles sont : drop, alert et log.
- protocol. Protocole réseau surveillé, notamment TCP, UDP, ICMP ou IP.
- source-ip/port. L’IP et le port d’où provient le trafic.
- destination-ip/port. L’IP et le port sur lesquels la règle s’applique.
- (options ; options ; …). Mots clés déterminant des paramètres ou des conditions supplémentaires.
Pour en savoir plus sur ces paramètres et les options possibles, consultez la documentation sur les règles de Suricata.
Conclusion
Suricata est un système IDS et IPS open-source qui aide à empêcher le trafic malveillant d’infiltrer votre serveur afin d’améliorer la sécurité de votre système. Il fonctionne en détectant et en éliminant le trafic suspect sur la base d’une règle.
Dans cet article, nous avons expliqué la configuration de Suricata sur Ubuntu 22.04 ou plus récent. Après avoir installé la distribution et obtenu l’accès root à votre serveur via SSH, suivez les étapes suivantes :
- Mettez à jour les paquets Ubuntu. Exécutez les commandes apt update et apt upgrade pour installer la dernière version de tous les paquets.
- Installer Suricata. Installez l’outil via APT ou le dépôt OISF si vous voulez la dernière version de Suricata.
- Configurez Suricata. Utilisez un éditeur de texte comme nano pour éditer le fichier suricata.yaml et modifier la configuration par défaut.
- Activer les interfaces réseau. Modifiez la méthode de capture des paquets et les paramètres de l’interface réseau pour permettre à Suricata de surveiller le trafic de votre serveur.
- Démarrez Suricata. Exécutez la commande systemctl pour démarrer Suricata en tant que démon.
- Automatiser le démarrage de Suricata. Créez un fichier d’unité de service Suricata systemd et utilisez systemctl pour activer l’outil lors du démarrage du système.
- Testez les fonctionnalités de Suricata. Validez le fichier de configuration de Suricata à l’aide de la fonction de test intégrée et vérifiez les règles en envoyant une requête HTTP fictive.
- Mettez à jour les règles de Suricata. Exécutez suricata-update avec l’option enable-source pour récupérer un jeu de règles à partir d’une source externe. Mettez à jour Suricata pour appliquer et valider les nouvelles règles.
Nous espérons que cet article vous aidera à installer l’outil dans votre VPS Ubuntu. Si vous avez des questions ou si vous rencontrez des problèmes pendant le processus d’installation, laissez-nous un commentaire ci-dessous.