Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Asesor de la empresa:
Abril 2015
UPT 2015
Derechos reservados
El autor otorga a UPT el permiso de reproducir
y distribuir copias de este reporte en su totalidad
o en partes.
NDICE
AGRADECIMIENTOS .......................................................................................................................... 5
RESUMEN .............................................................................................................................................. 6
INTRODUCCIN ................................................................................................................................... 7
PLANTEAMIENTO DEL PROBLEMA............................................................................................... 7
1.
2.
OBJETIVOS ................................................................................................................................... 9
1.1
1.2
MARCO TERICO...................................................................................................................... 10
2.1
2.1.1
2.1.2
2.2
3.
SMNP .................................................................................................................................... 12
2.2.1
SNMPv1 ........................................................................................................................ 13
2.2.2
SNMPv2 ........................................................................................................................ 14
2.3
2.4
NAGIOS ................................................................................................................................ 15
2.5
FORTINET ............................................................................................................................ 17
2.5.1
FORTIGATE ................................................................................................................. 17
2.5.2
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.2
3.3
3.4
3.4.1
3.4.2
3.5
3.5.1
3.5.1.1
3.5.1.2
3.5.1.3
3.5.1.4
3.5.1.5
3.5.2
3.5.2.1
3.5.2.2
3.5.2.3
3.6
3.6.1
CREACIN DE SCRIPTS.......................................................................................... 48
3.6.1.1
3.6.1.2
3.6.1.3
3.6.1.4
3.6.1.5
3.6.2
3.6.2.1
3.6.2.2
3.6.2.3
3.7
3.7.1
3.7.2
3.7.3
MAP ............................................................................................................................... 64
CONCLUSIN ..................................................................................................................................... 67
TABLA DE ILUSTRACIONES .......................................................................................................... 68
REFERENCIAS ................................................................................................................................... 70
GLOSARIO........................................................................................................................................... 71
AGRADECIMIENTOS
RESUMEN
INTRODUCCIN
Hoy en da cientos de empresas cuentan con sites conformados por varios dispositivos
ya sean fsicos o virtuales, cada dispositivo desempea funciones de mucha
importancia para las empresas, por lo tanto el tema de seguridad, es un tema que no
est de ms, enfocados en eso, el monitoreo de redes es una herramienta que no se
debe tomar en segundo plano ya que esta nos permite de manera fcil el detectar
fallas dentro de una red, permitiendo la agilizacin de toma de decisiones para la
pronta resolucin.
Para un administrador, que, dentro de sus funciones implica el identificar problemas
en la red, dando como resultado el chequeo de los dispositivos de manera individual
es decir uno por uno, teniendo como consecuencia la demora y prdida de tiempo. A
manera de solucin, el monitoreo provisto por ACG, como ya se dijo antes, permite
una gil manera de deteccin de problemas, permitiendo al administrador de red
identificar rpidamente el dispositivo que este causando el problema.
JUSTIFICACION
Actualmente las empresas que cuentan con un site, es muy probable que su
infraestructura de red sea muy extensa, lo cual a consecuencia, pueden generar que
la administracin de ellas sea complicado.
Por esta razn se propone la implementacin de un sistema de monitoreo remoto
basado en SNMP y con un sistema de gestin llamado Nagios. Siendo este ltimo el
principal tema de nuestro reporte, ya que al ser de tipo Open Source, permite a las
empresas el ahorro de una gran cantidad de dinero ofreciendo la misma cantidad de
servicios que un sistema de paga como los de Cisco, Enterasys, etc.
En este documento se demostrara cuan eficiente es la implementacin de un sistema
de gestin como lo es Nagios, as como la fcil y oportuna instalacin del mismo.
1. OBJETIVOS
Monitoreo de dispositivos.
Manejo de alertas
Control de servicios
2. MARCO TERICO
10
Solicitudes remotas
Mediante SNMP
Esta tcnica es utilizada para obtener estadsticas sobre la utilizacin de ancho de
banda en los dispositivos de red, para ello se requiere tener acceso a dichos
dispositivos. Al mismo tiempo, este protocolo genera paquetes llamados traps que
indican que un evento inusual se ha producido.
Otros mtodos de acceso
Se pueden realizar scripts que tengan acceso a dispositivos remotos para obtener
informacin importante a monitorear.
11
Flujos
Los flujos pueden ser obtenidos de ruteadores o mediante dispositivos que sean
capaces de capturar trfico y transformarlo en flujos. Tambin es usado para tareas
de facturacin (billing).
(Altamirano, 2005)
2.2 SMNP
SNMP (Simple Network Management Protocol) es un protocolo simple de
administracin de red de la capa de aplicacin de la suite de TCP/IP el cual facilita el
intercambio de informacin entre los dispositivos, adems de supervisar el desempeo
de la red, dicho protocolo se compone dispositivos administrativos, agentes y los
sistemas que administraba a red. Existen dos versiones de SNMP, SNMPv1 SNMPv2,
ambas tienen un nmero de caractersticas en comn, pero SNMPv2 ofrece mejoras
en las operaciones del protocolo, existe una tercera versin de dicho protocolo,
SNMPv3, el cual ofrece mejoras sobre los aspectos de seguridad, pero an est en
revisin.
El funcionamiento de SNMP es sencillo, aunque su implementacin es un poco ms
compleja ya que utiliza a capa de TCP/IP mediante el envi de datagramas UDP lo
cual lo hace poco confiable. El esquema es sencillo, sin embargo su complejidad
aumenta a la hora de definir las variables, estas variables permiten la consulta con los
agentes SNMP y son establecidas por la Base de Informacin de Gestin o MIB (por
sus siglas en ingls, Management Information Base). La MIB es una forma de
determinar la informacin que ofrece un dispositivo SNMP.
La arquitectura de administracin de la red propuesta por el protocolo SNMP se basa
en tres elementos principales:
Dispositivos administrados: son los elementos de red (puentes, concentradores,
routers o servidores) que contienen "objetos administrados" que pueden ser
informacin de hardware, elementos de configuracin o informacin estadstica;
12
2.2.1 SNMPv1
A sus inicios ARPANET (Advanced Research Projects Agency Network) comprendi
que la nica forma de identificar los problemas de una red era ejecutando comandos
como el ping, el cual no arroja suficiente informacin para la rpida resolucin de los
problemas.
En el ao de 1990 surge SNMP, definido en el RFC 1157. Dicho protocolo muestra
una manera de supervisin y administracin dentro de las redes de cmputo para la
fcil identificacin y solucin de los problemas.
13
2.2.2 SNMPv2
Definicin de objeto: son usados para describir la gestin o anejo de los objetos.
Tablas conceptuales: las operaciones de administracin en SNMPv2 como en
SNMPv1 aplican a objetos escalares, por lo que, la informacin ms compleja
puede ser representada conceptualmente en como una tabla.
Definiciones de notificacin: es usado para definir la informacin que es enviada
por una entidad SNMPv2 cuando ocurre un evento excepcional en la entidad.
Mdulos de informacin: especifica un grupo de definiciones relacionadas.
14
Img 2: MIB
2.4 NAGIOS
Nagios Core es el monitoreo y el motor de alertas que sirve como la aplicacin principal
en torno al cual se construyen cientos de proyectos de Nagios. Acta como planificador
bsico de eventos, procesador de eventos, y el gerente de alerta para los elementos
que se supervisan. Cuenta con varias API que se utilizan para ampliar sus capacidades
para realizar tareas adicionales, se implementa como un demonio escrito en C por
razones de rendimiento, y est diseado para funcionar de forma nativa en Linux.
Este software nos permite obtener datos, interpretarlos y tomar decisiones en base a
ello como:
15
El mismo, est constituido por el Ncleo que construye la interfaz de usuario y por
plugin los cuales representan los ojos y odos de Nagios y por lo cual se encargan de
recopilar informacin. Los mismos pueden estar programados en diversos lenguajes
como C, C++, Python, Perl, PHP, Java etc., ya que Nagios es independiente del
lenguaje en el cual se desarrolle el plugin y solo procesa los datos recibidos de este,
para posterior elaboracin y envi de notificaciones a los encargos de la administracin
del sistema en cuestin.
Algunas de sus caractersticas son:
16
2.5 FORTINET
Fortinet empresa lder mundial en innovacin de Seguridad de Redes. Proveedores
de dispositivos de seguridad de red servicios de suscripcin de la seguridad para los
transportistas, centros de datos, empresas, oficinas distribuidas y proveedores de
servicios gestionados.
2.5.1 FORTIGATE
Plataforma de seguridad de red insignia de Fortinet, FortiGate, consta de aparatos
fsicos y virtuales que ofrecen una amplia gama de funciones de seguridad y redes,
incluyendo firewall, VPN, anti-malware, prevencin de intrusos, control de
aplicaciones, filtrado Web, antispam, DLP, WAN aceleracin, y el control WLAN.
Dispositivos FortiGate, desde el FortiGate 30D y 90D para las pequeas empresas
de todo el camino hasta el FortiGate 3000 y serie 5000 para las grandes empresas,
centros de datos y proveedores de servicios, se basan en una plataforma de
tecnologa patentada comn:
17
18
Cabe mencionar que Advanced Consulting Group ya cuenta con todo un sistema de
monitoreo remoto, por lo tanto, a manera de documentar y explicar dicho sistema,
describiremos paso a paso como es que se hizo, omitiendo direccionamiento por
cuestiones de seguridad.
Como primer paso, iniciaremos con la instalacin del sistema de gestin Nagios sobre
una maquina ya sea fsica o virtual, en este caso lo aremos desde una mquina de
Ubuntu virtual.
19
Build essential
Apache2
Php5
Openssl
Perl
Make
Php5-gd
Libgd2-xmp-dev
Libapache2-mod-php5
Libperl-dev
Libssl-dev
Daemin
Wget
Apache2-utils
Python (opcional, para la creacin de nuevos plugings)
Creamos un grupo, el cual permitir los comandos externos a travs de la interfaz web
de Nagios.
sudo groupadd nagcmd
sudo usermod -a -G nagcmd adminnagios
sudo usermod -a -G nagcmd www-data
20
21
Este error describe que Nagios est intentando crear el archivo nagios.conf dentro
del directorio /etc/httpd.conf/. Pero, en sistemas Ubuntu al archivo mencionado ser
localizado en el directorio /sites-enable/.
As que, ejecutamos el siguiente comando en lugar de sudo make install-webconf.
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesenabled/nagios.conf
Para finalizar reiniciamos el servicio de Apache para que tomen efecto los cambios.
sudo service apache2 restart
22
Para finalizar con esta tarea, ejecutaremos los comandos siguientes uno por uno, para
compilar eh instalar los plugins.
sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo make
sudo make install
Podremos configurar ahora un ID Mail para recibir alerta, para ello editaremos el
archivo
contacts.cfg
ubicado
dentro
del
directorio
/usr/local/nagios/etc/objects/contacs.cfg.
sudo nano /usr/local/nagios/etc/objects/contacts.cfg
; Short
; Inherit
; Full name
23
Para una mejor organizacin de los dispositivos estos pueden ser organizados en
grupos, es decir se define un hostgroup al cual se asociaran los host.
Por defecto Nagios no cuenta con una carpeta para la organizacin de los grupos.
Ingresamos el siguiente comando para desplegar la distribucin de directorios de
Nagios.
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e
's/-/|/'
24
Como se mencion antes, para una mejor organizacin, todo se organiz en carpetas
y los hostgroup no fue la excepcin.
En este caso se crearon dos grupos uno que indica los Fortigates clientes en general
y otro que agrupa los Fortiges del Cliente Grupo Exel.
25
26
Donde:
cfg_dir=/usr/local/nagios/etc/clientes y cfg_dir=/usr/local/nagios/etc/objects, son
rutas establecidas por las cuales Nagios debera ser capaz de encontrar los objetos.
Como el proceso de cada definicin de los objetos es el mismo solo se mostraran
capturas en las cuales se muestra como est configurado cada uno de los hosts.
27
28
3.5.1.2
3.5.1.3
29
3.5.1.4
Definicin del dispositivo que permite el enlace va VPN con los dems dispositivos.
3.5.1.5
30
Estos dispositivos son aquellos que estn emparentados con los dispositivos padre lo
cual permite una mejor estructuracin es decir permite recrear la topologa de nuestra
red.
3.5.2.1
Todos los host que a continuacin de definirn tienen una misma configuracin a
excepcin de su direccin IP, la cual por seguridad ser omitida, y cada uno est
emparentado al dispositivo fg-corporativo.
31
32
33
34
35
3.5.2.2
Aparte de monitorear dispositivos fsicos como son los Fortigates, tambin es posible
monitorear pginas y sitios web, y cada uno de los dispositivos que a continuacin se
mostraran estarn emparentados con el dispositivo FGFonhapo-300C.
36
37
Las definiciones anteriores estn enfocadas a monitorear el estado de sitios web, para
ello solo es necesario cambiar la direccin IP por la del Dominio.
38
39
3.5.2.3
40
3.5.2.4
41
3.5.2.5
3.5.2.6
42
3.5.2.7
3.5.2.8
43
3.5.2.9
44
3.5.2.10
3.5.2.11
45
3.5.2.12
Nagios al ser instalado ya cuenta con servicios definidos para monitorear PING,
HTTP, FTP, UDP, entre otros. Para el monitoreo de los Fortigate es necesario crear
scripts los cuales por medios de OIDs y de SNMP seamos capaces de checar el
estado de CPU, MEMORIA, SESIONES y SISTEMA OPERATIVO.
Para ello nos ubicaremos en la carpeta en la cual estn almacenados los scripts de
cada servicio:
cd /usr/local/nagios/libexec/
46
47
3.6.1.1
SCRIPT CHECK_FGT_CPU.PY
Una vez dentro del editor se escribir el siguiente cdigo, cabe mencionar que en
Python se debe cuidar mucho la parte de identacion para evitar errores.
from argparse import ArgumentParser
from pysnmp.entity.rfc3413.oneliner import cmdgen
argp = ArgumentParser(
version='1.0',
description='Monitoreo Basico de CPU, Memoria, y Numero de Sesiones de un
equipo Fortigate con FortiOS 5.0',
epilog='Copyright 2014 Autor bajo licencia GPL v3.0'
)
argp.add_argument('-host', action = 'store',required = True,help = 'Nombre de
Dominio o IP de la Unidad a monitorear', dest ='domain')
argp.add_argument('--comunidad', '-c', action = 'store', required = True,help
= 'Comunidad', dest ='comunidad')
#Estados de salida reconocidos por Nagios
UNKNOWN = 3
OK = 0
WARNING = 1
CRITICAL = 2
argumentos = argp.parse_args()
48
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData(argumentos.comunidad),
cmdgen.UdpTransportTarget((argumentos.domain, 161)),
'1.3.6.1.4.1.12356.101.4.1.4.0'
)
# Check for errors and print out results
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
if varBinds[0][1] <= 70:
print 'CPU: ' + str(varBinds[0][1])+'%'
raise SystemExit, OK
elif varBinds[0][1] >= 71 and varBinds[0][1] <= 80:
print 'CPU: ' + str(varBinds[0][1]) + '%'
raise SystemExit, WARNING
elif varBinds[0][1] >= 81 and varBinds[0][1] <= 100:
print 'CPU: ' + str(varBinds[0][1]) + '%'
raise SystemExit, CRITICAL
else:
print 'CPU: ' + str(varBinds[0][1]) + '%'
49
3.6.1.2
SCRIPT CHECK_FGT_MEM.PY
50
51
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
if varBinds[1][1] <=70:
print 'Memoria: ' + str(varBinds[1][1]) + '%'
raise SystemExit, OK
elif varBinds[1][1] >= 71 and varBinds[1][1] <= 80:
print 'Memoria: ' + str(varBinds[1][1]) + '%'
raise SystemExit, WARNING
elif varBinds[1][1] >= 81 and varBinds[1][1] <= 100:
print 'Memoria: ' + str(varBinds[1][1]) + '%'
raise SystemExit, CRITICAL
else:
print 'Memoria: ' + str(varBinds[1][1]) + '%'
raise SystemExit, UNKNOWN
52
3.6.1.3
SCRIPT CHECK_FGT_FOS.PY
53
54
)
else:
print 'FortiOS: ' + str(varBinds[3][1])
raise SystemExit, OK
3.6.1.4
SCRIPT CHECK_FGT_SES.PY
56
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
print 'Sesiones: ' + str(varBinds[2][1])
raise SystemExit, OK
57
3.6.1.5
COMPROBACION DE SCRIPTS
Una vez creados los scripts y antes de asignarlos a los host, es prudente testear el buen funcionamiento
de estos.
Para ello ejecutaremos cada script, ubicados en la carpeta en la cual se crearon los archivos,
ejecutaremos los siguientes comandos:
Sudo Python check_fgt_cpu.py host <direccion del host> -c <la comunidad
asignada al dispositivo a monitorear>
Sudo Python check_fgt_mem.py host <direccion del host> -c <la comunidad
asignada al dispositivo a monitorear>
Sudo Python check_fgt_fos.py host <direccion del host> -c <la comunidad
asignada al dispositivo a monitorear>
Sudo Python check_fgt_ses.py host <direccion del host> -c <la comunidad
asignada al dispositivo a monitorear>
58
3.6.2.1
DEFINICIN DE SERVICIOS DE MONITOREO CPU, MEM, SES Y
FOS
59
3.6.2.2
Tomaremos como ejemplo el host fonhapo-gob.cfg para mostrar cmo se define este
servicio, el cual es uno de los que Nagios nos ofrece, este servicio, nos permite
monitorear el estado del enlace http de una pgina o sitio web.
60
3.6.2.3
Ahora una vez creado los servicios y definidos, tenemos que establecer el comando con el cual
nuestro sistema reconocer el script como un servicio ms.
Para ello nos ubicamos en la ruta /usr/loca/nagios/etc/objects/commands/, una vez dentro del
directorio con uso de nano procedemos a definir el comando.
cd /usr/local/nagios/etc/objects/commands
sudo nano commands.cfg
61
Nagios, siendo un sistema de monitoreo, cuenta con una interfaz grfica la cual nos
permite observar el comportamiento de los dispositivos agregados, para ello es
necesario acceder a un navegador y se introduce la direccin que se le asign al
servidor del sistema.
62
63
3.7.3 MAP
64
3.7.4 HOST
Muestra la lista de los host agregados al sistema.
3.7.5 SERVICES
Muestra una lista con los servicios designados a cada host as como tambin el
estatus actual de ellos.
65
3.7.7 ALERTS
Muestra las alertas actuales dentro de nuestra red.
66
CONCLUSIN
Hoy en da, la gestin de las redes dentro de las empresas se ha vuelto un punto clave
para su desarrollo y crecimiento mercantil, es muy importante para las empresas tener
una mejor administracin de su red, las redes, da con da, soportan aplicaciones y
servicios estratgicos de las empresas, por lo cual el anlisis y monitoreo de redes se
ha convertido en una labor importante y primordial para evitar problemas o
solucionarlos de manera ms rpida. Advanced Consulting Group empresa dedicada
a la consultora y soporte de tecnologas de la informacin ha demostrado la eficacia
del uso de un sistema gestin de redes, contando con su sistema de soporte remoto
el cual implementan el uso de Nagios y de SNMP, facilitando la labor de los ingenieros
encargados del soporte y satisfaciendo las necesidades del cliente.
El crecimiento de las tecnologas y en especial el de las redes de comunicacin, se
convirti en algo completamente esencial, demostrando que el uso de sistemas de
gestin de redes ya no debe ser algo opcional si no fundamental, para el mejor manejo
de las mismas.
67
TABLA DE ILUSTRACIONES
Img 1 : Elementos de SNMP _______________________________________________________________
Img 2: MIB _______________________________________________________________________________
Img 3: Nagios Main splash screen __________________________________________________________
Img 4: Nagios Service Status Detail _________________________________________________________
Img 5: Nagios Host Status and Hostgroup Status Detail________________________________________
Img 6: Interfaz inicial Nagio Core ______________________________________________________________
Img 7: Distribucion de directorios en Nagios (Default)______________________________________________
Img 8: Carpeta hostgroups en nagios ACG actual. _________________________________________________
Img 9: Definicion del Hostgrup "fortigates-exel" __________________________________________________
Img 10: Definicion del Hostgroup "hg_fortigates" _________________________________________________
Img 11: Script fg-corporativo.cfg ______________________________________________________________
Img 12: Definicion host central de Fonhapo ______________________________________________________
Img 13:Definicion host central Gacia Pineda _____________________________________________________
Img 14:Definicion Host de enlace VPN ACG ______________________________________________________
Img 15:Definicin Host central Reyes Huerta _____________________________________________________
Img 16: Definicin de fg-cdjuarez.cfg ___________________________________________________________
Img 17: Definicin de fg-chihuahua.cfg _________________________________________________________
Img 18: Definicin de fg-guadalajara.cfg ________________________________________________________
Img 19: Definicin de fg-leon.cfg ______________________________________________________________
Img 20: Definicin de fg-merida.cfg ____________________________________________________________
Img 21: Definicin de fg-mex-coyoacan.cfg ______________________________________________________
Img 22: Definicin de fg-mex-poniente.cfg _______________________________________________________
Img 23: Definicin de fg-miguelaleman.cfg ______________________________________________________
Img 24: Definicin de fg-puebla.cfg ____________________________________________________________
Img 25: Definicion de fg-saltillo.cfg_____________________________________________________________
Img 26: Definicin de fg-tijuana.cfg ____________________________________________________________
Img 27: Definicin de fg-torreon.cfg ____________________________________________________________
Img 28: Definicin de fg-veracruz.cfg ___________________________________________________________
Img 29: Definicin de fonhapo-gob.cfg __________________________________________________________
Img 30: Definicin de mail.cfg _________________________________________________________________
Img 31: Definicin de gestion.cfg ______________________________________________________________
Img 32: Definicin de herramientas.cfg _________________________________________________________
Img 33: Definicin de oe.cfg __________________________________________________________________
Img 34: Definicin de sicoga.cfg _______________________________________________________________
Img 35: Definicin de sidi.cfg _________________________________________________________________
Img 36: Definicion de stage.cfg ________________________________________________________________
Img 37: Definicin de fortigate-FonhapoTM300C.cfg ______________________________________________
Img 38: Definicin de Fortigate-fonhapoVY.cfg ___________________________________________________
Img 39: Definicin de fortigate-fonhapoVYTM.cfg _________________________________________________
Img 40: Definicin de fortigate-angelopolis.cfg ___________________________________________________
Img 41: Definicin de fortigate-ginsa.cfg ________________________________________________________
Img 42: Definicin de fortigate-parispue.cfg _____________________________________________________
68
13
15
16
17
17
24
25
25
26
26
28
29
29
30
30
31
31
32
32
32
33
33
33
34
34
34
35
35
36
36
36
37
37
37
38
38
39
39
39
40
40
40
69
41
41
41
42
42
42
43
43
44
44
45
45
46
46
47
50
53
55
57
58
60
60
61
62
63
64
64
65
65
66
66
REFERENCIAS
70
GLOSARIO
71
72