A proposito dell'autore

Da aggiornare.

Note

In questa guida cercherò di spiegare semplicemente i processi per avere un IDS funzionante in ambiente Linux. I test sono stati effettuati sulla distribuzione Slackware 8.1 con kernel 2.5.w

Non troverete configurazioni di Snort perchè variano a seconda della tipologia di rete implementata, e il tempo a disposizione è minimo. Magari in una futura guida parlerò meglio dei diversi tipi di configurazione.

Che cos’è Snort?

Snort è un valido IDS (Intrusion Detection System) interamente opensource, funzionante su qualsiasi sistema operativo compatibile con le librerie libcap (anche su Windows).

La qualità di questo IDS è molto elevata e non ha nulla da invidiare con altri prodotti commerciali che, oltre essere costosi, richiedono più esperienza per configurarli.

Che cos’è un IDS?

Un IDS è un sistema ormai fondamentale in ogni architettura di sicurezza di rete. Infatti un IDS, basandosi su delle regole, è in grado di individuare i normali attacchi,loggare l’abuso di applicazione (come i diversi bug nei CGI), individuare port scan e la possibile infezione di virus e trojan; inoltre permette di monitorare gli utenti.

Usando le regole permette all’amministratore di decidere di persona cosa monitorare e in che modo farsi informare del tentativo di attacco (è possibile farsi mandare SMS su cellulare).

In poche parole un IDS è un potente filtro interamente personalizzabile.

Installazione

Una volta scaricato il sorgente dal sito ufficiale http://www.snort.org scompattarlo in /usr/local, dopo di che digitate:

#./configure --with-mysql
#make
#make install

Se avete problemi con la compilazione, su www.linuxpackages.net è disponibile il per la distribuzione Slackware.
Ora snort è installato; basta solo configurarlo.

1) Create la directory di log su /var/log/snort e su /etc/snort

2) Copiate la directory rules e il file snort.conf dalla dir /usr/local/snort-n°versione su /etc/snort

3) Per sicurezza rinominate e posizionate il file snort.conf su /root/.snortrc

4) Assicuratevi di avere il giusto path delle rules nel file snort.conf

var RULE_PATH /etc/snort/rules/

Digitate snort -D -c /root/.snortrc dalla console e se tutto è andato a buon fine il demone si dovrebbe attivare con la configurazione standard (basata sul file snort.conf)

Opzioni di Snort

A per scegliere il tipo di alert (fast,full,none)

-b logging in formato tcpdump

-c specifica il file di configurazione

-D per eseguire Snort in background

-F specifica il file contenente i filtri BPF (Berkeley Packet Filter)

-u, -g, per eseguire Snort con UID e GID diversi da 0

-i specifica l’interfaccia dove sniffare i pacchetti

-N disattivazione del logging

-p per disabilitare lo sniffing in modalità promiscua

-r specifica un file in formato tcpdump da processare

-s utilizza syslog per loggare

-t chroot() dopo l’inizializzazione

-v modalità verbose
Tutti i Log saranno visibili in /var/log/snort.

Installazione Snortcenter

Snortcenter è un’interfaccia web basata su PHP e MySQL per aiutare e semplificare all’amministratore la configurazione e l’aggiornamento delle regole di Snort.
Requisiti:

In questa guida si presume già di avere i requisiti installati e funzionali sul sistema.

Ora scaricate l’ultima versione di SnortCenter da http://users.pandora.be/larc/index.html e scompattatela; quindi entrate nella directory e con il comando cp -R * /var/www/htdocs/snortcenter/ copiate il contenuto nella directory principale del webserver.

Prima, se necessario, create la dir snortcenter.

Adesso digitando

echo "CREATE DATABASE snortcenter;" | mysql -u root -p

dalla console creiamo il db MySQL;
Dopo sempre nella dir /var/www/htdocs/snortcenter eseguite il comando:

mysql -u root snortcenter <­ snortcenter_db.mysql

Siamo quasi al termine, basta solo editare il file config.php con i seguenti parametri:

$language = "it";
$DBlib_path = "/var/www/htdocs/adodb/";
$curl_path = "/usr/bin/";
$DBtype = "mysql";
$DB_dbname = "snortcenter"; ^M
$DB_host = "localhost";^M
$DB_user = "root";^M
$DB_password = "vostra password db";^M
$DB_port = "3306";^M
$hidden_key_num = "236785";
$alert_console = "http://127.0.0.1/acid/";

Andando su e cliccando su Create DB Tables terminerà l’installazione.

Attenzione: l’userid è admin e la password è change, ricordatevi di cambiarla!

In questo momento potete puntare il vostro browser su e, se tutto è stato eseguito correttamente, inserendo come user: admin e la pass: change , dovreste vedere l’interfaccia di Snortcenter.

Adesso dobbiamo installare il sensore di Snortcenter!

Scaricatele sempre dal sito di SnortCenter, e untarratelo (passatemi il termine) su /var/www/htdocs/snortcenter/sensor

Eseguite ./setup.sh e seguite le istruzioni.

Config file directory [/snortcenter/conf]:
Log file directory [/snortcenter/log];
Full path to perl (default /usr/bin/perl):
Full path to snort (default /usr/local/bin/):
Snort Rule config file directory [/snortcenter/rules/ oppure /etc/snort/rules/
Sensor port (default 2525):
only one address (default any): any
Login name (default admin): admin
Login password: pass che volete
Allowed IP addresses (default localhost):127.0.0.1
Start Sensor at boot time (y/n): y

Bene ora su sarete in grado di comandare snort.
Per eseguire sensor al boot aggiungete la stringa a rc.local presente in /etc/rc.d/

# echo "Starting SnortCenter Sensor Agent...."
trap  1
LANG=
export LANG
exec'/var/www/htdocs/snortcenter/sensor/miniserv.pl' /var/www/htdocs/snortcenter/sensor/conf/miniserv.conf

Uso di Snortcenter

L’uso di Snortcenter è molto intuitivo e semplice da adottare:

– Per prima cosa dovete aggiungere il sensore andando su Console del sensore/Aggiungi un sensore e specificate l’ip 127.0.0.1, la porta 2525, l’utente admin, la vostra password e l’interfaccia da sniffare (magari eth0).

– Su Regole potete aggiungere, editare e aggiornare da internet le regole di snort

– In Tipi di configurazioni si può configurare Variabili, Preprocessori, Tipi di regole, Classificazioni, Reference.

SnortCenter è un ottimo tool ma da solo non basta per amministrare il potentissimo IDS Snort, quindi Vi consiglio di aggiungere anche l’interfaccia Acid così avrete la coppia vincente! :-)

Installazione ACID (Analysis Console for Intrusion Databases)

Requisiti:

  • MySQL 3.23.x+
  • Snort
  • Php 4.0.4+
  • Apache Server 1.3.*+
  • ADODB

Installazione ‘

  1. Prelevate l’ultima versione di Acid dal sito www.cert.org/kb/acid e estraete il pacchetto in /var/www/htdocs/acid
  1. Da www.phplot.com scaricate PHPlot e estraetelo in /var/www/htdocs/
  1. Stessa operazione per JPGraph disponibile su www.aditus.nu/jpgraph/

Adesso bisogna eseguire le seguenti operazioni per creare il database:

mysql -u root
mysql> create database snort;
mysql> connect snort
mysql> source create_mysql
mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;
mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort@localhost;
mysql> grant CREATE,INSERT,SELECT,UPDATE on snort.* to acidviewer;
mysql> grant CREATE,INSERT,SELECT,UPDATE on snort.* to acidviewer@localhost;
mysql> connect mysql
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('tuapassword');
mysql> SET PASSWORD FOR snort@&amp;amp;quot;%" = PASSWORD('tuapassword');
mysql> SET PASSWORD FOR acidviewer@localhost=PASSWORD('tuapassword');
mysql> SET PASSWORD FOR acidviewer@&amp;amp;quot;%" = PASSWORD('tuapassword');
mysql> flush privileges;
mysql> exit

Ora dobbiamo editare il file acid_conf.php presente in /var/www/htdocs/acid/

Vi elenco le modifiche da eseguire:

$DBlib_path = "/var/www/htdocs/adodb/";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "3306";
$alert_user = "snort";
$alert_password = "vostra password scelta nella creazione del db";
/* Archive DB connection parameters */ OPZIONALE (dovrete prima creare il db snort_archive)
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "3306";
$archive_user = "root";
$archive_password = "tua pass";
$db_connect_method = 1;
$use_referential_integrity = 0;
$ChartLib_path = "/var/www/htdocs/jpgraph/src/";

Ora dal vostro browser andate su

Cliccate su Acid tables e, se richiesto, su Search Indexes.

Per far convivere SnortCenter e Acid scaricate il plugin sul sito di SnortCenter. E, prima di installarlo, rinominate i file presenti in /var/www/htdocs/acid/

acid_main.php -> acid_main.php.bak
acid_output_html.inc -> acid_output_html.inc.bak
acid_style.css -> acid_style.css.bak

Untarrate il pacchetto e copiate il contenuto nella directory /var/www/htdocs/acid/

Editate /var/www/htdocs/acid/plugin.conf.php con la linea:

$snortcenter_home = "http://localhost/snortcenter/";

Se tutto è andato a buon fine, Acid è pronto per loggare i più cattivi lamer!
Uso

Prima di usarlo andate su Tipi di configurazione/Plugin di Output/Crea un Plugin di Output.

Addate: nome database: snort, tipo: mysql, indirizzo 127.0.0.1, porta 3306, utente: snort, pass: la vostra, tipo di regola log o alert, codifica ascii, dettagli: fast o full.

E’ possibile creare anche più di un plugin di output.

Finalmente con Acid avrete il costante monitoraggio dei log di Snort tramite diagrammi, torte e utili schermate.

Conclusioni

Ci sarebbero ancora molte pagine da scrivere per il nostro amato Snort ma il tempo a disposizione termina qui.

Magari in futuro rilascerò una configurazione di Snort per le diverse policy di sicurezza.

Resto a vostra disposizione per eventuali domande, consigli, critiche.

Post correlati

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: