Si vous êtes sérieux au sujet de la sécurité du réseau et de l'amélioration de la protection, l'installation de systèmes de détection et de prévention des intrusions (IPS ou IDS) est indispensable pour fortifier le périmètre du réseau et détourner le trafic réseau indésirable.
Snort est une solution IPS/IDS gratuite et open source populaire. Apprenons comment vous pouvez installer et configurer Snort sur Linux pour défendre votre réseau contre les cyberattaques. Vérifier Que se passe-t-il lorsque votre téléphone vous espionne ?
Liens rapides
Qu'est-ce que le reniflement ?
Snort est une application open source de détection et de prévention des intrusions sur le réseau (NIDS/IPS) qui, comme son nom l'indique, aide à sécuriser le périmètre de votre réseau en appliquant des règles et des filtres qui détectent et suppriment les paquets malveillants injectés dans votre réseau.
Avec Snort, vous pourrez effectuer une journalisation avancée du trafic réseau, un reniflage et une analyse de paquets, et mettre en place un puissant système de prévention des intrusions qui protège votre réseau contre le trafic indésirable et potentiellement malveillant.
Prérequis pour l'installation de Snort
Avant d'installer Snort, une configuration initiale doit être effectuée. Ce qui implique principalement la mise à jour et la mise à niveau de votre système et l'installation des dépendances dont Snort a besoin pour fonctionner correctement.
Commencez par mettre à jour et mettre à niveau votre système.
Sur les distributions Linux basées sur Ubuntu et Debian :
sudo apt update && apt upgrade -y
Sur Arch Linux et ses distributions basées :
sudo pacman -Syu
Sur RHEL et Fedora :
sudo dnf upgrade
Au fur et à mesure que votre système se met à niveau, continuez à installer les dépendances requises par Snort. Voici les commandes que vous devez exécuter :
Sur Ubuntu et Debian, exécutez :
sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev
Sur Arch Linux, exécutez :
sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf
Pour RHEL et Fedora, exécutez la commande suivante :
sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y
De plus, vous devez également installer manuellement la bibliothèque d'acquisition de données, LibDAQ pour que Snort fonctionne correctement, ainsi que gperftools pour générer des fichiers de construction.
Tout d'abord, téléchargez les fichiers source LibDAQ depuis le site officiel à l'aide de la commande wget. Ensuite, extrayez le fichier zip et accédez au répertoire avec cd. Dans le répertoire, exécutez le démarrage et configurez les scripts, puis procédez à la préparation des fichiers avec la commande make install.
wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz tar -xzvf lib* cd lib* ./bootstrap ./configure make sudo make install
Avec LibDAQ installé, vous devez installer une dernière dépendance : gperftools. Commencez par récupérer les fichiers source du référentiel GitHub. Extrayez les fichiers, accédez au répertoire et exécutez le script de configuration. Enfin, installez le package à l'aide des commandes make install.
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz tar -xvzf gper* && cd gper ./configure make sudo make install
Une fois ces dépendances installées, vous pouvez passer aux étapes suivantes pour installer Snort.
Installer Snort depuis la source sous Linux
Une fois la configuration initiale terminée, vous pouvez maintenant vous concentrer sur l'installation de l'application réelle. Vous allez le construire à partir de la source, alors obtenez d'abord les fichiers de construction requis.
Utilisez la commande wget ou téléchargez les fichiers manuellement depuis la page de téléchargement officielle :
wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
Télécharger: Renifler
Une fois le téléchargement du fichier zip contenant les fichiers de construction terminé, extrayez-le à l'aide de la commande goudron:
tar -xzvf snort*
Accédez au dossier extrait, exécutez le script de configuration et utilisez la commande a prendre une Pour préparer les fichiers, puis enfin l'installer avec make install:
cd snort* ./configure_cmake.sh — prefix=/usr/local — enable-tcmalloc cd build make sudo make install
Snort va maintenant être installé avec succès sur votre système. Cependant, il vous reste une étape à franchir. Lors de l'installation manuelle d'une nouvelle application, le répertoire d'installation et les bibliothèques requises peuvent ne pas être automatiquement inclus dans le chemin par défaut du système. Vous pouvez donc rencontrer des erreurs lors du démarrage de l'application.
Pour éviter ce problème, vous devez exécuter la commande ldconfig. Il synchronisera le cache de la bibliothèque partagée du système avec les bibliothèques et les binaires nouvellement installés. Exécutez la commande ldconfig Avec les privilèges root ou en utilisant un préfixe sudo:
sudo ldconfig
Maintenant, j'ai couvert toutes les étapes importantes requises pour installer Snort. Pour vérifier l'installation, exécutez la commande snort avec un indicateur -V , et vous devriez voir une sortie qui renvoie le nom de la version et d'autres données.
snort -V
Une fois que vous avez vérifié que Snort est installé, suivez les étapes suivantes pour le configurer en tant qu'IDS/IPS pleinement fonctionnel.
Configuration initiale de Snort sous Linux
L'efficacité de Snort dépend presque entièrement de la qualité des ensembles de règles qui lui sont fournis.
Cependant, avant de commencer à configurer les règles, vous devez configurer vos cartes réseau pour qu'elles fonctionnent avec Snort et vous devez également tester la façon dont la configuration par défaut est gérée par Snort. Commencez par configurer les cartes réseau.
Vous devez définir l'interface réseau en mode promiscuité :
sudo ip link set dev interface_name promisc on
Utilisation outil eth , désactivez le déchargement de réception global (GRO) et le déchargement de réception volumineux (LRO) pour empêcher la coupure de paquets réseau plus volumineux :
sudo ethtool -K interface_name gro off lro off
Testez les performances de Snort avec la configuration par défaut :
snort -c /usr/local/etc/snort/snort.lua
Cela devrait renvoyer une sortie réussie indiquant que vous avez correctement installé et configuré Snort dans votre système. Vous pouvez maintenant modifier ses fonctionnalités et essayer différentes configurations pour trouver le meilleur ensemble de règles pour sécuriser votre réseau.
Définissez et appliquez des règles avec Snort
Avec les paramètres de base en place, Snort est maintenant prêt à défendre votre périmètre. Comme vous le savez, Snort a besoin d'ensembles de règles pour déterminer la validité du trafic de données, préparons quelques ensembles de règles gratuits créés par la communauté pour Snort.
Snort lit les ensembles de règles et les configurations à partir des répertoires spécifiés. Alors d'abord, en utilisant les commandes mkdir et -nous , créez des répertoires importants pour stocker les règles et autres données associées pour snort :
sudo mkdir -p /usr/local/etc/{lists,so_rules,rules} sudo touch /usr/local/etc/rules/local.rules sudo touch /usr/local/etc/lists/default.blocklist
En créant ces guides, vous pouvez télécharger le jeu de règles de la communauté depuis le site officiel à l'aide de la commande wget:
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
Une fois le téléchargement du jeu de règles terminé, extrayez-le et copiez-le dans le répertoire /usr/local/etc/rules/.
tar -xvzf snort3-com* cd snort3-com* cp * /usr/local/etc/rules/
Pour exécuter un snort avec l'ensemble de règles, exécutez cette commande :
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none
explication de la commande :
- -c Spécifie le chemin d'accès au fichier de configuration par défaut.
- -R Spécifie le chemin d'accès à la règle qui est appliquée.
- -i Définit l'interface.
- -s ignore la limite snaplen.
- -k Il ignore la somme de contrôle.
Cela devrait valider la configuration et forcer tous les ensembles de règles à renifler. Une fois qu'il détecte une perturbation du réseau, il vous alerte avec un message de console.
Si vous souhaitez créer et implémenter votre propre ensemble de règles, vous pouvez en savoir plus sur celles-ci sur Pages de documentation officielles. Départ Meilleurs services de pare-feu d'application Web pour sécuriser un site Web.
Établir des records avec Snort
Par défaut, Snort ne génère aucun journal. Vous devez spécifier à l'aide de la balise -L Pour démarrer Snort en mode journalisation, spécifiez le type de fichier journal et une balise -l Définit le répertoire de registre pour que Snort vide les journaux.
Voici la commande pour démarrer Snort avec les journaux activés :
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none -L file_type -l /var/log/snort
explication de la commande :
- -c Spécifie le chemin d'accès au fichier de configuration par défaut.
- -R Spécifie le chemin d'accès à la règle qui est appliquée.
- -i Définit l'interface.
- -s ignore la limite snaplen.
- -k Il ignore la somme de contrôle.
- -L Active le mode d'enregistrement et spécifie le type de fichier journal.
- Il précise -l Chemin de stockage des enregistrements.
Notez que dans l'exemple de commande précédent, le répertoire du registre est défini sur /var/log/renifler. Bien qu'il s'agisse d'une pratique recommandée, vous êtes libre de stocker vos enregistrements ailleurs.
Vous pouvez lire les fichiers journaux de Snort à partir du répertoire que vous avez spécifié ou les transmettre à une application SIEM telle que Splunk pour une analyse plus approfondie.
Ajoutez Snort en tant que processus démon pour le démarrer avec le système
Même si Snort est installé et configuré, vous devez vous assurer qu'il commence à s'exécuter au démarrage et s'exécute en tant que serveur d'arrière-plan. L'ajouter en tant que service système à démarrage automatique garantira que Snort fonctionne et défend votre système tout le temps qu'il est en ligne.
Voici comment ajouter le processus démon pour démarrer Snort sous Linux :
- Commencez par créer un fichier de service systemd nouveau:
touch /lib/systemd/system/snort.service
- Ouvrez le fichier dans un éditeur de texte de votre choix et remplissez-le avec les données suivantes. Vous pouvez modifier les balises selon vos besoins :
[Unit] Description=Snort Daemon After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var/log/snort -D -L pcap -i ens33 [Install] WantedBy=multi-user.target
- Enregistrez et quittez le fichier. Après cela, en utilisant les deux commandes service et systemctl , activez et démarrez le script :
sudo systemctl enable snort.service sudo snort start
Le démon Snort devrait maintenant fonctionner. Vous pouvez vérifier l'état du script à l'aide de la commande. Il devrait renvoyer une sortie positive.
systemctl status snort
Vous savez maintenant comment protéger votre réseau avec Snort IDS
Bien que l'IDS soit une bonne pratique, il s'agit plus d'une action passive qu'active. La meilleure façon d'améliorer et d'assurer la sécurité de votre réseau est de le tester en permanence et de rechercher les failles qui doivent être corrigées.
Les tests d'intrusion sont un excellent moyen de trouver et de corriger les vulnérabilités exploitables. Vous pouvez voir maintenant Meilleurs outils de test d'intrusion pour les professionnels de la cybersécurité.