Snort IDS/IPS MySQL WebUI

Questa mini guida serve per configurare SNORT come  Intrusion Detection Systems (IDS).

Questa è la guida che ho seguito.  Qui una rapida lettura su cosa sono gli IDS.
Da tenre in considerazione che snort per funzionare correttamente in IPS ha bisogno di due schede di rete configurate in Bridge.

Installazioni propedeutiche mysql-server apache2 php5

Per prima cosa installiamo snort con appoggio il database via Mysql:

sudo su

apt-get install snort-mysql
apt-get install oinkmaster
apt-get install acidbase 
apt-get install libphp-adodb
apt-get install libcrypt-ssleay-perl liblwp-protocol-https-perl

procediamo con l’aggiunta della configurazione di acidbase per apache2 dando:

ln -s /etc/apache2/conf.d/acidbase.conf /etc/acidbase/apache.conf

Creiamo una nuova password per snort digitando passwd snort inserendo due volte la stessa password.

Andiamo a creare un utente ed un database con mysql.

mysql -u root -p
create database snort;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON snort.* TO 'snort'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

riconfiguriamo snort dando i comandi:

cd /usr/share/doc/snort-mysql 
zcat create_mysql.gz | mysql -u snort -D snort -p 
rm /etc/snort/db-pending-config 
dpkg --configure --pending 
dpkg-reconfigure snort-mysql

In caso di mancata o errata configurazione di acidbase si può modificare la configurazione digitando:

nano /etc/acidbase/apache.conf

all’interno si possono vedere le semplici configurazioni:

  Alias /acidbase "/usr/share/acidbase"

  Options +FollowSymLinks
  AllowOverride None
  order deny,allow
  deny from all
  allow from 127.0.0.0/255.0.0.0

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_value include_path .:/usr/share/php

 

Al posto di allow from 127.0.0.0/255.0.0.0 è possibile inserire un range o degli ip a cui è concesso l’accesso.
ad esempio:

allow from 192.168.1.2/255.255.255.0 192.168.1.6/255.255.255.0

così facendo solo gli ip presenti possono aprire la pagina.

In alternativa si può procedere come segue:

sudo sed -i "s#allow from 127.0.0.0/255.0.0.0#allow from 127.0.0.0/255.0.0.0 192.168.1.6/255.255.255.0 192.168.1.2/255.255.255.0#" /etc/acidbase/apache.conf

In questo modo dopo 127.0.0.0/255.0.0.0 verranno aggiunti 192.168.1.6/255.255.255.0 192.168.1.2/255.255.255.0

N.B. è possibile inserire anche il range di indirizzi dando 192.168.X, in questo modo tutti gli ip della rete potranno visionare la pagina.

Per il database invece:

nano /etc/acidbase/database.php

si ha la configurazione di accesso al database precedentemente creato con le user id, pass e nome db.
Per rendere attive le modifiche si puo procedere con il classico reboot oppure:

service apache2 restart 
service snort start

Modifichiamo ora oinkmaster che serve per aggiornare la lista.
nano /etc/oinkmaster.conf a questo punto bisogna iscriversi al sito di snort vi verra lasciato gratuitamente il codice chiamato <oinkcode> che dovra essere rimpiazzato nel file. Nella stessa pagina compare In the oinkmaster.conf modify “url” to:

e.g. url = http://www.snort.org/pub-bin/oinkmaster.cgi/xxxxxxxxxxxxxxxxxx/snortrules-snapshot-2931.tar.gz

copiamolo ed aggiungiamolo alla lista.

Subito sotto aggiungiamo la seguente stringa:
url = http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz
eseguire poi
sudo wget -O /etc/snort/rules/zeus.rules http://www.snortattack.org/files/zeus.rules
Si proceda con l’aggiornamento digitando:

oinkmaster -o /etc/snort/rules

il programma ora ha tutte le RULES del caso, dobbiamo comunque abilitarle, procediamo aggiungendo quanto segue:

nano /etc/snort/snort.conf

# Emergin rules
#var SSH_PORTS 22
#include $RULE_PATH/emerging-attack_response.rules
#include $RULE_PATH/emerging-botcc.rules
include $RULE_PATH/emerging-compromised.rules
#include $RULE_PATH/emerging-dos.rules
include $RULE_PATH/emerging-drop.rules
include $RULE_PATH/emerging-dshield.rules
#include $RULE_PATH/emerging-exploit.rules
#include $RULE_PATH/emerging-inappropriate.rules
include $RULE_PATH/emerging-malware.rules
#include $RULE_PATH/emerging-p2p.rules
#include $RULE_PATH/emerging-rbn.rules
include $RULE_PATH/emerging-scan.rules
#include $RULE_PATH/emerging-voip.rules
# Fine emergin rules

# Zeus rules
include $RULE_PATH//zeus.rules
# Fine emergin rules

Conviene cercare la riga contenente include $SO_RULE_PATH/bad-traffic.rules e decommentarla, bisogna ora creare la directory so_rules mkdir /etc/snort/so_rules fatto cià copiamo il file da rules a so_rules cp /etc/snort/rules/bad-traffic.rules /etc/snort/so_rules/

Snort è pronto per girare!
Un semplice test è:

sudo snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eth0