Table of Contents
Snort: le standard libre de la détection et prévention d'intrusion réseau.
Snort peut fonctionner dans 3 modes
- Packet Sniffer
- Packet Logger (Debian Default)
- NIDS (Network Intrusion Detection System)
Snort fonctionne selon la méthode BPF (Berkeley Packet Filter)
Logs (au format tcpdump par défaut) :
- /var/log/snort/alert
- /var/log/snort
le format de log permet d'ailleurs une analyse “graphique” via Ethereal (faire open ou ctrl+o dans l'interface gtk)
Installtion:
(pascal) jerome@mac:~$ sudo apt-get install snort Password: Lecture des listes de paquets... Fait Construction de larbre des dépendances... Fait Les paquets supplémentaires suivants seront installés : snort-common snort-rules-default Paquets recommandés : snort-doc oinkmaster Les NOUVEAUX paquets suivants seront installés : snort snort-common snort-rules-default 0 mis à jour, 3 nouvellement installés, 0 à enlever et 4 non mis à jour. Il est nécessaire de prendre 738ko dans les archives. Après dépaquetage, 2920ko espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? o ... Dépaquetage de snort (à partir de .../snort_2.3.2-5_powerpc.deb) ... Paramétrage de snort-rules-default (2.3.2-5) ...
Paramétrage de snort-common (2.3.2-5) ... Paramétrage de snort (2.3.2-5) ... No snort instance found to be stopped! Starting Network Intrusion Detection System: snort(eth0)No /etc/snort/snort.eth0.conf, defaulting to snort.conf
Utilisation
Pour pouvoir se servir de snort en tant qu'IDS, il faut le lancer avec le fichier de configuration snort.conf en paramètre
snort -c /etc/snort/snort.conf
Pour que Snort démarre toujours en tant qu'IDS, on ajoute au fichier etc/snort/snort.debian.conf
DEBIAN_SNORT_OPTIONS="-c /etc/snort/snort.conf"
Comment transformer un IDS (passif) en IPS (actif)
Pour ajouter la fonctionnalité de IPS (Intrusion Prevention), on va installer la dernière version de Snort (2.4.4) et la compiler avec le module FLEXRESP
Recupérer Snort sur 2)
wget http://www.snort.org/dl/current/snort-2.4.4.tar.gz tar =zxvf snort-2.4.4.tar.gz
Faire ./configure pour voir les dépendances et installer les fichiers dont dépend le programme :
apt-get libpcre3-dev libnet0-dev
libpcap-dev qui est aussi nécessaire est compris dans libnet0-dev
Configurer et compiler Snort:
./configure --enable-flexresp make
On ne fait pas de make install pour éviter d'écraser la version d'origine de Debian (2.3.3). Il sera toujours temps de la faire plus tard si on voit que tout fontionne bien. On pourra tester la nouvelle version en faisant :
$ sudo src/snort -c /etc/snort/snort.conf ... --== Initialization Complete ==-- ,,_ -*> Snort! <*- o" )~ Version 2.4.4 (Build 28) '''' By Martin Roesch & The Snort Team: http://www.snort.org/team.html (C) Copyright 1998-2005 Sourcefire Inc., et al.
Pour définir des règles et les actions à entreprendre tel que reset de connections tcp, envoi de port/host unreachable (en cas de connexion udp…) on utilisera un fichier de règles /etc/snort/rules/scan.rules
Définir des variables :
# just stop the offender var RESP_TCP resp:rst_snd; # also kill a possible local counterpart var RESP_TCP_URG resp:rst_all; # tell'em we're gone ... var RESP_UDP resp:icmp_port,icmp_host;
Et, par exemple, pour bloquer les scans de type XMAS, ajouter $RESP_TCP; à la règles correspondante:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"SCAN nmap XMAS"; flow:stateless; flags:FPU,12; reference: arachnids,30; classtype:attempted-recon; sid:1228; rev:7; $RESP_TCP; )
Portsentry
Un autre IDS spécialisé sur les scans de port (style nmap). Il permet de configurer les actions à prendre en cas de scans (création de règles iptables DROP ou blocage via la table de routage)