spacer.png, 0 kB
Almaweb cerca collaboratori, chiunque è interessato mi contatti

CB Login


spacer.png, 0 kB
spacer.png, 0 kB
Installazione dell'IDS Snort su CentOS

Scritto da Marco Longo,

Pagina vista : 1714    

Pubblicato in : Networking, Linux

Snort è un applicativo Open Source sotto licenza GPL. In particolare si tratta Intrusion Detection System che si occupa di analizzare i pacchetti che transitano sulla rete e confrontarli con le firme di attacchi conosciuti, se riconosce un tentativo di intrusione invia un allert, che può mettere in moto tempestivo l'amministratore di sistema per una rapida risoluzione del problema. Snort è l'intrusion detection open source per eccellenza, vediamo come installarlo su CentOs 4.2...

Creazione dell'User

E' bene non utilizzare l'account root a meno di casi eccezionali, nell'uso quotidiano se dobbiamo effettuare operazioni che hanno bisogno di privilegi maggiori, basta dare il comando su


# groupadd <groupname>
# useradd -g <groupname> <username>

Diamo una password a questo utente:
#psswd <username>

Disabilitiamo i servizi inutili
Disabilitiamo apmd, cups, isdn, netfs, nfslock, pcmcia e portmap dando il comando (da root utilizzando su)
#chkconfig <service> off
Questo ci permetterà di risparmiare risorse di sistema, rendendo più performante il nostro intrusion detection Snort

Abilitiamo i servizi che ci servono
#chkconfig httpd on
#chkconfig mysqld on
#service httpd start
#service mysqld start

Installiamo i pacchetti che ci servono
Ricordate che se non siete loggati come root prima di dare alcuni comandi dovete dare il comando "su".
Ora andiamo nella cartella /root/ con questo comando
#cd /root/

creiamo la cartella snortinstall
#mkdir snortinstall

Installiamo Snort


Scarichiamo il pacchetto di Snort dal sito
# wget http://www.snort.org/dl/current/snort-2.6.1.5.tar.gz

Decomprimiamo il pacchetto del nostro Intrusion Detection
# tar -xvzf snort-2.6.1.5.tar.gz
# cd snort-2.6.1.5

Compiliamolo
# ./configure --with-mysql --enable-dynamicplugin
# make
# make install

Aggiungiamo un utente per snort
# groupadd snort
# useradd -g snort snort -s /sbin/nologin

Creiamo le cartelle per Snort
#  mkdir /etc/snort/
# mkdir /etc/snort/rules
# mkdir /var/log/snort
# cd etc/ (etc/ non /etc/)
# cp * /etc/snort/

Adesso tornate nella cartella principale di installazione, scaricate e installate le regole per snort
# cd /root/snortinstall
# wget
Queto_Link (tasto desto/copia indirizzo)
# tar -xvzf nortrules-pr-2.4.tar.gz
# cd ruled
# cp * /etc/snort/rules

Modifichiamo la configurazione principale, aprendo il file /etc/snort/snort.conf effettuiamo i seguenti cambiamenti:

var HOME_NET 10.0.0.0/24 (Naturalmente l'indirizzo che ho messo io è solo di esempio voi dovrete mettere quello della rete in cui deve operare l'Intrusion Detection)
var EXTERNAL_NET !$HOME_NET (Questo significa che tutto quello che non fa parte della HOME_NET è rete esterna)
Cambiamo "var RULE_PATH ../rules" in "var RULE_PATH /etc/snort/rules"
Dopo la linea che dice "preprocessor stream4_reassemble" aggiungiamo la linea "preprocessor stream4_reassemble: both,ports 21 23 25 53 80 110 111 139 143 445 513 1433" (senza le virgolette)

Ora diciamo a Snort di fare il log in Mysql
Togli il commento alla seguente riga:
output database: log, mysql, user=snort password=<the password you gave it> dbname=snort host=localhost
Ricordati la password che metti, dopo ti servirà per configurare mysql

Impostiamo Snort per partire all'avvio del sistema
Spostiamoci nella directory /etc/init.d e scriviamo:
# wget http://internetsecurityguru.com/snortinit/snort
# chmod 755 snort
# chkconfig snort on.


Configuriamo Mysql
Ecco la sequenza di comandi per configurare Mysql:
mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
>Query OK, 0 rows affected (0.25 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('password_from_snort.conf');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye


Esegui i seguenti comandi per creare le tabelle
#mysql -u root -p < ~/snortinstall/snort-2.6.0/schemas/create_mysql snort
#Enter password: la root password di mysql

Ora bisogna controllare se sono state create tutte le tabelle nel database:
# mysql -p
>Enter password:
mysql> SHOW DATABASES;

(You should see the following)

+------------+
| Database

+------------+
| mysql
| Snort
| test
+------------+

3 rows in set (0.00 sec)

mysql> use snort
>Database changed
mysql> SHOW TABLES;
+------------------+

| Tables_in_snort
+------------------+

Version 15 Page 10 of 19 Updated 8/17/2006 8:30 AM
| data
| detail
| encoding
| event
| icmphdr
| iphdr
| opt
| reference
| reference_system
| schema
| sensor
| sig_class
| sig_reference
| signature
| tcphdr
| udphdr
+------------------+
16 rows in set (0.00 sec)
exit;


Installiamo Base
Vai nella cartella di download di snort (cd /root/snortinstall)

Aggiorniamo pear

# pear upgrade --force PEAR-1.3.3 Archive_Tar-1.3.1 Console_Getopt-1.2
# pear upgrade --force PEAR-1.4.11
# pear upgrade PEAR

Istalliamo altri pacchetti che ci servono:

# yum install php-gd.i386
# pear install --alldeps Image_Graph-alpha
# pear install --alldeps Image_Canvas-alpha
# pear install --alldeps Numbers_Roman

SCARICHIAMO ADODB

# wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb480.tgz

SCARICHIAMO BASE

#wget Questo_Link (tasto destro/Copia indirizzo)

Configuriamo il Firewall
# nano /etc/sysconfig/iptables

Aggiungiamo la seguente riga (Non mettetela in fondo, ma prima del REJECT finale)

"-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT" (senza le virgolette)

Ora cancellate le seguenti righe:

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Date il comando "service iptables restart" e dovreste vedere una cosa del genere
[root@IDS ~]# service iptables restart
Azzerare le regole del firewall:                                             [  OK  ]
Impostazione delle catene su policy ACCEPT:filter             [  OK  ]
Scaricamento dei moduli iptables:                                        [  OK  ]
Applicazione delle regole firewall iptables:                          [  OK  ]

Ora se volete vedere le regole dell'iptables basta dare il comando:
# iptables -L


Istalliamo ADODB
ADOdb è una libreria per php, è utilizzata per connettersi a molti tipi di database. Base ha bisogno di questa libreria per poter funzionare, quindi vediamo come installarla...

# cd /var/www/
# tar -xvzf /root/snortinstall/adodb480.tgz


Installiamo e configuriamo BASE
# cd /var/html/www
# tar -xvzf /root/snortinstall/base-1.2.6.tar.gz
# mv base-1.2.6/ base/ (questo rinomina la directory base-1.2.5 in "base")

Copia il file base_conf.php.dist in base_conf.php
Editiamo il file "base_conf.php" e aggiungiamo i seguenti parametri

$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/ ";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_configurata_in_snort.conf";
/* Archive DB connection parameters */
$archive_exists = 0; # Set this to 1 if you have an archive DB

Ora dal vostro browser accedete alla pagina https://ip_address/base

Facciamo partire snort all'avvio come servizio:

# chkconfig snort on
# service snort start

La prima volta che entrerete in Base vi chiederà di ottimizzare il DataBase, clickate su "setup page"

Finito tornate alla pagina principale e vedrete Base funzionante


Proteggiamo la directory di BASE
Attualmente la directory di Base aperta a chiunque si colleghi, bisogna proteggerla con una password se non si vogliono brutte sorprese:

# mkdir /var/www/passwords
# /usr/bin/htpasswd -c /var/www/passwords/passwords NOMEUTENTE

Dove NOMEUTENTE è l'user che utilizzerete per connettervi alla pagina di Snort. Dopo aver dato il suddetto comando vi chiederà di digitare la password per l'utente

Ora editiamo httpd.conf (/etc/httpd/conf). Sotto le righe:
<Directory />
Options FollowSymLinks
AllowOverride
</Directory>

Dovete aggiungere le seguenti righe:

<Directory "/var/www/html/base">
AuthType Basic
AuthName "SnortIDS"
AuthUserFile /var/www/passwords/passwords
Require user base
</Directory>

Salvate le modifiche e fate ripartire apache con il commando

# Service httpd restart

Installiamo NTOP tramite yum
Nella cartella /etc/yum.repos.d create un file chiamato dag.repo e aggiungete il seguente testo nel file:

[dag] name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag/
gpgcheck=1
enabled=1

Importiamo le Chiavi PGP
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

Per far partire l'installazione ora scrivi:
# yum install ntop

Editiamo la configurazione di ntop modificando il file /etc/ntop.conf
# nano /etc/ntop.conf

Settiamo la scheda sulla quale Snort farà lo sniffing dei pacchetti. Se hai una sola scheda si tratta della Eth0
--interface eth1 (O un'altra interfaccia)

Togliamo il commento alla configurazione del SSL sulla porta 3001 cambiando la riga, da cosi:
#--https-server 3001
a cosi
--https-server 3001

Apriate la porta 3001 nel firewall aggiungendo le seguenti righe al file /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3001 -j ACCEPT

Facciamo ripartire iptables
# service iptables restart

A questo punto settiamo la password per NTOP
# ntop @/etc/ntop.conf -A
Inserischi la tua password

Torna nel file ntop.conf e cambia la riga
#--daemon
in
--daemon

Ora configuriamo il sistema in modo che NTOP parti come servizio all'avvio e lo facciamo partire
# chkconfig ntop on
# service ntop start

Collegati con il tuo browser  in https alla porta 3001, l'indirizzo dovrebbe essere una cosa del genere: https://ip_address:3001/

Dovreste vedere la pagina di NTOP, se avete qualche errore controllate se avete fatto partire il servizio e se la configurazione è come sopra...


Finita l'installazione
Ora è il momento di testare snort, i migliori programmi per fare dei test sono GFI Languard e Nessus, preferibilmente il secondo. Fate uno scan della macchina con snort e poi andate a controllare BASE. Dovreste avere degli Alerts. Ora dovrai configurare snort in base alle tue necessita, questo è uno step obbligatorio se volete che il vostro IDS non vi dia falsi allarmi e sia sempre efficiente, quindi datevi da fare e buon lavoro.


NOTE

Se il servizio di snort non parte, come è successo a me potrebbero esserci dei problemi con le regole o il database, un comando utile per fare il troubleshooting è il seguente:
# snort -T
Fa il test della configurazione, e stampa sul terminale tutto il debug


Ultimo aggiornamento: 01-11-2007 15:17

Tags : Snort Intrusion Detection Base NTOP
User comments Quote this article in website Print Send to friend Save this to del.icio.us Related articles Read more...
Installazione dell'IDS Snort su CentOS
PDF
Venerdì 06 Luglio 2007 14:46
 
spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB