OSSEC: HIDS para control de accesos e integridad de archivos

OSSEC es una herramienta HIDS muy util con la que se puede monitorizar los accesos al host, si se cambia algún archivo de configuración, realizar acciones determinadas para situaciones concretas (bloquear un usuario al de X intentos de conectarse por SSH). También cuenta con un modelos servidor-cliente para poder centralizar todo y visualizarlo mediante un panel web. Además de esto, también se puede configurar notificaciones por email para que mande correos cuando surjan alertas.

Server

Instalar todas las dependencias necesarias

apt install inotify-tools build-essential
apt install mysql-server libmysqlclient-dev mysql-client apache2 php5 libapache2-mod-php5 php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Descargar OSSEC

cd /tmp && wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz

Desempaquetarlo

tar -zxvf ossec-hids*

Borrar el archivo empaquetado

rm -fr ossec-hids*.tar.gz

Acceder al directorio src para habilitar la base de datos antes de instalar

cd /tmp/ossec-hids*/src

Habilitar la base de datos

make setdb

Error: PostgreSQL client libraries not installed.

Info: Compiled with MySQL support.

Ir a la carpeta raiz de ossec

cd /tmp/ossec-hids*

Ejecutar el instalador, hará unas preguntas para configurar la herramienta.

./install.sh
 1- Que tipo de instalación Usted desea (servidor, agente, local ó ayuda)? servidor

- Usted eligió instalación de Servidor.

2- Configurando las variables de entorno de la instalación.

- Eliga donde instalar OSSEC HIDS [/var/ossec]:

- La instalación se realizará en /var/ossec .

3- Configurando el sistema OSSEC HIDS.

3.1- Desea recibir notificación por correo electrónico? (s/n) [s]:
 - Cuál es vuestra dirección de correo electrónico? info@prueba.com

- Hemos encontrado vuestro servidor de correo (SMTP): mail.prueba.com.
 - Desea Usted usarlo? (s/n) [s]:s

--- Usando el servidor SMTP: mail.prueba.com.

3.2- Desea Usted agregar el servidor de integridad del sistema? (s/n) [s]:s

- Ejecutando syscheck (servidor de integridad del sistema).

3.3- Desea Usted agregar el sistema de detección de rootkit? (s/n) [s]:s

- Ejecutando rootcheck (sistema de detección de rootkit).

3.4- Respuestas activas le permitirán ejecutar un comando
 específico en base a los eventos recibidos. Por ejemplo,
 Usted podra bloquear una dirección IP ó deshabilitar el acceso
 de un usuario específico.
 Más información en:
 http://www.ossec.net/en/manual.html#active-response

- Desea Usted habilitar respuesta activa? (s/n) [s]:s

- Respuesta activa habilitada.

- Por omición, podemos habilitar el rechazo de servicio
 o el abandono del paquete por medio del Firewall.
 El rechazo agregara el ofendedor en el archivo etc/hosts.deny
 y el abandono bloquara la comunicación con el ofendedor en iptables
 (si el sistema fuera linux) ó ipfilter (si el sistema fuera
 Solaris, FreeBSD or NetBSD).

- Las dos repuestas pueden ser utilizadas para detener un escaneo
 de fuerza bruta contra SSHD, escaneo de puertos y otras formas
 de ataque. Por ejemplo Usted podra tambien agregar los ofensores
 de acuerdo a eventos registrados por medio de snort.

- Desea Usted habilitar la respuesta desechar en el Firewall? (s/n) [s]:s

- Respuesta desechar en el Firewall habilitada (local) para niveles >= 6

- Lista blanca para respuesta activa por omisión:
 - 213.186.33.99

- Desea Usted agregar más IPs a la lista blanca? (s/n)? [n]: s
 - IPs (lista separada por blancos): 192.168.1.1
3.5- Desea Usted habilitarsyslog remoto (puerto 514 udp)? (s/n) [s]:s

- Syslog remoto habilitado.

3.6- Estableciendo la configuración para analizar los siguientes registros:
 -- /var/log/messages
 -- /var/log/auth.log
 -- /var/log/syslog
 -- /var/log/mail.info
 -- /var/log/dpkg.log
 -- /var/log/apache2/error.log (apache log)
 -- /var/log/apache2/access.log (apache log)
 - Si Usted deseara monitorear algún otro registro, solo
 tendrá que editar el archivo ossec.conf y agregar una
 nueva entrada de tipo localfile.
 Cualquier otra pregunta de configuración podra ser
 respondida visitandonos en linea en http://www.ossec.net .

--- Presione ENTER para continuar ---

Base de datos

Crear la base de datos

mysql -u root -p
mysql> create database ossec_db;
mysql> grant INSERT,SELECT,UPDATE,CREATE,DELETE,EXECUTE on ossec_db.* to ossec_usr;
mysql> set password for ossec_usr = PASSWORD('Password');
mysql> flush privileges;

Volcar la configuración de ossec a la base de datos creada.

mysql -u root -p ossec_db < /tmp/ossec-hids*/src/os_dbd/mysql.schema

Editar el archivo de configuración de ossec

vim /var/ossec/etc/ossec.conf
<database_output>
    <hostname>127.0.0.1</hostname>
    <username>ossec_usr</username>
    <password>Password</password>
    <database>ossec_db</database>
    <type>mysql</type>
</database_output>

Habilitar la base de datos

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

Reiniciar ossec

/var/ossec/bin/ossec-control restart 

Frontend

En este caso como fronted web, se va a usar analogi. No hay muchos frontends para esta herramienta y la verdad que todos son bastante pobres. Pero de todos los que hay el mas completo puede que sea este.

Ir al directorio de apache

cd /var/www/html/

Clonar el repositorio de analogi

git clone https://github.com/ECSC/analogi.git

Crear el archivo de configuración

cp analogi/db_ossec.php.new analogi/db_ossec.php

Editar el archivo de configuración añadiendo los parametros de la base de datos

vim analogi/db_ossec.php        
define ('DB_USER_O', 'ossec_usr);
define ('DB_PASSWORD_O', 'Password');
define ('DB_HOST_O', '127.0.0.1');
define ('DB_NAME_O', 'ossec_db');

Editar el site de apache para poner una contraseña

vim /etc/apache2/sites-available/000-default.conf
    <Directory /var/www/html/analogi>
       AuthType Basic
       AuthName "Restricted Files"
       AuthBasicProvider file
       AuthUserFile "/var/www/html/analogi/.htpasswd"
       Require user admin
    </Directory>

Crear el archivo de contraseñas

htpasswd -c /var/www/html//analogi/.htpasswd admin

Cambiar el usuario del directorio

chown www-data:www-data  /var/www/html/analogi/ -R

Reiniciar apache

systemctl restart apache2.service

Cliente

Instalar las dependencias necesarias

apt install inotify-tools build-essential

Descargar ossec

cd /tmp && wget https://bintray.com/artifact/download/ossec/ossec-hids/ossec-hids-2.8.3.tar.gz

Descomprimir ossec

tar -zxvf ossec-hids-*

Borrar el tar

tar -zxvf ossec-hids-*

Ir a la carpeta de ossec

cd ossec-hids-*

Instalar Ossec y responder a las preguntas

./install.sh
1- Que tipo de instalación Usted desea (servidor, agente, local ó ayuda)? agente

- Usted eligió instalación de Agente(cliente).

2- Configurando las variables de entorno de la instalación.

- Eliga donde instalar OSSEC HIDS [/var/ossec]:

- La instalación se realizará en /var/ossec .

3- Configurando el sistema OSSEC HIDS.

3.1- Cuál es la direccion ó nombre de vuestro del servidor OSSEC HIDS?: 10.10.1.2

- Agregando el IP del servidor 10.10.1.2

3.2- Desea Usted agregar el servidor de integridad del sistema? (s/n) [s]: s

- Ejecutando syscheck (servidor de integridad del sistema).

3.3- Desea Usted agregar el sistema de detección de rootkit? (s/n) [s]: s

- Ejecutando rootcheck (sistema de detección de rootkit).

3.4 - Desea Usted habilitar respuesta activa? (s/n) [s]: s


 3.5- Estableciendo la configuración para analizar los siguientes registros:
 -- /var/log/messages
 -- /var/log/auth.log
 -- /var/log/syslog
 -- /var/log/dpkg.log


 - Si Usted deseara monitorear algún otro registro, solo
 tendrá que editar el archivo ossec.conf y agregar una
 nueva entrada de tipo localfile.
 Cualquier otra pregunta de configuración podra ser 
 respondida visitandonos en linea en http://www.ossec.net .

Ahora ir al ossec-server y ejecutar lo siguiente para crear el agente

/var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8.3 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: agent
 * The IP Address of the new agent: 192.168.1.1
 * An ID for the new agent[001]: 
Agent information:
 ID:001
 Name:agent
 IP Address:192.168.1.1

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

Ahora extraer la key del agente en el servidor

/var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8.3 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: agent, IP: 192.168.1.1
Provide the ID of the agent to extract the key (or '\q' to quit): 001

Agent key information for '001' is: 
MDAxIG5hYm9vIDEwLjEwLjEuMSBiMTVlOTY2YTU2MzQ4YjI0NzEwY2U2ZmVmY2I0YTAsadasddsdf24626sdf165f2sd61g51j5kiuy12tm

** Press ENTER to return to the main menu.

Y en el agente importar la clave

/var/ossec/bin/manage_agents
****************************************
* OSSEC HIDS v2.8.3 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):MDAxIG5hYm9vIDEwLjEwLjEuMSBiMTVlOTY2YTU2MzQ4YjI0NzEwY2U2ZmVmY2I0YTAsadasddsdf24626sdf165f2sd61g51j5kiuy12tm
Agent information:
   ID:001
   Name:agente
   IP Address:192.168.1.1

Confirm adding it?(y/n): y
Added.
** Press ENTER to return to the main menu.

Y por último reiniciar tanto el agente como el servidor

/var/ossec/bin/ossec-control restart

Desinstalar

En el caso de que se quiera desinstalar lanzar este comando

rm -f /etc/init.d/ossec /etc/rc0.d/K20ossec /etc/rc1.d/K20ossec /etc/rc2.d/S20ossec /etc/rc3.d/S20ossec /etc/rc4.d/S20ossec /etc/rc5.d/S20ossec /etc/rc6.d/K20ossec; sudo rm -rf /var/ossec; sudo /usr/sbin/deluser ossec; sudo /usr/sbin/deluser ossecm; sudo /usr/sbin/deluser ossecr; sudo /usr/sbin/deluser ossecd; sudo /usr/sbin/delgroup ossec; sudo /usr/sbin/delgroup ossecd

Fuente:

https://raymii.org/s/tutorials/OSSEC_2.8.0_Server_Client_and_Analogi_Dashboard_on_Ubuntu.html

http://www.ossec.net/ossec-docs/OSSEC-book-ch3.pdf

 

One comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *