Setup di OSSEC (log analyzer) su CentOS 5

ossec1

Monitorare gli accessi ai sistemi informatici è un requisito fondamentale per assicurare il più alto elevato standard di sicurezza della rete. Inoltre dovuto alla recente variazione del garante sulla legge della privacy che, dopo qualche posticipo, è entrata ufficialmente in vigore il 15 Dicembre 2009, agli amministratori di sistema è stata ulteriormente complicata la vita, come se questa non lo fosse già abbastanza…

Come prevede la normativa, bisogna registrare i log di accesso ai sistemi ed assicurare l’integrità dei file di sistema marcandoli temporalmente conservando il tutto per almeno sei mesi.

Tra le varie offerte disponibili sul mercato, la scelta è caduta su un software open source su piattaforma Linux chiamato OSSEC, un software IDS molto valido che risponde ai requisiti di legge ed è approvato dal Garante.

ossec2

1. PREREQUISITI
Partendo dalla configurazione minima di CentOS 5.x, sono richiesti alcuni package aggiuntivi da installare per il corretto funzionamento. Tramite il comando yum andiamo ad installare i package richiesti:

# yum install gcc glibc make which mysql-devel mysql-server httpd mod_ssl php
# chkconfig httpd on
# chkconfig mysqld on

2. INSTALLAZIONE
Dal sito www.ossec.net si effettua il download dell’applicazione OSSEC-HIDS-2.3. OSSEC nel suo normale funzionamento salva i dati su file ma conviene appoggiarsi ad un database (sono supportati attualmente mySQL e postgreSQL) soprattutto se ci sono diversi server da monitorare e si vuole centralizzare il tutto.

L’abilitazione al supporto database (mySQL nel nostro caso) deve essere fatta durante l’installazione:

# tar -zxvf ossec-hids-2.3
# cd ossec-hids-2.3/src
# make setdb

ossec3

# cd ..
# ./install.sh

Lanciata la procedura di installazione, selezionare la tipologia di installazione e i parametri che si vogliono configurare. L’applicazione viene installata in /var/ossec.

ossec4

3. INSTALLAZIONE DELLA WEB GUI
Per installare l’interfaccia web di OSSEC, procedere in questo modo:

# wget http://www.ossec.net/files/ui/ossec-wui-0.3.tar.gz
# tar -zxvf ossec-wui-0.3.tar.gz
# mv ossec-wui-0.3 /var/www/html/ossec-wui

ossec5

Eseguire lo script di configurazione dell’interfaccia web:

# cd /var/www/html/ossec-wui
# ./setup.sh

Impostare lo username (apache nell’esempio) e la password.

ossec6

Aggiungere l’utente impostato precedentemente (apache) al gruppo ossec:

# vi /etc/group

ossec:x:500:apache

ossec7

Impostare i permessi per la directory /var/ossec/tmp:

# cd /var/ossec
# chmod 770 tmp/ -R
# chown ossec:apache tmp/ –R

ossec8

Riavviare Apache:

# service httpd restart

4. CONFIGURAZIONE
Importante da ricordare che se tra il server e l’agent è presente un firewall, la comunicazione di OSSEC avviene attraverso la porta UDP 1514.

Tramite il comando /var/ossec/bin/./manage_agent si creano gli agent dei server che saranno monitorati. Per procedere con la definizione degli agent:

# cd /var/ossec/bin/
# ./manage_agents

  • Selezioniamo A per aggiungere un agent
  • Definiamo un nome dell’agent: srv-service-lab
  • Definiamo l’IP: 172.16.21.200
  • Definiamo l’ID: 001
  • Confermiamo digitando Y

ossec9

Successivamente è necessario estrarre la chiave per configurare l’agent nell’host desiderato (srv-service-lab nell’esempio).

  • Selezioniamo E per estrarre la chiave per l’agent
  • Specifichiamo l’ID dell’agent da configurare
  • Questa chiave andrà copiata dove richiesto durante l’installazione dell’agent

ossec10

5. ABILITARE IL SUPPORTO DATABASE
Se si intende inviare i log al database, è necessario specificarlo prima di effettuare l’installazione quindi prima di lanciare lo script install.sh:

# cd ossec-hids-2.3/src
# make setdb
# cd ..
# ./install.sh

Dopo che l’installazione è terminata, abilitare il database:

# /var/ossec/bin/ossec-control enable database

Configurare MySQL

# mysql -u root -p

mysql> create database ossec;
mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec.* to ossecuser@localhost;
mysql> set password for ossecuser@localhost=PASSWORD(‘password!’);
mysql> flush privileges;
mysql> quit

Effettuare il download dello schema e importarlo nel database creato:

# wget http://www.ossec.net/files/other/mysql.schema
# mysql -u root -p ossec < mysql.schema

Configurare OSSEC per inviare gli alerts a MySQL

Nell’esempio vengono inviati gli alert all’indirizzo IP 192.168.10.30, utilizzando ossecuser come utente.

<ossec_config>
<database_output>
<hostname>192.168.10.30</hostname>
<username>ossecuser</username>
<password>password!</password>
<database>ossec</database>
<type>mysql</type>
</database_output>
</ossec_config>

Riavviare OSSEC e verificare che non ci siano errori nel log tramite il comando:

# cat /var/ossec/logs/ossec.log

Per migliorare la reportistica e le statistiche, molto scarne dell’interfaccia web di OSSEC, si può utilizzare il prodotto SPLUNK nella sua versione free che consente di avere vari report in un formato grafico più chiaro e leggibile.

E’ qui riportato un esempio:

ossec11

A questo punto non resta che mettere in sicurezza il server di OSSEC per evitare che venga compromesso.

6. SINCRONIZZARE DATA E ORA
E’ opportuno che l’ora e la data del server su cui è installato OSSEC siano corretti per salvare i log correttamente.

# yum install ntpd
# ntpdate ntp1.ien.it # Effettuiamo una prima sincronizzazione manuale
# chkconfig ntpd on
# service ntpd start

ossec12

7. INSTALLAZIONE DEL CLIENT LINUX
L’installazione del client è molto semplice ma richiede l’installazione dei package richiesti per la compilazione di OSSEC.

# yum install gcc make which
# tar –xzvf ossec-hids-2.3.tar.gz
# cd ossec-hids-2.3
# ./install

Lanciata l’installazione, è sufficiente specificare agent come tipo di installazione.

ossec14

Completata l’installazione, eseguire la configurazione del client per attivare la connessione  importando la chiave generata dal server:

# cd /var/ossec/bin/
# ./manage_agents

ossec15

Terminata la configurazione, riavviare il daemon OSSEC:

# service ossec restart

TROUBLESHOOTING

1. OSSEC riporta un agent come non connesso.

Dopo aver verificato che l’agent nel server da verificare è in modalità running (nel caso effettuare un restart del servizio), è necessario rimuovere l’ID del server dalla coda di OSSEC:

# cd /var/ossec/queue/rids
# rm 002 (nel caso l’ID del server da rimuovere corrisponda a 002)
# service ossec restart

ossec13

Fatta questa semplice procedura, l’interfaccia web di ossec dovrebbe segnalare l’agent del server come connesso.

Hai già letto questi articoli?

About P@olo

Sistemista Informatico con diversi anni di esperienza in ambito aziendale, l'implementare "soluzioni IT che realmente soddisfano le esigenze" è la filosofia lavorativa adottata ed è la chiave della buona riuscita di un progetto. Rimani aggiornato sui prossimi articoli: iscriviti ai Feed RSS e alla Newsletter.