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

 

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

 

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

 

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

 

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

 

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.

 

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          # Effettuare una prima sincronizzazione manuale
# chkconfig ntpd on
# service ntpd start

ossec12

 

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

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.

ossec centos 1

14 Comments

  1. giacomo 21/01/2010
  2. Paolo 25/01/2010
  3. giacomo 25/01/2010
  4. Corrado 04/03/2010
  5. Paride 10/03/2010
    • Paolo 11/03/2010
  6. Corrado 12/03/2010
  7. Paolo 27/04/2010
  8. sergio 22/02/2011
    • Paolo 22/02/2011
  9. Samuele 04/11/2011
    • Paolo 04/11/2011
  10. viandate 07/11/2011
    • Paolo 07/11/2011