Archivi tag: snort 2.0.9.5

Aggiornare snort alla versione 2.9.0.5 su *buntu

L’installazione di snort 2.9.0.5 su *buntu non è affatto banale. Infatti, occorre installare delle specifiche librerie e degli specifici strumenti per poter compilare il codice sorgente dell’IDS in questione.

 

snort 2.0.9.5, snort.conf, oinkmaster, rules, IDS

 

Per prima cosa scarichiamo la tarball mediante CLI usando wget:

nightfly@nightbox:~$ wget -O snort-2.9.0.5.tar.gz http://www.snort.org/downloads/867

Scompattiamola e posizioniamoci nella dir appena creata:

nightfly@nightbox:~$ tar -xzvf snort-2.9.0.5.tar.gz
nightfly@nightbox:~$ cd snort-2.9.0.5/

Stoppiamo la versione obsoleta di snort presente sulla nostra macchina:

nightfly@nightbox:~$ sudo service snort stop

Installiamo adesso alcune librerie necessarie per la compilazione di snort:

nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libpcap0.8-dev
nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libpcre3 libpcre3-dev
nightfly@nightbox:~/snort-2.9.0.5$ sudo apt-get install libdumbnet-dev libdnet libdnet-dev

Creiamo quindi un link simbolico all’header dumbnet.h poichè il file configure di snort va alla ricerca del file dnet.h:

nightfly@nightbox:~/snort-2.9.0.5/$ sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h

Installiamo l’ultima libreria che ci occorre, ovvero daq-0.5, disponibile direttamente sul sito www.snort.org:

nightfly@nightbox:~/snort-2.9.0.5/$ wget -O daq-0.5.tar.gz http://www.snort.org/downloads/860

nightfly@nightbox:~/snort-2.9.0.5/$ tar -xzvf daq-0.5.tar.gz
nightfly@nightbox:~/snort-2.9.0.5/$ cd daq-0.5/

Per compilare questa libreria è necessario utilizzare l’accoppiata flex/bison. Dunque procediamo con la loro installazione:

nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo apt-get install flex bison

Possiamo ora compilare la libreria daq-0.5:

nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ ./configure
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo make
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ sudo make install
nightfly@nightbox:~/snort-2.9.0.5/daq-0.5$ cd ..

Adesso passiamo alla compilazione di snort e successivamente sostituiamo il file di configurazione delle versioni precedenti con quello della release in questione:

nightfly@nightbox:~/snort-2.9.0.5$ sudo make
nightfly@nightbox:~/snort-2.9.0.5$ sudo make install
nightfly@nightbox:~/snort-2.9.0.5$ cd etc
nightfly@nightbox:~/snort-2.9.0.5/etc$ sudo cp snort.conf /etc/snort

Posizioniamoci nella dir /etc/snort ed apriamo il file snort.conf in scrittura:

nightfly@nightbox:~/snort-2.9.0.5/etc$ cd /etc/snort
nightfly@nightbox:/etc/snort$ sudo nano snort.conf

ed effettuiamo le seguenti sostituzioni:

1) ipvar con var (poichè non abbiamo compilato snort con la flag –enable-ipv6)

2) 

var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules

     con

var RULE_PATH /rules
var SO_RULE_PATH /so_rules
var PREPROC_RULE_PATH /preproc_rules

3) Commentiamo le seguenti direttive:

#dynamicdetection directory /usr/local/lib/snort_dynamicrules
#include $RULE_PATH/local.rules
#inspect_gzip
#unlimited_decompress
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6

4) Rimuoviamo le direttive:

compress_depth 65535 decompress_depth 65535

Ora occorre eliminare tutte le vecchie rules di snort ed installare quelle nuove. Per fare ciò digitiamo i seguenti comandi:

nightfly@nightbox:/etc/snort$ cd rules
nightfly@nightbox:/etc/snort/rules$ sudo rm *

Successivamente installiamo le nuove regole mediante oinkmaster, configurandolo opportunamente affinchè possa scaricare le rules della versione 2.0.9.5:

nightfly@nightbox:/etc/snort/rules$ sudo nano /etc/oinkmaster.conf

ed inseriamo la stringa:

url = http://www.snort.org/pub-bin/oinkmaster.cgi/<vostro oinkcode>/snortrules-snapshot-2905.tar.gz

Adesso possiamo procedere con l’installazione vera e propria delle regole:

nightfly@nightbox:/etc/snort/rules$ sudo oinkmaster -o /etc/snort/rules

Ad installazione completata, prima di lanciare snort, modifichiamo il file /etc/ld.so.conf aggiungendo la direttiva:

include /usr/local/lib

Infine, rendiamo effettiva tale modifica lanciando il comando:

nightfly@nightbox:/etc/snort/rules$ sudo ldconfig

A questo punto lanciamo uno snort -V il cui output dovrebbe essere:

 ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.0.5 (Build 135)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team
           Copyright (C) 1998-2011 Sourcefire, Inc., et al.
           Using libpcap version 1.0.0
           Using PCRE version: 7.8 2008-09-05

Copiamo l’eseguibile presente in /usr/local/bin/snort all’interno della dir /usr/sbin/snort:

nightfly@nightbox:/etc/snort/rules$ sudo cp /usr/sbin/snort /usr/local/bin/snort

Verifichiamo che la configurazione di snort non contenga errori digitando:

nightfly@nightbox:/etc/snort/rules$ sudo snort -T -c /etc/snort/snort.conf

Se l’output visualizzato è il seguente:

Snort successfully validated the configuration!

allora possiamo lanciare un sudo service snort start ed iniziare ad avvalerci di questo potentissimo IDS.

A presto.