Installazione di Snort su Debian 4

Premessa
Per prima cosa occorre istruire APT su dove prelevare i pacchetti necessari, in particolare il repository Dotdeb è fondamentate. Modifichiamo il file di configurazione di APT inserendo le righe di seguito.

# vi /etc/apt/sources.list

deb http://debian.fastweb.it/debian stable main contrib non-free
deb http://packages.dotdeb.org stable all

Adesso occore rendere effettive le modifiche alla configurazione, per farlo usiamo il comando

# apt-get update

Prima di procedere con il resto dell’installazione, è consigliabile tenere l’ora di sistema aggiornata. Utilizziamo il servizio NTP puntando al server primario dello IEN di Torino

# apt-get install ntpdate
# ntpdate server ntp1.ien.it

Se già non disponiamo di regole di firewalling, possiamo utilizzare il tool Lokkit, molto semplice da configurare. Per il nostro scopo lasceremo aperte solo le porte per Ssh e Https.

# apt-get install lokkit

# lokkit
**** Scegliere Medium e Custom: Abilitare porte 22,443 ****

Adesso possiamo compinciare con l’installazione dei pacchetti richiesti da Snort. Infatti, l’accesso ai report di Snort avverrà tramite interfaccia web protetta da SSL e con il supporto di Php e MySQL, Installiamo questi pacchetti e rispondere alle domande che ci verranno poste per la configurazione del certificato SSL.

Installazione di Apache con supporto PHP5
# apt-get install apache-ssl php-pear php5 php5-cli php5-common php5-dev php5-gd php5-mysql libapache-mod-php5 php5-gd libphp-adodb
**** Rispondere alle domande pr la configurazione di SSL ****

Dato che utilizzeremo Apache 1.3.x, possiamo procedere con la rimozione della versione 2.x

# apt-get remove apache2.2-common

Installazione di MySQL
Procediamo ora con l’installazione di MySQL, necessario per la memorizzazione dei dati catturati da Snort, Durante la fase di configurare ci verrà chiesto di inserire una password per l’utente root su mysql.

# apt-get install mysql-server-5.0 mysql-client-5.0 libmysqlclient15-dev

Installazione di Snort
L’installazione di Snort sarà fatta dai sorgenti, quindi occorre predisporre il sistema con il software necessario per la compilazione.

# apt-get install libnet1 libnet1-dev libpcre3 libpcre3-dev autoconf automake1.9 libpcap0.8 libpcap0.8-dev gcc make libtool libssl-dev gcc-4.1 g++

Come detto in precedenza, eseguiremo l’installazione dai sorgenti. Dopo averli scaricati e decompressi, lancieremo il configure abilitanto il supporto per mysql ed i plug-in dinamici.

# cd /usr/src/
# wget wget http://snort.org/dl/current/snort-2.7.0.1.tar.gz
# tar zxvf snort-2.7.0.1.tar.gz
# cd snort-2.7.0.1
# ./configure --with-mysql --enable-dynamicplugin

# make && make install

Configurazione di Snort
Prima di avviare Snort occorre creare l’utente con il quale verrà eseguito ed alcune directory e file di configurazione.

# mkdir /etc/snort
# mkdir /var/log/snort
# groupadd snort
# useradd -g snort snort

# chown snort:snort /var/log/snort
# cd /etc/snort
# cp /usr/src/snort-2*/etc/*.conf* .
# cp /usr/src/snort-2*/etc/*.map .

Snort, come altri IDS, si basa su delle firme per poter riconoscere le intrusioni. Tali firme sono periodicamente aggiornate. Tali firme sono disponibili sul sito ufficiale di Snort, previa registrazione gratuita. Io per comodità le ho già scaricate in precedenza ed ora provvedo ad aggiornarle.

# cd /root
# wget http://192.168.0.4/snortrules-snapshot-CURRENT.tar.gz
# cd /etc/snort

# tar xvzf /root/snortrules-snapshot-CURRENT.tar.gz

Occorre modificare il file di configurazione di Snort, che si trova in /etc/snort, commentando alcune righe ed aggiungendone di nuove.

# vi /etc/snort/snort.conf
**** Commentare le righe presenti ****
var RULE_PATH
var HOME_NET
var EXTERNAL_NET

**** Aggiungere queste righe ****

var RULE_PATH /etc/snort/rules
var HOME_NET 192.168.0.0/24 # Inserire la classe di ip utilizzati nella LAN
var EXTERNAL_NET !$HOME_NET

Creazione del database MySQL
Un’altra operazione importante, consiste nella creazione di un utente per l’accesso a mysql e la creazione di un database dove conservare gli eventi generati da Snort. Per prima cosa, accediamo come root a mysql e inseriamo i comandi riportati.

# mysql -u root -p
create database snort;

grant CREATE, INSERT, SELECT, DELETE, UPDATE \ on snort.* to snort@localhost;
SET PASSWORD FOR snort@localhost=PASSWORD('snort_password');
exit;

Ora che il database è creato, possiamo importarne la struttura che si trova nei sorgenti di Snort.

# cd /usr/src/snort-2*/schemas
# mysql -u root -p < create_mysql snort

Configurazione di Apache-SSL e PHP

Dato che i rapporti generati da Snort saranno accessibili via web, occorre apportare delle modifiche alla configurazione di Apache e PHP, ovvero creare la DocumentRoot e aggiungere il supporto PHP.

# mkdir /var/www
# chown -R www-data /var/www

# vi /etc/apache-ssl/httpd.conf

**** Decommentare queste righe ****
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

# vi /etc/php5/apache/php.ini

**** Aggiungere questa riga ****
extension=mysql.so
extension=gd.so

# /etc/init.d/apache-ssl restart

Installazione di BASE
BASE si occuperà di generare i rapporti di Snort per renderli accessibili via web browser. La sua installazione è molto semplice e richiede un componente, ADODB, per la connessione al database.

# cd /var/www
# wget http://192.168.0.4/base-1.3.8.tar.gz

# tar zxvf base-1.3.8.tar.gz
# rm base-1.3.8.tar.gz
# mv base-1.3.8/ base
# chmod 777 base

# wget http://switch.dl.sourceforge.net/sourceforge/adodb/adodb501beta.tgz
# tar zxvf adodb501beta.tgz
# rm adodb501beta.tgz
# mv adodb5/ adodb

Configurazione di BASE

La configurazione consiste nell’inserire i parametri per la connessione al server MySQL e al database di Snort creato in precedenza. Tali parametri vanno inseriti nel fine base_config.php.

# cd base
# cp base_conf.php.dist base_conf.php

# vi base_conf.php

**** Modificare i valori ****
$BASE_Language = ‘italian’;
$BASE_urlpath = “/base”;

$DBlib_path = “/var/www/adodb/”;
$DBtype = “mysql”;
$alert_dbname = “snort”;
$alert_host = “localhost”;
$alert_port = “”;

$alert_user = “snort”;
$alert_password = “snort_password”;

Adesso possiamo accedere tramite web browser all’URL di seguito per procedere con la creazione di alcune tabelle all’interno del database di Snort.

https://192.168.0.5/base/base_db_setup.php
—> Cliccare su Create BASE AG

—> Cliccare su Goto the Main page to use the application

Accesso limitato ai reports
E’ consigliabile limitare l’accesso ai report, magari con nome utente e password, e se volgiamo inserendo l’accesso esclusivo ad alcuni ip della rete da cui vogliamo visualizzare i reports.

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

**** Immettere una password per l’utente snort_admin ****

# vi /etc/apache-ssl/httpd.conf

**** Modificare queste righe ***
<Directory />
Options
SymLinksIfOwnerMatch AllowOverride None
</Directory>

**** Con ****
<Directory />
Options FollowSymLinks AllowOverride None

</Directory>

**** Aggiungere queste righe ****
<Directory “/var/www/base”>
Order deny,allow
Allow from 192.168.0.0/255.255.255.0
AuthName “Snort IDS Web Interface”
AuthUserFile /var/www/passwords/passwords
AuthType Basic

Require valid-user
</Directory>

Pacchetti per la creazione dei grafici
Per ottenere dei grafici nelle pagine dei report occorre installare dei pacchetti da supporto a PHP.

# rm /etc/alternatives/php
# ln -s /usr/bin/php5 /etc/alternatives/php
# pear config-set preferred_state alpha
# pear install Image_Color

# pear install Image_Canvas
# pear install Image_Graph

# /etc/init.d/apache-ssl restart

Installazione di Barnyard
Questo programma snellisce il lavoro effettuato da Snort e ne permette un miglior funzionamento e velocià.

# cd /usr/src
# wget http://www.snort.org/dl/barnyard/barnyard-0.2.0.tar.gz
# tar xvzf barnyard-0.2.0.tar.gz

# cd barnyard-0.2.0
# ./configure --enable-mysql
# make &&make install

Configurazione di Barnyard
Ora che Barnyard dobbiamo integrarlo nella configurazione di Snort per poter lavorare correttamente.

# cp /usr/src/barnyard-0.2.0/etc/barnyard.conf /etc/snort
# vim /etc/snort/snort.conf

**** Aggiungere queste righe ****

output alert_unified: filename snort.alert, limit 128
output log_unified: filename snort.log, limit 128

**** Terminare i processi Snort ****

# vim /etc/snort/barnyard.conf

**** Aggiungere/Modificare queste righe ****
config hostname: sensor
config interface: eth0
output log_acid_db: mysql, database snort, server localhost, user snort, password snort_password, detail full

# cd /etc/snort

# vi bylog.waldo

**** Aggiungere queste righe ****
/var/log/snort snort.log
108247783
0

Avvio di Snort & Barnyard
Ora siamo pronti per poter avviare entrambi i servizi. Utilizziamo questa serie di righe per avviarli entrambi.
# /usr/local/bin/barnyard -c /etc/snort/barnyard.conf -g \

/etc/snort/gen-msg.map -s /etc/snort/sid-msg.map \
-d /var/log/snort -f snort.log \
-w /etc/snort/bylog.waldo &

Installazione e Configurazione di Oinkmaster
Come detto in precedenza, il lavoro svolto dall’IDS si basa sul riconoscimento di determinate attività confrontandole con degli elenchi, proprio come un antivirus. Periodicamente tali elenchi devono essere aggiornati per poter fronteggiare a nuove tipologie di attacchi. Oinkmaster si occupa di automatizzare le procedure per l’aggionamento delle firme e dei file di configurazione. Le firme sono disponibili per download previa registrazione gratuita, con la quale si ottiene un codice personale da inserire nel file di configurazione al posto del tag <CODE>.

# cd /usr/src

# wget http://puzzle.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz
# tar xvzf oinkmaster*
# cd oinkmaster-2.0
# cp oinkmaster.pl /usr/local/bin
# mkdir /usr/local/etc
# cp oinkmaster.conf /usr/local/etc
# mkdir /tmp/oinktest

# vi /usr/local/etc/oinkmaster.conf

**** Aggiungere all’url Snort 2.4 il codice Oinkmaster ****

url = http://www.snort.org/pub-bin/oinkmaster.cgi/<CODE>/snortrules-snapshot-CURRENT.tar.gz

# /usr/local/bin/oinkmaster.pl -o /tmp/oinktest

Script init.d per l’avvio automatico al boot
# vi /etc/init.d/snort-barn

#!/bin/bash
/sbin/ifconfig eth1 up
/usr/local/bin/snort -Dq -u snort -g snort -c \

/etc/snort/snort.conf -i eth1 /usr/local/bin/barnyard -c /etc/snort/barnyard.conf -g \
/etc/snort/gen-msg.map -s /etc/snort/sid-msg.map -d \
/var/log/snort -f snort.log -w \
/etc/snort/bylog.waldo &

# chmod +x /etc/init.d/snort-barn
# update-rc.d snort-barn defaults 95

  • Facebook
  • Google Bookmarks
  • Windows Live Favorites
  • LinkedIn
  • Delicious
  • Hotmail
  • Twitter
  • Windows Live Spaces
  • Yahoo Bookmarks
  • Yahoo Messenger
  • Share/Bookmark
  1. Nessun commento ancora...
  1. Nessun trackback ancora...

Spam Protection by WP-SpamFree