Instalación de OSSEC en CentOS 6 con interface web AnaLogi

OSSEC es un sistema de detección de intrusiones (IDS) de código abierto con interesantes funciones y capaz de funcionar en una gran variedad de sistemas incluido Windows. A pesar de ello su interface web ha recibido muchas críticas por simple y poco informativa así que se han desarrollado otras, como Splunk y AnaLogi. En este artículo veremos cómo instalar OSSEC con esta última.



Instalación de OSSEC: el servidor 

La versión que se instalará es la OSSEC 2.7 la cual requiere MySQL 5.x, la versión de AnaLogi es la 1.3. Verificamos e instalamos las dependencias:

# yum install mysql-devel mysql-server mysql gcc gcc-c++ autoconf automake php php-mysql httpd

Hay que asegurarse de que SELINUX esté inhabilitado, para ello abrimos /etc/selinux/config (si no existe es que no tenemos SELINUX activo) y comprobamos la línea:

SELINUX = disabled

y ya podemos instalar OSSEC:

# wget http://www.ossec.net/files/ossec-hids-2.7.tar.gz
# tar -zxvf ossec-hids-2.7.tar.gz
# cd ossec-hids-2.7/src
# make setdb
# cd ..

Ahora debemos crear la base de datos que necesita OSSEC para trabajar:

# mysql -u root -p

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

e importamos el esquema:

# cd ossec-hids-2.7/src/os_dbd
# mysql -u root -p ossec < mysql.schema 

Llegados a este punto ya podemos lanzar el instalador:

# ./install.sh

Aparece el mensaje de bienvenida:
y oprimimos ENTER para empezar:
Si vamos a usar OSSEC en una sola máquina, con o sin subdominios, podemos elegir tipo de instalación local. La opción active response permite que OSSEC ejecute acciones predeterminadas dependiendo de la alerta que se de, si no lo activamos funcionará sólo en modo monitor. Oprimimos ENTER de nuevo y el software se compilará e instalará con las opciones que hayamos seleccionado. Si se instala tras un firewall hay que tener en cuenta que el servidor se comunica con los agentes por el puerto UDP 1454:

# vi /etc/sysconfig/iptables -A INPUT -m state —state NEW -m udp -p udp —dport 1514 -j ACCEPT
# service iptables restart

Modificamos ahora el archivo de configuración con los datos para acceder a la DB:

# vi /var/ossec/etc/ossec.conf
<database_output>
   <hostname>127.0.0.1</hostname>
   <username>ossec</username>
   <password>clave</password>
   <database>ossec</database>
   <type>mysql</type>
</database_output>

Para terminar, habilitamos la base de datos y arrancamos OSSEC:

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

Si todo va bien obtendremos una salida similar a ésta:

Para que OSSEC nos remita las alertas abrimos /var/ossec/etc/ossec.conf y en la sección <global>, justo al inicio, escribimos nuestro correo entre las etiquetas <email_to> (pueden ser más de una).

Instalación del agente

Si efectuamos una instalación agente/servidor debemos indicarle ahora al servidor que se van a instalar clientes (agentes) posteriormente. Para ello ejecutamos:

# /var/ossec/bin/manage_agents

con lo que accedemos al menú de gestión de agentes que nos va a solicitar un nombre, su ip y un id:

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your action: A,E,L,R or Q: A

- Adding a new agent (use ‘\q’ to return to the main menu).
  Please provide the following:
   * A name for the new agent: cliente01
   * The IP Address of the new agent: <IP>
   * An ID for the new agent[001]: (ENTER)
Agent information:
   ID:001 
   Name:cliente01
   IP Address:<IP>

Confirm adding it?(y/n): y
Agent added.

El menú es muy claro y no requiere más explicación. Una vez añadido el o los agentes que necesitemos hay que reiniciar el servidor:

# /var/ossec/bin/ossec-control restart

Pasamos ahora a instalar el agente en otro host. Descargamos e instalamos OSSEC como hicimos en el paso anterior pero sin crear ninguna base de datos:

# ./install.sh

En este caso elegimos instalar agente y seleccionamos las mismas opciones que en el servidor. Se nos solicitará además la ip de éste. Terminada la compilación sin errores accedemos de nuevo al gestor de agentes desde el servidor para extraer la clave del agente (opción E):

# /var/ossec/bin/manage_agents

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your action: A,E,L,R or Q: E
Available agents:
   ID: 001, Name: cliente01, IP: <IP CLIENTE>
Provide the ID of the agent to extract the key (or ‘\q’ to quit): 001

Agent key information for ‘001’ is:
MDE0IHZwbi1mdy5yZWQtYWxmLmNvbSAxMC4wLjAuMjU0IGZhZjhhZWE4MDY1ZmVlMTUwMGIyN2ViNTk4M2FjODAzZTQwMzA5MzQ3ZjYzNzgzNWFhZDM2OTY5YmFkZDc5OTM= 

La clave obtenida la copiamos y, desde el host donde está el agente, ejecutamos el gestor que nos pedirá que se la peguemos:

# /var/ossec/bin/manage_client 

****************************************
* OSSEC HIDS v2.6 Agent manager.     *
* The following options are available: *
****************************************
   (I)mport key from the server (I).
   (Q)uit.
Choose your action: I or Q: I
* Provide the Key generated by the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.

Paste it here (or ‘\q’ to quit): MDE0IHZwbi1mdy5yZWQtYWxmLmNvbSAxMC4wLjAuMjU0IGZhZjhhZWE4MDY1ZmVlMTUwMGIyN2ViNTk4M2FjODAzZTQwMzA5MzQ3ZjYzNzgzNWFhZDM2OTY5YmFkZDc5OTM=
Agent information:
   ID:001
   Name:cliente01
   IP Address: IP CLIENTE

Confirm adding it?(y/n): y
Added. 

Y ya podemos activarlo:

# /var/ossec/bin/ossec-control start

Instalación de AnaLogi

Necesitamos:

# yum install httpd php php-mysql mod_ssl

AnaLogi se encuentra en GitHub así que podemos instalar este repositorio si no lo tenemos aun:

# yum install git-core
# cd /var/www/
# git clone https://github.com/ECSC/analogi.git
# mv analogi ossecui

o lo descargamos directamente, lo descomprimimos y le cambiamos el nombre por uno mas simple:

# cd /var/www/
# wget https://github.com/downloads/ECSC/analogi/AnaLogi_v1.3.zip
# unzip AnaLogi_v1.3.zip
# mv ECSC-analogi-a1cd5e3 ossecui

Asignamos usuario y grupo a la carpeta:

# chown -R apache:apache ossecui

Y para terminar configuramos el acceso a la base de datos en el archivo db_ossec.php:

# vi /var/www/ossecui/db_ossec.php
define ('DB_USER_O', 'ossec');
define ('DB_PASSWORD_O', 'clave');
define ('DB_HOST_O', '127.0.0.1');
define ('DB_NAME_O', 'ossec');

A partir de aquí debemos realizar las modificaciones oportunas en el sistema dependiendo de si accedemos a la interface como vhost o como carpeta protegida. Al acabar reiniciamos httpd:

# /etc/init.d/httpd restart

y ya podemos acceder desde http://ip-o-dominio o http://dominio/ossecui según lo hayamos configurado. 

2 comentarios:

  1. Hola estaba siguiendo tu articulo para la instalación ya casi termino solo tengo una duda.

    ¿Las credenciales de la base son las del ossec server?

    Saludos

    ResponderEliminar
  2. Hola compañero, así es, son las credenciales de la DB que creamos manualmente antes de instalar. Gracias por tu visita.

    ResponderEliminar