martedì, Marzo 19, 2024

Installazione di Snort più interfacce web

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.

Articoli correlati

Il caso “Medusa Ransomware”

I ransomware stanno diventando sempre più una minaccia di rilevanza importante, quasi da non far dormire sonni tranquilli ad aziende sia pubbliche che private,...

Digital Transformation


 

Noleggia una Tesla per il tuo evento ICT!

Categorie