Corregiendo problema con clientes en Wazuh

Corregiendo problema con clientes en Wazuh

Problemas de Wazuh - Clientes no se conectan

Guía

  • Descripción del Problema
  • Solución Final

Descripción del problema

En un momento dado, los clientes dejaron de reportarse contra el servidor a la vez, el servicio de Wazuh dejó de funcionar. Lo que me llevo a investigar el servidor y los clientes. Finalmente, se concluyó que el problema deriva de la falta de espacio en el servidor. Es decir, la partición donde Wazuh almacena los logs de los clientes se ocupa a su 100% de capacidad. Esto debido a una mala configuración de los logs que envían los clientes al servidor, o bien, por disponer de una gran cantidad de clientes. Esto conlleva varios problemas, entre ellos, que los clientes no se puedan comunicar con el servidor. Ejemplicando el problema: wazuh-error-espacio1.jpg Imagen 1. Como se puede observar en la Imagen 1, la partición /var no tiene espacio libre y la partición /home si tiene. En consecuencia: wazuh-error-espacio2.jpg Imagen 2. wazuh-error-espacio3.jpg Imagen 3.

Esta solución consiste en crear un syslink a nivel de sistema operativo con esto se espera, hacer creer a la aplicación que la dirección de /path no se modifica pero a bajo nivel se están guardando los archivos en otra partición con más espacio que la /var. Y esto haría descongestionar la partición /var y consecuentemente alcanzar el objetivo hacer que la aplicación funcione correctamente.

Symlink: básicamente, es un enlace simbólico(symbolic link), también conocido como enlace simbólico(symlink) o enlace suave(soft link), es un tipo especial de archivo que apunta a otro archivo o directorio. Al final del post se da más detalles al respecto.

Paso 1: detener servicios de la aplicación

Es recomendable, que ante todo, se detengan los servicio que utiliza Wazuh. Para ello ejecutamos los siguientes comandos en este orden:

systemctl stop elasticsearch
systemctl stop filebeat
systemctl stop kibana
systemctl stop wazuh-manager
systemctl stop wazuh-api

wazuh-error-espacio9.jpg Imagen 4.

Paso 2: crear carpeta destino

Primero debemos crear una carpeta que será el destino de los logs que almacena Wazuh. Para ello corremos el siguiente comando:

mkdir /home/ossec

wazuh-error-espacio4.jpg Imagen 5.

La partición /home es donde tenemos espacio.

Paso 3: comprobar permisos de carpeta

En este paso debemos comprobar cuales son los permisos de la antigua carpeta, en nuestro caso /var/ossec para asignarles los mismos a la nueva carpeta creada en el paso anterior para que le sea transparente a Wazuh. Para ello, corremos el siguiente comando:

cd /var
ls -l

wazuh-error-espacio5.jpg Imagen 6. Podemos observar en la imagen 6, que la carpeta original tienen como owner al usuario root y group owner al grupo ossec. Esto es justamente lo que debemos configurar en la carpeta destino. Ahora debemos hacer lo mismo con la carpeta destino, obteniendo: wazuh-error-espacio6.jpg Imagen 7. Podemos ver en la imagen 7 que no poseen los mismos owner y group owner. Por lo que es necesario modificarlos. Para ello ejecutamos:

chown -R root:ossec /home/ossec
ls -l

wazuh-error-espacio7.jpg Imagen 8.

Paso 4: copiar contenido de carpeta

Vamos a copiar todo el contenido de la carpeta orginal a la destino. Para ello ejecutamos:

cd /var/ossec
cp -p -r * /home/ossec

wazuh-error-espacio8.jpg Imagen 9.

Esta operación puede demorar mucho, dependiendo de la cantidad de archivos

Paso 5: Realizar copia de datos

En este paso se realizará una copia de los datos, para poder recuperarlos ante cualquier problema. Para ello ejecutamos:

cp /var/ossec /var/ossecOLD

wazuh-error-espacio10.jpg Imagen 10.

En este paso se debe crear, finalmente, el symlink para linkear las carpetas. Para ello ejecutamos:

ln -s /home/ossec /var/ossec

wazuh-error-espacio11.jpg Imagen 11.

Paso 7: comprobar espacio

Ahora revisaremos como quedo la carpeta ossec dentro del directorio /var. Para ello ejecutamos el comando:

du -h --max-depth=1

wazuh-error-espacio12.jpg Imagen 12. Como se puede observar en la imagen 10, no se encuentra la carpeta /ossec, pero si la /ossecOLD con la copia de los datos. Esto es lo correcto, y se debe a que la carpeta en si no se encuentra en /var.

Paso 8: mover la copia

Este paso se puede omitir, aunque es recomndable realizarlo. Vamos a mover el directorio /var/ossecOLD hacia otro lugar donde dispongamos de espacio, de esta manera, finalmente descongestionamos el espacio en la partición /var. Ejecutamos:

mv /var/ossecOLD /home/backup

wazuh-error-espacio13.jpg

Imagen 13.

Paso 9: comprobar espacio

En este paso comprobaremos que se ha liberado el espacio en la aprtición /var. Para ello ejecutamos:

df -h

wazuh-error-espacio15.jpg Imagen 14.

Paso 10: reiniciar servidor

Como se ve en la imagen 9, se debe reiniciar el servidor mediante el comando

reboot

Paso 11: comprobación final

Esperamos el tiempo suficiente para que el servidor vuelva a estar operativo tras haberlo reiniciado en la paso anterior. Luego, iniciamos los servicios de la siguiente manera:

systemctl start elasticsearch
systemctl start filebeat
systemctl start kibana
systemctl start wazuh-manager
systemctl start wazuh-api

Paso 12: acceder desde la interfaz web

En caso de que todos los servicios estén funcionando correctamente, debemos comprobarlo desde la interfaz web. Para ello accedemos vía browser a la dirección: "ip-del-servidor:5601" e ir a la opción de Wazuh desde el menú izquierdo.

Paso 13: borrar copias

Luego haber comprobado el correcto funcionamiento de toda la aplicación, debemos eliminar la copia de datos que habiamos creado por prevención. Para ello ejecutamos:

rm -R /home/backup
rm -R /var/ossecOLD

Hasta aquí la solución que funciono en mi caso.

Symlink: Ante todo es necesario entender que es un sysmlink. Básicamente, es un enlace simbólico(symbolic link), también conocido como enlace simbólico(symlink) o enlace suave(soft link), es un tipo especial de archivo que apunta a otro archivo o directorio. Existen dos tipos de symlink:

  • hard link: es como un nombre adicional para un archivo existente. Los enlaces físicos asocian dos o más nombres de archivo con el mismo inodo . Puede crear uno o más enlaces físicos para un solo archivo. No se pueden crear vínculos físicos para directorios y archivos en un sistema de archivos o partición diferente.
  • soft link: es parecido a un shortcut de Windows. Es un puntero indirecto a un archivo o directorio. A diferencia de un enlace físico, un enlace simbólico puede apuntar a un archivo o directorio en un sistema de archivos o partición diferente.