WORKSHOP Pandora FMS Abril 2012
Objetivos del curso Aprender a instalar Pandora FMS. Aprender a monitorizar remotamente. Aprender a monitorizar localmente (con agentes). Aprender a gestionar Pandora FMS: Alertas. Informes. Vistas gráficas de usuario Reconocimiento de red. Conocer otras características de Pandora FMS. Realizar ejercicios de comprensión de la aplicación. 2
Historia de Pandora FMS El origen de Pandora FMS Pandora FMS se originó en el departamento de seguridad IT de uno de los 20 mayores bancos del mundo. Pandora FMS surgido de una necesidad y de la experiencia diaria. Pandora FMS creció apoyado por el uso diario y se alimentó de necesidades de cada usuario y cada departamento. Pandora FMS se adaptó desde el principio a las necesidades reales de entornos de producción. 3
Historia de Pandora FMS Necesidades iniciales Posibilidad de gestionar cualquier tipo de plataforma. Flexibilidad para su implantación. Sin requisitos previos para su funcionamiento en las maquinas monitorizadas. Necesidad de recolectar información específica de seguridad (Firewalls, aplicaciones proxy inverso, IDS) y detección de sobrecargas en diferentes servicios. Alertas flexibles que permitiesen ejecutar scripts. Administración centralizada y multiusuario. 4
Historia de Pandora FMS Estable: 4.0.1 Desarrollo: 4.1 5.0 5
Arquitectura de Pandora FMS 6
Network Server Ejecuta pruebas de red de forma centralizada: TCP, SNMP, ICMP. Sistema multihilo con bloqueos. Sistema productor / consumidor. Cálculos de tiempos de latencia. Utiliza algunos comandos del sistema (ping, snmp) HA y failover implementado automáticamente. 7
Agente como contenedor Agente software: Pieza de software que se instala en una maquina para recoger información. Agente lógico o agente : Contenedor de información. Agente físico. A veces llamado a los sensores que agrupados sobre la plataforma Octopods recogen información ambiental. 8
Agentes: Estructura de un agente. Se denominan agentes software, cuando hablamos del software remoto que se ejecuta en la máquina donde recoge datos. No confundir con el concepto general Agente. Organizan la información recogida en módulos. Un módulo para cada dato. Un módulo puede ser de diferentes tipos (numérico, incremental, lógico, texto, imagen...) El agente ejecuta cada modulo, produce el XML final y lo copia al servidor a través de la red. Existen agentes para todos los SO del mercado. Son extensibles. 9
Estructura de un agente Pandora FMS Software Agent Agent Module Agent Module Agent Module Agent Module XML Transferred to Pandora FMS data server 10
Consola WEB Sirve para gestionar la operación de monitorización, tanto la configuración como la visualización. Es una interfaz ligera, basada en PHP5. No requiere JAVA. Flash es opcional. En 5.0 flash vuela...por la ventana y acogemos técnologias abiertas HTML5. Es multiusuario. Podemos tener varias consolas, incluso en HA si es necesario. 11
Monitorización de Parámetros Físicos Basado en el procesador ARM, es un hardware específico llamado OctoPod. Octopod recoge datos de sensores y los envía a Pandora FMS. Se puede monitorizar luz, temperatura, humedad, calidad del aire, movimiento. Tiene conectores de contacto seco (DryContact), estándares en la industria. 12
Instalación
Instalación Instalación del agente. Actualización con OpenUpdate Manager. Instalación desde CD. Actualizacion desde RPM. Actualizacion desde tarball. Actualizacion desde SVN. Actualización de versión. 14
Métodos de instalación Instalación con imagen Vmware preinstalada. Instalación a través de CD, basado en OpenSUSE 11 Instalación con paquetes (RPM/DEB). Instalación a traveś de los paquetes fuente (tarball) Actualización de la versión anterior. Actualización desde la misma versión (aka ServicePack). 15
Dependencias 16
Tentacle Protocolo oficial de transmisión de datos de Pandora FMS desde la versión 2.0 Utiliza el puerto 41121 oficialmente registrado en IANA. Dispone de cliente en C y Perl. Dispone de servidor en Perl. Se instala junto con el servidor (tentacle server) Se instala junto con el agente (tentacle agent). Dispone de un script de arranque propio: /etc/init.d/tentacle_serverd Los ajustes se hacen en ese script. 17
Introducción a la Monitorización en Pandora FMS
Tipos de datos generic_data: tipo de datos numéricos. Sirve para almacenar datos numéricos (enteros y de coma flotante) obtenidos mediante un módulo de un agente de Pandora FMS. generic_data_inc: tipo de datos numéricos crecientes. Almacena datos resultado de la diferencia entre los datos del último agente y los datos actuales. El servidor de Pandora FMS se encarga de calcular y almacenar la tasa por segundo de forma automática. Todos los módulos terminados en «inc» son de tipo incremental. 19
Tipos de datos generic_proc: tipo de datos booleano. Donde un valor 0 significa Falso o «Valor malo», y valores por encima de cero significan Cierto o «Valor correcto». generic_data_string: tipo de datos alfanumérico (longitud del texto, máximo 255 caracteres). 20
Intervalo Tiempo (en segundos) que transcurre entre que el agente manda información al servidor (agente local) o desde que el servidor ejecuta de nuevo el módulo (remoto). Los modulos pueden tener diferente intervalo respecto al agente. Cada módulo tiene su intervalo. Es lo que define el significado del estado Unknown (desconectado, desconocido). 21
Tipos de datos (Remotos) remote_icmp: captura la latencia de red, en milisegundos, por control remoto. remote_icmp_proc: ejecuta un «ping» al sistema remoto. Devuelve 0 si el sistema no se alcanza o no responde. Devuelve 1 si se puede conectar al sistema. Al igual que el modulo de tipo «generic_proc» es un monitor. 22
Tipos de datos (Remotos) remote_tcp_proc: ejecuta un ping «tcp» a sistemas remotos y devuelve «1» si el puerto responde. Opcionalmente, se pueden pasar parámetros en el campo «TCP SEND» y en «TCP RECEIVE». remote_tcp_data: remote_tcp_string, remote_tcp_inc, toma un valor numérico del puerto TCP. Si no puede conectar, no devuelve valores. 23
Tipos de datos generic_snmp (varios): obtienen información de diferentes tipos usando una interfaz SNMP. Si se introduce la comunidad SNMP y la dirección IP se pueden obtener todos los datos SNMP del destino Para trabajar con datos SNMP previamente hay que conocer el OID a consultar. Un OID es un identificador con el formato: 0.1.2.4.34.303.2.03 (OID sin resolver) IF-MIB::ifOutOctets.1 (OID resuelto por MIB) 24
Tipos de datos async_* (varios): Obtienen información pero no tienen un tiempo de frecuencia determinado, pueden de hecho no recibir información en mucho tiempo, por lo que nunca están en estado desconocido. keep_alive: Modulo especial que solo devuelve información cuando el agente entra en modo desconectado. Se dispara (valor 0) cuando un agente con datos de tipo local (generic_*) no recibe datos nuevos en su (intervalo x 2) segundos. 25
Monitorización de estados. Todos los elementos de pandora (llamados módulos) además de un valor o dato, pueden tener asociado un estado. Este puede ser NORMAL, WARNING o CRITICAL, en función de como hayamos parametrizado el modulo. Los módulos con información de estado se llaman Monitores. Algunos tipos traen información de estado por defecto (Todos los _proc). Los estados nos sirven para reconocer el estado de los agentes sin tener que interpretar sus datos en cada ocasion. 26
Intervalo Tiempo (en segundos) que transcurre entre que el agente manda información al servidor (agente local) o desde que el servidor ejecuta de nuevo el módulo (remoto). Los modulos pueden tener diferente intervalo respecto al agente. Cada módulo tiene su intervalo. Es lo que define el significado del estado Unknown (desconectado, desconocido). 27
Monitorización ICMP Básica Al crear un módulo de red, manualmente, estamos asignando chequeos remotos sobre el agente que acabamos de crear. Por defecto usarán la IP del agente, pero podemos usar otras IP. Vamos a comprobar si está «vivo» (ICMP), equivalente a hacerle un ping. Para ello, vamos a Modules > Create a new network server module. Seleccione el componente «Host alive /...» y complete la información. 28
Monitorización ICMP Básica 29
Monitorización ICMP Básica 30
Monitorización ICMP Básica El módulo recién creado está sin inicializar (Triangulo rojo). Hasta que no se ejecute por primera vez no se podrá visualizar su valor. A un módulo ya creado no se le puede cambiar el tipo, hay que borrarlo si queremos cambiar su tipo. 31
Monitorización ICMP (Latencia) Para medir los tiempos de respuesta (latencia) en milisegundos. Muy similar al anterior. Uno de los chequeos más básicos que hace por defecto Pandora FMS. 32
Monitorización y descubrimiento El servidor Recon sirve para detectar nuevos sistemas y asignarles patrones de monitorización, basados en plantillas predefinidas de modulos (network templates) Utiliza internamente nmap y xprobe2 para detectar sistemas, puertos y SO. Si una de las IP que detecta no está dada de alta, aunque sea como IP secundaria de algun agente, da de alta un agente con esa IP. Si se ha instalado perl-traceroute-pureperl es capaz de detectar el padre anterior al sistema detectado y mantener una topología de red de los sistemas. 33
Monitorización y descubrimiento 34
Configuración de agentes software La configuración esta siempre en el fichero llamado pandora_agent.conf Windows y Linux comparten el 70% de los parámetros de configuración. Los más importantes son comunes: server_ip, temporal, agent_name, interval, transfer_mode, server_port, debug, remote_config Los módulos de la monitorización local se configuran en el fichero pandora_agent.conf y todos tienen una sintaxis similar, basada en tokens que comienzan por module_xxxxxxx. Veamos algunos ejemplos, del propio.conf por defecto de windows. 35
Alertas en Pandora FMS
Alertas en Pandora FMS El objetivo de la monitorización es visualizar la información (listados, gráficas, cuadros) y notificar cuando algo pre-establecido, sucede. Nosotros le llamamos a eso alertas. Una alerta en Pandora FMS, es una combinación de diferentes elementos: El módulo que contiene la información. La condición que hace que salte la alerta (Plantilla) El comando que se ejecuta cuando eso sucede. La acción o la forma específica de ejecutar ese comando, particulizado para ese caso en concreto. 37
Alertas en Pandora FMS El sistema de alertas le permite crear alertas para cada módulo de cada agente. Es un sistema muy flexible que permite definir plantillas aplicables y genéricas a todos los modulo, evitando tener que definir una alerta concreta por cada modulo. La corelación de alertas permite definir condiciones multiples entre modulos de diferentes agentes. El sistema de plantilla/accion/comando está pensando para generar plantillas/acciones muy genéricas que sirvan para la mayoria de los casos y poder aplicar cambios de forma global. 38
Alertas en Pandora FMS Basadas en tres componentes: Plantillas (Templates) Acciones Comandos Plantilla Acción Comando 39
Alertas: Templates / Plantillas Define las condiciones de disparo. Define una accion por defecto. Pasa parametros a la accion a traves de los campos personalizados Field1, Field2, Field3. Se asocia al modulo. Al par modulo/plantilla se le pueden asociar uno o varias acciones. La agregación de acciones permiten un escalado, al definir un nº de ejecuciones maximo y minimo por accion. 40
Alertas: Plantillas (II) Paso 1 Tipo de condicion: Por estado, por valor, por regexp... Paso 2 Time threshold: Tiempo de armado/desarmado de la alerta cuando se da la condición. Min.Num.Alerts: Mínimo número de alertas que se ha de dar para comenzar a armar la alerta. Max.Num.Alerts: Número de veces que se ejecutará el comando una vez armada la alerta. 41
Alertas: Plantillas (III) 42
Alertas: Plantillas: Condición de estado Es una de las maneras más comodas y estandar de definir alertas: Se configuran los modulos para definir umbrales de WARNING y/o CRITICAL Se crean plantillas de alertas cuya condicion de armado sea estado CRITICAL ó WARNING. Diferentes modulos con diferentes valores pueden trabajar con la misma alerta, sin cambios. 43
Alertas: Acción Define la forma en la que se llama al comando. Recibe datos de la plantilla a través de los campos personalizados Field1, Field2, Field3. Se pueden utilizar varias acciones simultáneamente como resultado de aplicar una plantilla a un comando (Crear una alerta) 44
Alertas: Comando Define la acción fisica o real que se ejecuta en el servidor. Los comandos son ejecutados por el servidor que procesa el dato que dispara la alerta. Recibe parámetros de la Acción mediante los campos Field1, Field2 y Field3. Existen una serie de comandos internos predefinidos, entre los que se encuentra enviar un email. Para ver la ejecución del comando exacta, ver los logs del servidor con verbosity 10 45
Alertas: Comando (II) Existen comandos Internos predefinidos, como el de generar evento o el de enviar un mail, que no tienen un comando definido. El resto son ejecutados por el servidor, en la máquina donde se procesa la alerta. 46
Estado de las alertas También se pueden comprobar las últimas alertas disparadas para todos agente en los detalles de las alertas Operation > View agents > Alert detail. En los detalles de las alertas se puede filtrar por grupo. Se puede forzar el disparado de cada alerta de forma manual así como validarla (cancelarla) manualmente. 47
Configuracion agente: Módulos exec Modulos usando ejecución de comandos del sistema. Es el tipico modulo, comun en sistemas Windows y Unix. Utiliza la ejecución de un comando para obtener un valor. Pandora FMS provee las herramientas usuales de Unix para procesar salida de comandos: grep, gawk, tr, cut, etc. Hay que procesar el comando para que produzca una salida limpia: Sintaxis: module_begin module_name <nombre de modulo> module_type <tipo de dato pandora> module_exec <comando> module_end 48
Configuracion agente: Módulos exec Ejemplo: module_begin module_name PandoraFMS RAM module_type generic_data module_exec tasklist grep Pandora gawk "{ print $5 }" tr -d "." module_end 49
Muchas gracias Web: www.pandorafms.com Mail: miguel.dedios@artica.es