jueves, 31 de agosto de 2023

Nagvis integración con LDAP con acceso de invitado

En entradas anteriores detalle los pasos para instalar y configurar NAGIOS con varios componentes entre ellos NAGVIS, hasta ahí todo bien, pero resulta que una vez terminados los mapas y ya en producción, era necesario dar acceso a ciertos mapas y un grupo de usuarios. Como sabrán no es buena práctica asignar credenciales diferentes para cada aplicación, así que intenté integrarlo con LDAP de Directorio activo.

Como habrán visto, NAGVIS, utiliza de forma predeterminada su base de datos sqlite para el proceso de autenticación, por lo que no es práctico crear usuarios para que puedan acceder a la herramienta.

Uno de los temas que complicaba, era que cada usuario que se autentica mediante directorio activo solo tenga permisos de invitado y de ser el caso poder asignarle otro rol en la herramienta.

Así que si tienes una necesidad parecida, pongámonos manos a la obra.

Importante debes tener iniciado sesión con la cuenta admin antes de hacer cualquier cambio.

1.- Editar el archivo nagvis.ini.php, si has usado la entrada anterior debería estar en esta ubicación: /usr/local/nagvis/etc/nagvis.ini.php, en el archivo detallan varios modulos de inicio de sesión LogonMixed, LogonDialog, LogonEnv, LogonMultisite) por lo que en la linea 148 aproximadamente hay que descomentar las siguientes o agregarlas:

                logonmodule="LogonMixed"
                logonenvvar="REMOTE_USER"
                logonenvcreateuser="1"
                logonenvcreaterole="Guests"

Explicaremos un poco estas lineas, opción logonmodule NagVis utilizará- el modulo LogonMixed, esto significa que hará uso de la variable de entorno de Apache "REMOTE_USER" como nombre de usuario. Si la variable REMOTE_USER no contiene datos o esta vacía, seguirá con el mensaje de inicio de sesión de NagVis. La opción logonenvcreateuser al estar establecida en "1" le estamos indicando que cree automáticamente el usuario con el dato de la variable REMOTE_USER enviada por el navegador, en la base de datos del usuario de NagVis si no existe. Finalmente la opción logonenvcreaterole le indicamos que asigne automáticamente el rol de "Guests" a los nuevos usuarios creados.

2.- Modificar la configuración de Apache para NagVis (nagvis.conf) . En mi caso el archivo se encuentra en /etc/httpd/conf.d/nagvis.conf , en la linea modificar o cambiar, AllowOverride  establecerlo en All, esto permitirá que el archivo .htaccess anule la configuración, como el mecanismo de autenticación.

3.- crear o ver si este archivo .htaccess se creó en la carpeta compartida de NagVis (/usr/local/nagvis/share/.htaccess) y agregamos estas lineas, tener en cuenta que para autenticación se establece ldap y file y colocamos la ruta del archivo de nagios:

AuthType Basic
 AuthName "LDAP Authentication"
 AuthBasicProvider ldap file
 AuthUserFile /usr/local/nagios/etc/htpasswd.users
 AuthLDAPURL "ldap://servidorldap.com.ec servidorladap2.com.ec/dc=com,dc=ec?sAMAccountName?sub?(objectClass=*)"
 AuthLDAPBindDN "CN=cuenta nagios,OU=CuentasGenéricas,OU=Usuarios,DC=com,DC=ec"
 AuthLDAPBindPassword contraseñadela cuenta
 Require valid-user

4.- Acceder a la URL de NagVis, aparecerá la típica ventana de autenticación:


El usuario puede iniciar sesión con sus credenciales de Active Directory y luego podrá ver todos los mapas a los que tiene acceso el rol "Invitados". ¿Recuerdas que todavía estás conectado como administrador? Ahora puede ver los usuarios creados automáticamente en "Menú de usuario" -> "Administrar usuarios", por lo que puedes dar acceso de "Administradores" a mi usuario personal de AD. y también puedes empezar a asignar roles a otros usuarios de AD.

Nota: confirmar que tengas instalado el modulo ldap (yum install mod_ldap).

Espero que haya sido útil. si de pronto no encuentras mucha información sobre este tema, seguro te servirá de mucho.

Nos vemos en la próxima!!!.