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.
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.