Pandora:Documentation es:ReconServer

From Pandora FMS Wiki

Jump to: navigation, search

Volver a Indice de Documentacion Pandora FMS

Descubrimiento de red automático con Recon Server

Introducción

El servidor Recon de Pandora FMS se introdujo por primera vez en la versión 1.3.Desde entonces ha sufrido muchas actualizaciones y mejoras. Recon server se utiliza para explorar la red, utilizando ICMP (Ping) por medio de tareas definidas por el usuario para encontrar nuevos sistemas (identificados por una dirección IP) y los añade a la supervisión, utilizando las «Plantillas de componentes» para asignar módulos automáticamente al nuevo agente, ya que de esta forma, un nuevo sistema es catalogado y se le asigna una conjunto de modulos de red, de forma que se monitoriza "solo".

Es importante señalar que éste utiliza las direcciones IP para identificar qué agentes están ya supervisados por Pandora FMS, esta es la razón por la que desde Pandora FMS 1.3, los agentes pueden tener más de una dirección IP.

Recon server permite también detectar la topología de los sistemas detectados, y engancha estos sistemas, al último host conocido en la ruta desde Pandora FMS al nuevo host, identificando (por IP) todos los hosts intermedios, definiendo como host padre del nuevo sistema monitorizado, como el último host conocido antes de llegar al nuevo sistema.

Recon además implementa un sistema de detección de Sistema Operativo por medio de Xprobe2 (si está instalado) que junto con la detección (opcional) de puertos abiertos (realizado con Nmap), permite identificar y reconocer sólo determinados sistemas concretos (p.e: Solaris con puerto 23, o Windows con el 139 y el 445 abierto).

Tareas de reconocimiento

Las tareas Recon aparecen definidas en Servers -> Recon task.



Primero.jpg



Una vez en la pantalla, puede crear una tarea nueva, pulsando el botón Create, o puede editar las existentes pulsando sobre su nombre:



Segundo.jpg



Si decide editar o crear una nueva tarea de reconocimiento de red, deberá rellenar los campos necesarios para que la tarea se procese adecuadamente:

Task name

Nombre de la tarea de descubrimiento, es puramente un valor descriptivo para diferenciar la tarea por si tiene varias con diferentes valores de filtrado o plantilla.

Recon server

Servidor de reconocimiento asignado a la tarea. Si tiene varios servidores recon, aqui debe asignar cual de ellos quiere que realice la tarea de reconocimiento.

Mode

Modo de la tarea a escoger entre "Network sweep" y "Custom script". El primer modo es el modo convencional de tarea de reconocimiento de red, y la segunda es el modo en el que se asocia a la tarea un script personalizado cuyo funcionamiento junto a un ejemplo se verán en sucesivos apartados.

Network

Red sobre la que realizar la exploración. Utiliza el formato de red / mascara de bits. Por ejemplo 192.168.1.0/24 es una clase C que incluiría las direcciones 192.168.1.0 al 192.168.1.255.

Interval

Intervalo de repetición de la búsqueda de equipos. No utilice intervalos muy cortos ya que recon explora una red enviando un Ping a cada dirección, si utiliza redes de exploracion muy amplias (por ejemplo una clase A) combinado con intervalos muy cortos (6 horas) estará provocando que Pandora FMS esté constantemente bombardeando la red con pings, cargandola e innecesariamente sobre cargando Pandora FMS.

Template warning.png

Sucesivas ejecuciones de una tarea recon pueden actualizar agentes y módulos ya existentes. Si no desea que esto ocurra, configure el intervalo a manual deje que la tarea recon se ejecute una única vez.

 


Module template

Plantilla de componentes que añadir a los equipos descubiertos. Cuando detecte un sistema que encaje con la espeficiación de esta tarea (OS, puertos) lo dará de alta y le asignará todos los módulos incluidos en la plantilla de componentes definida.

OS

Sistema operativo para reconocer. Si se selecciona uno en lugar de cualquiera (Any) sólo se añadirán los equipos con ese sistema operativo. Piense que en determinadas situaciones Pandora FMS puede equivocarse a la hora de detectar sistemas, ya que este tipo de "adivinación" se realiza con patrones estadísticos que en función de algunos factores ajenos pueden fallar (redes con filtrados, software de seguridad, versiones modificadas de los sistemas). Para poder utilizar con seguridad este método debe tener instalado Xprobe2 en su sistema.

Ports

Define unos puertos específicos o un rango determinado, p.e: 22,23,21,80-90,443,8080. Si utiliza este campo, sólo aquellos hosts detectados que tengan al menos uno de los puertos aqui enumerados, será detectado y añadido al sistema. Si se detecta un host pero no tiene al menos uno de los puertos abiertos, será ignorado. Esto en combinacion con el filtrado por tipo de OS permite detectar aquellos sistemas que nos interesan exclusivamente, p.e: detectando que es un router porque tiene los puertos 23 y 57 abiertos y el sistema lo detecta como de tipo "BSD".

Group

Es el grupo donde añadir los equipos descubiertos. Obligatoriamente deberá asignar los nuevos equipos a un grupo. Si ya dispone de un grupo especial para ubicar a los agentes no clasificados, puede ser una buena idea asignarlo ahí.

Incident

Indica si al descubrir equipos nuevos crea un incidente o no. Creará un incidente por tarea, no uno por máquina detectada, haciendo un resumen de todos los sistemas nuevos detectados, y automáticamente lo creará dentro del grupo definido anteriormente.

SNMP default community

Comunidad SNMP por defecto para los equipos descubiertos.

Comments

Comentarios acerca de la tarea de descubrimiento de red.

Detección de SO

Al elegir esta opción la exploración detectará el SO.

Name resolution

Al elegir esta opción el agente se creará con el nombre del equipo, siempre y cuando esté configurado en el propio equipo, si no creará el agente con el nombre de la IP.

Parent detection

Al seleccionar esta opción detectará en la exploración si hay equipos conectados a otros y los creará como hijos.

Parent recursion

Indica el numero máximo de recursión con la que se podran generar los agentes como padres e hijos, después de realizar la exploración.



Tercero.jpg



Una vez que haya finalizado, pulse el botón Update si está editando una tarea ya creada, o bien el botón Create si está creando una.

Antes de definir una nueva tarea, debe haber un servidor Recon iniciado en el sistema. Para asignar nuevos agentes automáticamente a un servidor de red, también se necesita iniciar un servidor de red.

Las plantillas de componentes y de grupos asignados a nuevos host en este barrido permiten desplegar un reconocimiento de red que explore grandes redes en minutos o en horas. Se podrán detectar y comenzar a monitorizar toda una red con sólo unos cuantos pasos.

Una vez definidas las tareas Recon se deben lanzar para poder obtener la información de los equipos de la red. Para ello, vaya al menú Servers -> Manage servers:

Cuarto.jpg



Para ver el estado de los servidores. También puede pulsar sobre el elemento de la cabecera All systems, que le llevará a la misma pantalla:



Quinto.jpg



La siguiente pantalla muestra el estado de los servidores de Pandora FMS:



Sexto.jpg



Busque en la consola los detalles de configuración del servidor Recon y pulse sobre él. Verá una pantalla con el estado de las tareas recon como la adjunta.



Septimo.jpg



Se debe pulsar el botón de la derecha de la consola para iniciar las tareas recon. Una vez hecho esto, llevará un tiempo la finalización de las mismas.

Topología de red

Recon permite realizar no sólo un descubrimiento de los host de una organización sino hacerlo de forma que pueda detectar como están relacionados entre si. Eso supone, que bien implementado, Pandora FMS puede detectar, monitorizar y representar con exactitud su red, independientemente del nº de sistemas que tenga su red.

Esta es una captura de los sistemas monitorizados por Pandora FMS en uno de nuestros servidores de desarrollo que monitoriza cerca de 1000 sistemas:



Cool network map sample.jpg



Para poder hacer esto con éxito necesita planificar la monitorización, por niveles, como si fuera una cebolla, de forma que se detecten primero los niveles más cercanos a Pandora, para que este los conozca cuando detecte a los sistemas que hay detrás de ellos y así pueda asociarlos a los nodos ya detectados.

Para ello cree primero tareas de red para los equipos de comunicaciones mas inmediatos, y luego para los siguientes. Una vez que ya tenga detectados los sistemas mas básicos, cree tareas de reconocimiento más complejas basadas en arquitecturas y/o sistemas (por aplicación o por SO), asignandoles plantillas predefinidas de red, adaptadas lo mejor posible a los sistemas que encuentre: P.e: creando una plantilla para servidores web que monitorice el estado del servidor mediante un chequeo avanzado TCP, verificando tiempo de latencia y respuesta de red, y monitorizando puertos de servicio como el SSH o el FTP, si ha definido chequeos WMI o Plugin aplicables, también puede añadirlos.

Si a un sistema detectado por primera vez se le aplica una plantilla que contiene un módulo que no es aplicable, este permanecerá "no inicializado" hasta que se elimine del sistema automáticamente mediante el script diario de mantenimiento, donde se eliminan los modulos que nunca han podido obtener datos (de ahi lo de "no inicializados").

Ejemplo de uso

Si hay cuatro clases C para servidores de red, y una clase B con muchas estaciones de trabajo, se podrá definir una «Plantilla de componentes» para cada una de esas cinco redes.

Por ejemplo:

  • Plantilla número #1: Se emplea para un servidor Windows. Este puede tener cinco módulos:

SNMP para saber el uso de CPU en el servidor Windows. SNMP para saber la memoria disponible en el servidor Windows. SNMP para saber la entrada de datos de la interfaz de red. SNMP para saber la salida de datos de la interfaz de red. ICMP comprobar que sigue en funcionamiento.

  • Plantilla número #2: Se emplea para comprobar los servidores UNIX HTTP:

ICMP comprueba si está en funcionamiento. TCP comprueba si el puerto 80 está operativo y responde a los comandos HTTP. TCP comprueba si el puerto 22 está operativo y responde a SSH. SNMP para saber el uso de la CPU. SNMP para saber la entrada de datos de la interfaz de red. SNMP para saber la salida de datos de la interfaz de red.

  • Plantilla número #3: Empleado para comprobar servidores UNIX Oracle:

ICMP comprueba si está en funcionamiento. TCP comprueba si un puerto específico TCP está funcionando y respondiendo a los comandos Oracle. TCP comprueba si un puerto específico está abierto. SNMP para saber el uso de la CPU. SNMP módulo para saber la memoria disponible.

  • Plantilla número #4: Empleado para comprobar servidores Windows CIFS:

ICMP comprueba si está en funcionamiento. SNMP para saber el uso de la CPU. SNMP módulo para saber la memoria disponible. Varios TCP para comprobar la disponibilidad CIFS. SNMP para saber la entrada de datos de la interfaz de red. SNMP para saber la salida de datos de la interfaz de red.

  • Plantilla número #5: Empleado para comprobar la actividad de todas las estaciones de trabajo:

ICMP comprobar que funcione. TCP comprueba que los puertos específicamente «prohibidos» estén cerrados, como el 21, 22, 80, 8080, 5900, P2P etc.

Crear cinco tareas de supervisión, cuatro para cada tipo de servidor en cada red o subred asignada a este tipo de servidores. Asignar cada tarea a un grupo diferente y asignar su perfil de red. La última, para la estación de trabajo, asigna a toda la clase B y a otro grupo diferente. Use un intervalo más corto de análisis (medio día, un día) para las estaciones de trabajo y más largo para los servidores (2-3 días o una semana).

Los servidores de supervisión utilizan un analizador ICMP interno para comprobar si la máquina funciona. Cuando se crea un agente, intenta resolver la dirección IP para poner «hostname» como nombre del agente.

Recon Scripts

Introducción

La nueva funcionalidad "ReconScripts" permite hacer algo mucho más flexible que la monitorización de red y el descubrimiento automático que hacía el recon server clásico. Los scripts del recon se desarrollan de forma individual con objetivos totalment específicos, como puedan serlo los plugins de red o los plugin de agente. Cada ReconScript es diferente y tiene un propósito.

Su idea básicamente consiste en "detectar" cosas dentro del sistema que reconoce y dar de alta automáticamente una monitorización (de red, plugin, wmi...) de forma que de una forma totalmente personalizada podemos dar de alta automáticamente instancias en una base de datos oracle, nuevos host virtuales dentro de un VmWare gestionado con VirtualCenter, o podemos detectar nuevas instancias en un servidor de aplicaciones WebLogic. Puede desarrollarse un script o aplicacion que realice las tareas que quiera realizar y programar su ejecución mediante el Recon Server.

Cada ReconScript es personalizado y muy específico, para una única tecnología. Nosotros hemos desarrollado uno completamente OpenSource, lo hemos llamado SnmpDevices. Este script se puede encontrar en /usr/share/pandora_server/util/plugin_reconserver/snmpdevices.pl.

Este sistema permite rastrear un intervalo de IPs dado y crear agentes por cada sistema SNMP que le responda (dada una comunidad SNMP), además creará automáticamente ciertos módulos de red (SNMP) según los resultados que obtenga, de forma que por cada host que reconoce creará cuatro módulos SNMP:

  • SysUptime: Uptime del sistema (nº de segundos desde que se inició el sistema)
  • SysName: Nombre del sistema.
  • Local InReceives: Bytes recibidos en el sistema /seg.
  • Local OutRequests: Bytes transmitidos desde el sistema /seg.

Y por cada interfaz reconocida (automáticamente detectará el nombre de la interfaz) en un host se crearán otros tres módulos SNMP:

  • Status: Estado (operativa o no operativa).
  • Inbound bps: Bytes de entrada en la interfaz / seg.
  • Outbound bps: Bytes de salida en la interfaz / seg.

Ejemplos de utilización

Este script se puede utilizar de dos maneras: desde la consola de Pandora FMS y desde la shell.

Utilización desde la shell

Sintaxis de utilización:

./snmpdevices.pl <task_id> <group_id> <create_incident_flag> <netmask> <snmp_community> [<-a>]

Ejemplo de utilización:

./snmpdevices.pl 3 8 0 192.168.100.0/24 community2010

- Habiendo un recon task con ID 3 al que se asociará. - Los agentes creados se asignarán al grupo con Id 8 (Databases). - Se ha desactivado la creación de Incidentes con el tercer parámetro a 0. - Se rastreará en la red 192.168.100.0 con máscara 24, por lo que se buscará desde la dirección 192.168.100.1 hasta 192.168.100.254. - Este rastreo se hará con la community SNMP "community2000". - Existe un tercer parámetro opcional (-a), el cual si es utilizado, obligará a procesar y generar módulos para el estado de todas las interfaces, independientemente de si se encuentran caídas o no. (Por defecto el script recon solo procesa el estado y devuelve información de rendimiento de las interfaces activas)

Utilización desde la consola de Pandora FMS

El primer paso para utilizar un recon script desde la consola de Pandora es acceder a la sección Servers > Recon script. En este apartado asociaremos todos los scripts que deseemos utilizar añadiendo de una en una las rutas absolutas de los scripts.



Recon script1.png



Una vez añadido el script de ejemplo, procederemos a crear una tarea recon asociada al mismo. Si en el formulario de creación de la tarea recon seleccionamos el modo "Custom script" deberemos escoger algunos datos comunes con una tarea de reconocimiento normal, como son el servidor asociado, el intervalo de ejecución de la tarea, el grupo al que pertenecerán los agentes que se creen, si se crearán o no incidentes y comentarios adicionales. Además de esta información, deberemos configurar una serie de parámetros propios del script, como son el script que queremos utilizar de los añadidos con anterioridad (en nuestro caso Snmpdevices) y los campos personalizados que pasaremos a dicho script (hasta un total de 4).

A nuestro script se le pasa automáticamente desde la consola el Id del task creado y respecto a los controles del formulario de creación el grupo seleccionado y el flag que determina si se crearán o no incidentes. Además, de los cuatro posibles campos personalizados utilizará los dos primeros, siendo el primero la red en la que rastreará y el segundo la community SNMP de los dispositivos de los que se esperan resultados.



Recon script2.png



Una vez rellenados estos dos campos personalizados y opcionalmente los comentarios pertinentes, se habŕa creado la tarea recon asociada al script de prueba Snmpdevices, por lo que comenzará el rastreo y se irán creando los agentes y módulos anteriormente explicados.

Script de Recon SNMP L2

Este script, presente en las versiones 5.1 y superiores, está ubicado en /usr/share/pandora_server/util/recon_scripts, y se apoya en consultas SNMP para llevar a cabo un escaneo de la red de nivel 2. A través de SNMP se obtiene información de nivel 2 de routers y switches. Los hosts que después del escaneo de nivel 2 sigan desconectados se conectan a través de traceroute.

Para llevar a cabo un escaneo de SNMP nivel 2, seleccione el script personalizado SNMP L2 Recon y configure los siguientes parámetros:

  • Network: Una lista de redes a escanear separadas por comas (eg. 192.168.1.0/24,192.168.2.0/24).
  • Community: Una lista de comunidades SNMP separadas por comas que se utilizarán para realizar las consultas.
  • Router (opcional): La IP de un router de la red. No es obligatorio, pero facilita el escaneo.
  • Optional parameter (opcional): Si se configura a -a se añadirán todas las interfaces de red (por defecto sólo se añaden las interfaces que están arriba).



Snmp l2 recon task.png

Para mostrar la red descubierta vaya a Operación -> Vista Network -> Mapa de red y marque la casilla Interfaces de red L2.



Snmp l2 network map.png



Template warning.png

Si la mayoría de hosts no responden a consultas SNMP el escaneo será muy lento. Por cada comunidad SNMP, cada host es sondeado con un timeout de snmp_timeout segundos y snmp_checks reintentos (ambos definidos en /etc/pandora/pandora_server.conf). Con valores por defecto y dos comunidades SNMP esto significa un retardo de 30 minutos para una red de clase C en la que ningún host responde a consultas SNMP (2comunidades x 1reintentos x 4segundos x 254 hosts). Puede bajar estos valores para hacer el escaneo más rápido, pero esto afectará también a otros módulos SNMP.

 


Script de Recon WMI

Este script busca en la red hosts que respondan a consultas WMI y crea módulos por defecto para estos hosts.

Para llevar a cabo un escaneo de red WMI cree una nueva tarea recon, seleccione el script personalizado WMI Recon Script y configure los siguientes parámetros:

  • Network: Lista de redes a escanear separadas por comas (eg. 192.168.1.0/24,192.168.2.0/24).
  • WMI auth: Lista de pares de autenticación WMI en el formato usuario%password separados por comas (e.g. Administrator%pass).



Wmi recon task.png



Volver a Indice de Documentacion Pandora FMS