Network Security Monitoring Server con Ubuntu 8.10 e NSMnow

sguil

Grazie al sempre ottimo Richard Bejtlich ho scoperto lo script NSMnow, che permette in pochi minuti di mettere in piedi un server adatto al network security monitoring. Lo script non fa altro (si fa per dire) che automatizzare l’installazione e la configurazione di tutto il necessario per il funzionamento di Sguil:
MySQL, Apache, Sguil (server e client), Snort, tcl, wireshark, p0f, tcpflow, tcpdump etc.

Personalmente ho effettuato un’installazione base di Ubuntu 8.10 in VirtualBox utilizzando la versione “alternate” di Ubuntu. All’avvio del CD di Ubuntu ho selezionato “F4” e “Installa un sistema a riga di comando” per avere un sistema privo di interfaccia grafica. Terminata l’installazione mi sono loggato con il mio utente sul sistema e ho scaricato il pacchetto contentente lo script NSMnow:

$mkdir nsm
$cd nsm
$wget http://www.securixlive.com/download/nsmnow/NSMnow-1.1.1.tar.gz

A questo punto ho scompattato il pacchetto e avviato la procedura di installazione:

$tar zxvf NSMnow-1.1.1.tar.gz
$sudo ./NSMnow -i --force-yes

I pacchetti su Ubuntu verranno installati con apt-get utilizzando il parametro “-y” che permette un’installazione dei pacchetti senza richiesta di intervento da parte dell’utente, dando sempre risposta affermativa a eventuali prompt.

Tutti i pacchetti saranno installati con il comando:

apt-get -y install nomepacchetto

Il primo problema che ho riscontrato si è verificato con la compilazione di Snort (versione 2.8.2.2). Tutto liscio con il ./configure ma il make dava un errore. Così cercando in giro ho trovato un problema nella compilazione di Snort su Ubuntu 8.10, risolvibile modificando il file “server_stats.c” presente nella directory “/src/preprocessors/flow/portscan/” dei sorgenti di Snort, collocati da NSMnow nella cartella “source”. Per comodità allego il file server_stats.c già modificato da me e funzionante.

Il secondo problema invece si è verificato al momento della creazione delle tabelle del database “sguildb” in MySQL, infatti lo script “create_sguildb.sql” usato da NSMnow per la creazione delle necessarie tabelle è formattato con una sintassi incompatibile con MySQL 5. L’errore risiede nei commenti che non hanno spazi dopo i due dash “–“. In un post trovato grazie a Google sono segnalate le righe contenenti gli errori e così è stato semplice modificare il file correggendo la sintassi in modo appropriato: anche in questo caso penso di fare cosa gradita allegando il file create_sguildb.sql che ho modificato e testato. Per importarlo in sguildb ho utilizzato phpMyAdmin (basta un “sudo apt-get install phpmyadmin”) ma è possibile fare lo stesso anche da riga di comando.

Superati questi due problemi abbastanza rognosi, NSMnow riuscirà a portare a termine l’installazione e basterà avviare il sistema di monitoring con:

$sudo ./run-init start

Infine è necessario installare un client sguil (disponibile anche su Windows) su un’altra macchina della rete da monitorare e godersi il proprio sistema di Network Security Monitoring (eseguito nel mio caso come macchina virtuale VirtualBox).

UPDATE: per connettersi al server Sguil è necessario (almeno nel mio caso lo è stato dato che NSMnow non aveva impostato lutente autorizzato) aggiungere un utente abilitato a connettersi al demone sguild. Sulla macchina che fa girare il server basta dare il comando:

sudo sguild -adduser nomeutente