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:
- Webserver Apache http://httpd.apache.org
- Php 4.1.2+ compilata con –with-mysql http://www.php.net
- MySQL 3.23.x+ http://www.mysql.com
- cURL command line tool http://curl.haxx.se
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 ‘
- Prelevate l’ultima versione di Acid dal sito www.cert.org/kb/acid e estraete il pacchetto in /var/www/htdocs/acid
- Da www.phplot.com scaricate PHPlot e estraetelo in /var/www/htdocs/
- 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;quot;%" = PASSWORD('tuapassword'); mysql> SET PASSWORD FOR acidviewer@localhost=PASSWORD('tuapassword'); mysql> SET PASSWORD FOR acidviewer@&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.