El Servidor NCM (Network Config Management) de Pandora FMS permite poder interactuar con cualquier dispositivo de red, mediante los protocolos Telnet y SSH, para gestionar su configuración, realizar backups, restaurar la configuración de los dispositivos a partir de los backups realizados e incluso poder realizar ejecuciones personalizadas con los mismos.
Para la realización de todas estas tareas se basa en un sistema de plantillas por Fabricante-Modelo que permitirá personalizar todas las ejecuciones que realizarán los dispositivos de red, teniendo el control y conocimiento de todas las ejecuciones que se realizarán en cada uno de dichos dispositivos de red.
Para la activación de esta funcionalidad en Pandora FMS es necesario que esté habilitado el servicio NCM en el servidor de pandorafms
.
Para ello deben estar los siguientes parámetros correctamente configurados dentro del fichero pandora_server.conf
:
# Network manager configuration server. ncmserver 1 # Threads for NCM server. ncmserver_threads 1 # NCM utility to execute SSH and Telnet connections. ncm_ssh_utility /usr/share/pandora_server/util/ncm_ssh_extension
Una vez habilitados aparecerá en la vista de servidores un nuevo servidor y se habilitarán en la consola todas las secciones correspondientes a esta funcionalidad.
Para que aparezcan los menús correspondientes a todo lo relacionado con NCM server cada usuario debe tener los derechos ACL correspondientes .
Si utiliza los Enterprise Alternative Server packages, para el correcto funcionamiento de esta funcionalidad se debe instalar libnsl
y openssh-clients
.
Antes de empezar a trabajar, se debe asegurar de que el sistema tiene definido el fabricante y el o los modelos de dispositivos que se van a utilizar. Para ello utilice el editor de Vendedor (Vendor) y Modelo (Model).
Encontrará estos editores en la sección Management → Configuration → Network Config Manager.
Esta es solo una definición descriptiva. La lógica se aplica en las Plantillas de equipo de red.
Las plantillas se aplican sobre un Fabricante y uno o varios modelos. Las plantillas definen cómo se interactúa con un equipo de red. La conexión entre NCM y el equipo se puede hacer a través de Telnet o SSH. En ambos casos habrá que proporcionar uno o varios juegos de credenciales (en el caso del fabricante Cisco el usuario/contraseña de acceso y el password de modo enable
). En otros dispositivos pueden ser dos pares de credenciales.
Para las credenciales utilice el sistema interno de Pandora FMS de credenciales que permite reutilizarlas sin conocer los detalles. De esta manera el administrador puede especificar diferentes “parejas” de usuario/contraseña con un identificador, y un operador puede emplearlas sin ver el contenido. En NCM estos usuarios y contraseñas se pasan al diálogo con el dispositivo a través de macros.
Macros en el diálogo con el dispositivo de red
_enablepass_
: Se sustituirá por el campo password
de la clave avanzada asociada al agente._username_
: Se sustituirá por el campo username
de la clave de acceso al agente._password_
: Se sustituirá por el campo password
de la clave de acceso al agente._advusername_
: Se sustituirá por el campo username
de la clave avanzada de enable
._advpassword_
: Se sustituirá por el campo password
de la clave avanzada de enable
. Es un alias de _enablepass_
y se pueden usar ambos indistintamente en las plantillas ya que equivalen al mismo valor._applyconfigbackup_
: Expande en tantos comandos como líneas de configuración tenga el backup actual, se aplica línea por línea, tal y como se aplican en los dispositivos de Cisco®._SOURCE_FILE_NAME_
: Se sustituirá por la ruta al último firmware subido para un fabricante y modelo concreto en el servidor de Pandora FMS, para poder ser descargado usando la dirección IP del servidor FTP (campo FTP server IP)._TFTP_SERVER_IP_
: Se sustituirá por la dirección IP configurada para el servidor FTP desde el que se podrán descargar los firmware a utilizar por dispositivos NCM. La dirección IP se puede indicar en la configuración general de Pandora FMS.Haga clic en el botón Define a NCM template (menú Management → Configuration → Network Config Manager) y haga clic en el botón Create.
Rellene los campos solicitados:
Estos scripts solo funcionan si el usuario con el que va a hacer login (vía Telnet o SSH) funciona mediante user y password y no tiene enable
habilitado por defecto.
Se realiza una conexión de prueba al dispositivo y se finaliza la misma sin realizar ninguna operación.
enable expect:Password:\s* _enablepass_ exit
La conexión de prueba se utiliza para verificar que se puede conectar al dispositivo. Se puede modificar (expect:xxxx
) para esperar una respuesta determinada, tal como Ready
. Este solo es un ejemplo básico.
Este bloque sirve para definir la manera de obtener la configuración del dispositivo activo. En este ejemplo (de Cisco®) se obtiene la configuración que se está ejecutando en el dispositivo mediante la ejecución del comando show running-config
dentro del mismo:
enable expect:Password:\s* _enablepass_ sleep:2 term length 0 capture:show running-config exit
capture:<comando>
: Sirve para capturar como configuración activa lo que devuelve por pantalla.
sleep:2
: (Versión 772 o posterior) Sirve para introducir un “tiempo de espera”, en segundos, entre dos comandos de una plantilla.
De manera similar al caso anterior, ejecutamos el comando show version | i IOS Software
para obtener la versión del firmware del dispositivo, y al igual que en el caso anterior, se usa el comando capture
para capturar la salida del comando.
enable expect:Password:\s* _enablepass_ term length 0 capture:show version | i IOS Software exit
En esta ejecución se hace uso de la macro _applyconfigbackup_
aplicando así toda la configuración almacenada en el Backup que previamente se haya almacenado en Consola.
enable expect:Password:\s* _enablepass_ term length 0 config terminal _applyconfigbackup_ exit
Ejemplo de script personalizado en el que se cambia el valor máximo de intentos de autentificación por SSH del dispositivo. Se puede aplicar cualquier modificación o ejecución de comandos que sea necesaria.
enable expect:Password:\s* _enablepass_ conf term ip ssh authentication-retries 4 end exit
Todo cambio registrado en el dispositivo quedará grabado al realizar un respaldo de firmware y se tendrá control de los cambios realizados, tanto por informes como por pantalla (Consola web PFMS).
Estas plantillas permiten obtener datos de un dispositivo NCM y actualizar la información del agente para el que se ejecutan con dichos datos. El funcionamiento y configuración es idéntico al de las plantillas de equipo de red, pero indicando en este caso el campo del agente que actualizará el resultado de cada script. Los campos que se pueden actualizar en un agente son:
Se hace clic en el botón Create (menú Management → Configuration → Network Config Manager → NCM Agents data templates y se rellenan los campos solicitados:
Dentro de cada uno de los agentes cuya configuración remota se deba administrar, es necesario asociar un modelo al mismo.
Esta asociación la tendrá que realizar en la sección NCM del agente:
/etc/.ssh/known_hosts
._advusername_
para el usuario y _enablepass_
o _advpassword_
para la contraseña.Para cargar los ficheros que contengan firmware y crear respaldos de los mismos con FTP, debe hacerlo de manera cifrada para tener la mayor seguridad posible. Consulte la sección “Configuración FTP para recibir datos en Pandora FMS” y el uso de vsFTPd. Debe usar SFTP con chroot exclusivo en:
/var/spool/pandora/data_in/firmware/
Consulte la “Arquitectura de seguridad” de Pandora FMS.
Esta configuración se puede realizar de forma masiva para varios agentes que cumplan las mismas características desde el menú Management → Configuration → Network Config Manager → Manage NCM devices.
Después de haber configurado los dispositivos NCM se podrá acceder a la vista del agente o bien a la sección Management → Configuration → Network Config Manager → NCM Devices para realizar toda la gestión posible en cada uno de ellos.
Desde ambas vista se podrán encolar todas las tareas definidas en el template, descargar la configuración actual, visualizar los backups generados para el dispositivo y compararlos con el último backup obtenido.
También se podrán ejecutar snippets en cualquier dispositivo NCM, es decir, scripts que no estarían definidos en las plantillas y que permiten ejecutar bloques de código bajo demanda. Estos son scripts de una sola ejecución que no se almacenan.
Para la funcionalidad NCM existen tres bits de ACL distintos en los que podrá definir los diferentes usuarios a partir de los siguientes bits definidos:
View NCM data → Solo podrá visualizar la vista del agente y ver la información reflejada en ella sin poder aplicar ningún cambio sobre la misma.
Operate NCM → Podrá además de visualizar la vista, realizar las ejecuciones que quiera sobre los agentes y en la vista NCM.
Manage NCM → Con este permiso se podrán generar plantillas, modelos y nuevos fabricantes a parte de las ejecuciones que ya realiza Operate NCM.