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