Centralizando el control de nuestras vulnerabilidades con Centreon
Si te interesa disponer monitorizado y centralizada la información de tu infraestructura, qué mejor que utilizar GVM o Greenbone Vulnerability Management para buscar vulnerabilidades y Centreon para tenerlo centralizado y controladito.
A día de hoy existen diversos softwares que nos permiten realizar búsquedas de vulnerabilidades en nuestros sistemas, gratuitos ya es otra cosa, históricamente vengo usando OpenVAS lo que hoy en día se conoce como Greenbone, aquí tenéis un post de cómo montar GVM. Una de las razones por la que lo uso es que se puede integrar con Centreon de manera sencilla.
¿Por qué? pues porque Centreon lo considero como un único punto de control de la infraestructura, donde sé como están las máquinas en cada momento o les monitorizamos cualquier servicio que ofrezcan ¿no? Y qué menos que añadirle a cada máquina monitorizada pues 1 servicio que también me muestre su estado de vulnerabilidad. Donde veamos todo desde la misma consola, un ítem que nos dirá cuántas vulnerabilidades tiene.
Para ello, lo dicho, necesitaremos montar primeramente GVM y una vez tengamos tareas creadas de análisis, donde pongamos una o varias máquinas. Luego, obviamente chequearemos desde GVM el estado de seguridad mediante estas tareas la seguridad de nuestras máquinas y podremos visualizar reports donde nos dará todo detalle de bugs, vulnerabilidades o detalles de cómo parchear. Y podemos hacer que Centreon lea el resumen de cada Report generado por GVM, una maravilla.
Total, que… ¡empezamos!
En la máquina de Greenbone tendremos que habilitar que el servicio GMP escuche, editamos el fichero ‘/etc/systemd/system/gvmd.service’ y modificamos la siguiente línea. De:
ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock
A:
ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock --listen=0.0.0.0 --port=9390
También modificaremos el fichero del servicio de GSAD, editando ‘/etc/systemd/system/gsad.service’. y modificamos la siguiente línea, de:
ExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvm
A:
ExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvm --mlisten=127.0.0.1 --mport=9390
Y reiniciamos los servicios GVMD y GSAD:
systemctl restart gvmd systemctl restart gsad
Ya es hora pues de irnos finalmente a la máquina de Centreon, como requisito, necesitaremos primero instalar las Tools de GVM:
python3 -m pip install python-gvm python3 -m pip install gvm-tools
En caso de que te fallen los comandos anteriores, quizás necesitas python3 🙂
yum install -y python3
O quizá, si la instalación de gmv-tools nos finaliza con el error No module named ‘setuptools_rust’, pues tendremos que actualizar pip:
pip3 install -U pip
Y nada, empezamos, ¡caña! Nos vamos a descargar el script ‘check-gmp.gmp.py’ que nos permitirá conectar y consultar los resultados de los Reports de GVM y el output nos lo mostrará en el formato ‘standard’ de Nagios que como sabemos es 100% compatible con Centreon o sistemas de monitorización Open Source. Tras descargar el script nos loguearemos como el usuario de centreon y podremos a continuación hacer nuestra primera prueba desde la Shell:
wget https://raw.githubusercontent.com/greenbone/gvm-tools/master/scripts/check-gmp.gmp.py -O /usr/lib/centreon/plugins/check-gmp.gmp.py su - centreon /usr/local/bin/gvm-script --gmp-username USUARIO --gmp-password CONTRASEÑA tls --hostname DIRECCION_IP_GVM /usr/lib/centreon/plugins/check-gmp.gmp.py -F DIRECCION_IP_MAQUINA --last-report --status --task "NOMBRE_DE_LA_TAREA"
Y ya como siempre, una vez que en shell sabemos cómo funciona, lo traemos a Centreon, tendremos que definir un Comando del que luego crearemos ‘n’ Servicios para saber las vulnerabilidades del resto de máquinas.
/usr/local/bin/gvm-script --gmp-username USUARIO --gmp-password CONTRASEÑA tls --hostname DIRECCION_IP_GVM $CENTREONPLUGINS$/check-gmp.gmp.py --last-report --status --task $ARG1$ --overrides -F $ARG2$
Y definimos 2 argumentos que serán lo que al crear el Servicio cumplimentaremos:
- ARG1: Nombre de la Tarea
- ARG2: IP de la maquina
Y lo dicho, una vez tengamos el Comando creado, pues creamos los Servicios de ‘Vulnerabilidades’ de cada máquina que nos interese. Al seleccionar el Comando que hemos creado veremos que tenemos que cumplimentar los argumentos con lo dicho, el nombre de la Tarea donde está la máquina a consultar, y la IP de la máquina en cuestión (por si en la Tarea de GVM analizamos más de una máquina de manera simultánea).
Y una vez grabemos los cambios (como siempre, el Export), podremos ya verificar que se comprueban bien nuestras tareas y recibiremos la información desde Greenbone, ahora desde aquí gobernamos! Podremos visualizar el resumen de la tarea y nos pintará en CRITICAL las máquinas con vulnerabilidades críticas.
Un par de notas antes de finalizar, si hemos cometido el error de ejecutar los chequeos desde Centreon como el usuario root para andar probando…, luego cuando Centreon lo monitorice nos dará un “attempt to write a readonly database” y es porque debemos eliminar el directorio “/tmp/check_gmp/”, o vaya, darle permisos al usuario centreon para que pueda escribir ahí. Pasará lo mismo si tenemos en Centreon un UNKNOW o nos pone “No output returned from plugin”; pero se ve bien por bash desde el usuario de centreon, así que ante algo raro, lo mejor, lo dicho, calzarse el directorio “/tmp/check_gmp/”.
Como siempre, espero que os haya parecido interesante, intentaremos centralizar todo lo que podamos en nuestro sistema de monitorización, evitando tener que entrar en 20 consolas y disfrutando lo mejor de cada producto.