GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Snort sur Ubuntu 20.04

Snort est un système de prévention des intrusions réseau léger et open source permettant d'exécuter un système de détection des intrusions réseau (NIDS). Snort est utilisé pour surveiller les données de paquet envoyées/reçues via une interface réseau spécifique. Les systèmes de détection d'intrusion réseau peuvent détecter les menaces ciblant les faiblesses et les vulnérabilités de votre système à l'aide de technologies de détection et d'analyse de protocole basées sur les signatures.

Lorsque le logiciel NIDS est installé et configuré correctement, il peut identifier différents types d'attaques et de suspicions, telles que les attaques CGI, les violations de la politique réseau, les sondes SMB, les infections par des logiciels malveillants, un système compromis, une analyse furtive des ports, etc.

Dans ce tutoriel, nous apprenons à installer Snort 3 sur Ubuntu 20.04 .

Certaines des nouvelles fonctionnalités de Snort 3 :

  • Prend en charge plusieurs threads de traitement de paquets
  • Permet le traitement de plusieurs paquets
  • Générer automatiquement la documentation de référence
  • Utiliser une configuration scriptable simple
  • Rendre les composants clés enfichables
  • Permet aux utilisateurs d'écrire leurs propres plugins
  • Configuration partagée et table d'attributs
  • Permet aux règles de s'exécuter plus rapidement

Étape 1 :Mettre à jour le système

Tout d'abord, mettez à jour et mettez à niveau votre système Ubuntu

sudo apt update
sudo apt upgrade

Étape 2 :Installer les dépendances requises

Le référentiel par défaut d'Ubuntu contient le package snort. Le package snort disponible ici est l'ancienne version. Pour installer Snort 3, nous devons construire à partir de la source. Avant d'installer Snort 3, nous devons installer les bibliothèques prérequises et requises.

Installez les packages de dépendances Snort 3 avec la commande suivante :

sudo apt install build-essential libpcap-dev libpcre3-dev libnet1-dev zlib1g-dev luajit hwloc libdnet-dev libdumbnet-dev bison flex liblzma-dev openssl libssl-dev pkg-config libhwloc-dev cmake cpputest libsqlite3-dev uuid-dev libcmocka-dev libnetfilter-queue-dev libmnl-dev autotools-dev libluajit-5.1-dev libunwind-dev

Une fois les dépendances installées, créez un répertoire dans lequel vous compilez et conservez les fichiers source de Snort avec la commande suivante :

mkdir snort-source-files
cd snort-source-files

Ensuite, téléchargez et installez la dernière version de la bibliothèque Snort Data Acquisition (LibDAQ). Pour installer LibDAQ nous devrons le compiler et l'installer à partir de la source avec la commande suivante.

git clone https://github.com/snort3/libdaq.git
cd libdaq
./bootstrap
./configure
make
make install

La dépendance suivante est Tcmalloc, qui optimisera l'allocation de mémoire et fournira une meilleure utilisation de la mémoire.

Installez Tcmalloc avec la commande suivante.

cd ../
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9/gperftools-2.9.tar.gz
tar xzf gperftools-2.9.tar.gz 
cd gperftools-2.9/
./configure
make 
make install

Étape 3 :Installez Snort 3 sur Ubuntu 20.04

Une fois les dépendances configurées, nous allons télécharger et installer Snort 3 sur Ubuntu 20.04.

01. Clone Snort 3 dépôt officiel GitHub.

cd ../
git clone git://github.com/snortadmin/snort3.git

02. Changez le répertoire en Snort3

cd snort3/

03. À partir de là, configurez et activez tcmalloc avec la commande suivante.

./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc

04. Accédez au répertoire de construction et compilez et installez Snort 3 en utilisant make et make install avec la commande suivante.

cd build
make 
make install

05. Une fois l'installation terminée, mettez à jour les bibliothèques partagées.

sudo ldconfig

Snort est installé par défaut dans le répertoire /usr/local/bin/snort, il est recommandé de créer un lien symbolique pour /usr/sbin/snort

sudo ln -s /usr/local/bin/snort /usr/sbin/snort

06. Vérifiez l'installation de Snort 3

snort -V

Sortie :

,,_     -> Snort++ <-
   o"  )~   Version 3.1.10.0
    ''''    By Martin Roesch & The Snort Team
            http://snort.org/contact#team
            Copyright (C) 2014-2021 Cisco and/or its affiliates. All rights reserved.
            Copyright (C) 1998-2013 Sourcefire, Inc., et al.
            Using DAQ version 3.0.4
            Using LuaJIT version 2.1.0-beta3
            Using OpenSSL 1.1.1f  31 Mar 2020
            Using libpcap version 1.9.1 (with TPACKET_V3)
            Using PCRE version 8.39 2016-06-14
            Using ZLIB version 1.2.11
            Using LZMA version 5.2.4

Si vous voyez une sortie similaire, alors Snort 3 est installé avec succès.

Configurer les cartes d'interface réseau

Trouvez l'interface sur laquelle Snort écoute le trafic réseau et activez la promiscuité mode pour pouvoir voir tout le trafic réseau qui lui est envoyé.

ip link set dev eh0 promisc on

Vérifiez avec la commande suivante.

ip add sh eth0

Sortie :

2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER UP> mtu 1500 qdisc mq state UP group default qlen 1000
     link/ether f2:3c:92:ed:7e:d8 brd ff:ff:ff:ff:ff:ff
     inet 74.207.230.186/24 brd 74.207.230.255 scope global dynamic eth0
        valid_lft 72073sec preferred_lft 72073sec
     inet6 2600:3c02::f03c:92ff:feed:7ed8/64 scope global dynamic mngtmpaddr noprefixroute 
        valid_lft 60sec preferred_lft 20sec
     inet6 fe80::f03c:92ff:feed:7ed8/64 scope link 
        valid_lft forever preferred_lft forever

Ensuite, désactivez le déchargement de l'interface pour empêcher Snort 3 de tronquer les gros paquets, jusqu'à 1518 octets maximum. Vérifiez si cette fonctionnalité est activée avec la commande suivante.

ethtool -k eth0 | grep receive-offload

Si vous voyez cette sortie, cela signifie que GRO est activé alors que LRO est fixe ou que LRO est activé.

Sortie.

generic-receive-offload: on
large-receive-offload: on

Désactivez-le avec la commande suivante.

ethtool -K eth0 gro off lro off

Deuxièmement, assurez-vous que les modifications persistent lors du redémarrage du système, nous devrons créer et activer une unité de service systemd pour implémenter les modifications.

sudo nano /etc/systemd/system/snort3-nic.service

Collez la configuration suivante qui pointe vers votre interface réseau.

[Unit]
Description=Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev eth0 promisc on
ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off 
TimeoutStartSec=0 
RemainAfterExit=yes

[Install]
WantedBy=default.target

Recharger les paramètres de configuration de systemd :

sudo systemctl daemon-reload

Démarrez et activez le service au démarrage avec la commande suivante :

sudo systemctl enable --now snort3-nic.service

Sortie.

Created symlink /etc/systemd/system/default.target.wants/snort3-nic.service → /etc/systemd/system/snort3-nic.service.

Vérifiez le snort3-nic.service avec :

sudo systemctl status snort3-nic.service

Sortie.

● snort3-nic.service - Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
      Loaded: loaded (/etc/systemd/system/snort3-nic.service; enabled; vendor preset: enabled)
      Active: active (exited) since Sat 2021-09-18 12:35:17 UTC; 4min 59s ago
     Process: 182782 ExecStart=/usr/sbin/ip link set dev eth0 promisc on (code=exited, status=0>
     Process: 182783 ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off (code=exited, status=0>
    Main PID: 182783 (code=exited, status=0/SUCCESS)
 Sep 18 12:35:17 li72-186 systemd[1]: Starting Set Snort 3 NIC in promiscuous mode and Disable >
 Sep 18 12:35:17 li72-186 systemd[1]: Finished Set Snort 3 NIC in promiscuous mode and Disable >

Installer les ensembles de règles de la communauté Snort 3

Dans Snort, les ensembles de règles sont le principal avantage du moteur de détection d'intrusion. Il existe trois types de règles Snort :règles de communauté, règles enregistrées, règles d'abonné. Les règles de la communauté sont soumises par la communauté open source ou les intégrateurs snort.

Nous allons montrer comment installer les règles de la communauté.

Tout d'abord, créez un répertoire pour les règles dans /usr/local/etc/snort

mkdir /usr/local/etc/rules

Téléchargez les règles de la communauté Snort 3. Vous pouvez le trouver sur la page de téléchargement officielle de Snort3.

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

Extrayez les règles téléchargées et placez-les dans le répertoire que nous avons créé précédemment /usr/local/etc/rules/

tar xzf snort3-community-rules.tar.gz -C /usr/local/etc/rules/

Snort 3 inclut deux fichiers de configuration principaux, snort_defaults.lua et snort.lua .

Le snort.lua contient la configuration principale de Snort, permettant l'implémentation et la configuration des préprocesseurs Snort, l'inclusion de fichiers de règles, la journalisation, les filtres d'événements, la sortie, etc.

Le snort_defaults.lua les fichiers contiennent des valeurs par défaut telles que les chemins d'accès aux règles, l'AppID, les listes d'intelligence et les variables réseau.

Lorsque les fichiers de règles sont extraits et placés, nous allons configurer l'un de ces fichiers de configuration appelé snort.lua. Ouvrez le fichier avec votre éditeur préféré et vous verrez une configuration similaire.

... -- HOME_NET and EXTERNAL_NET must be set now -- setup the network addresses you are protecting
HOME_NET = 'server_public_IP/32'

-- set up the external network addresses.
-- (leave as "any" in most situations)
EXTERNAL_NET = 'any' EXTERNAL_NET = '!$HOME_NET' ... 

Définissez le réseau que vous souhaitez protéger contre les attaques comme valeur pour HOME_NET variable, et pointez EXTERNAL_NET variable à HOME_NET variable.

Enregistrez et quittez.

Vous pouvez également modifier les valeurs par défaut de Snort dans /usr/local/etc/snort/snort_defaults.lua et sous la section IPS, vous pouvez définir l'emplacement de vos règles.

ips = 
{     
-- use this to enable decoder and inspector alerts     
--enable_builtin_rules = true,     

-- use include for rules files; be sure to set your path     
-- note that rules files can include other rules files     
include = '/usr/local/etc/rules/snort3-community-rules/snort3-community.rules' 
}
 ...

Enregistrez et quittez.

Exécuter Snort en tant que service

Si vous allez exécuter Snort en tant que démon de service en arrière-plan, il est également possible de créer une unité de service systemd pour Snort. Il est prudent de l'exécuter en tant qu'utilisateur système non privilégié

Créez un compte utilisateur système sans connexion.

sudo useradd -r -s /usr/sbin/nologin -M -c SNORT_IDS snort

Ensuite, créez une unité de service systemd pour que Snort soit exécuté en tant qu'utilisateur snort. Ajustez et faites correspondre votre interface réseau.

sudo nano /etc/systemd/system/snort3.service

Collez la configuration suivante.

[Unit]
Description=Snort 3 NIDS Daemon
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none -l /var/log/snort -D -i eht0 -m 0x1b -u snort -g snort

[Install]
WantedBy=multi-user.target

Rechargez la configuration systemd.

sudo systemctl daemon-reload

Définissez la propriété et les autorisations sur le fichier journal.

sudo chmod -R 5775 /var/log/snort
sudo chown -R snort:snort /var/log/snort

Démarrez et activez Snort pour qu'il s'exécute au démarrage du système :

sudo systemctl enable --now snort3

Vérifiez l'état du service pour confirmer s'il est en cours d'exécution.

sudo systemctl status snort3

Sortie.

● snort3.service - Snort 3 NIDS Daemon
      Loaded: loaded (/etc/systemd/system/snort3.service; enabled; vendor preset: enabled)
      Active: active (running) since Sat 2021-09-18 12:44:32 UTC; 6s ago
    Main PID: 182886 (snort)
       Tasks: 2 (limit: 1071)
      Memory: 62.6M
      CGroup: /system.slice/snort3.service
              └─182886 /usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none >
 Sep 18 12:44:32 li72-186 systemd[1]: Started Snort 3 NIDS Daemon.

Conclusion

Dans ce tutoriel, comment installer le système de détection d'intrusion réseau Snort 3 sur Ubuntu 20.04.

Linux n'est pas à 100% à l'abri des virus et des choses suspectes, il est toujours préférable d'avoir un outil installé et de s'assurer que personne n'essaie quelque chose de suspect sur votre appareil et votre réseau. Autres alternatives pour Snort que vous pouvez étudier :Ossec, Palo Alto Networks Next-Generation Firewall, Next-Generation Intrusion Prevention System (NGIPS).

Merci d'avoir lu, veuillez fournir vos commentaires et suggestions dans la section des commentaires.


Ubuntu
  1. Comment installer Odoo sur Ubuntu

  2. Comment installer Maven sur Ubuntu

  3. Comment installer Wine sur Ubuntu

  4. Comment installer R sur Ubuntu 16.04

  5. Comment installer Go sur Ubuntu 18.04

Comment installer Go sur Ubuntu 18.04

Comment installer R sur Ubuntu 18.04

Comment installer qt sur Ubuntu 20.04

Comment installer Go dans Ubuntu 20.04

Comment installer Go sur Ubuntu 22.04

Comment installer Snort sur Ubuntu 22.04