Monitorización y SNMP

¿Que es SNMP?

Introducción a SNMP

El protocolo SNMP o Simple Network Management Protocol es un protocolo de capa de aplicación definido en la RFC1157 basado en Solicitud/Respuesta: GET / SET.

El protocolo SNMP se utiliza para intercambiar información de administración y estadísticas de rendimiento entre dispositivos de red.  Es uno de los protocolos más comunes utilizados para la administración de red. 

Puertos SNMP

SNMP utiliza el número de puerto 161/162 UDP. Hay que distinguir entre el SNMP el puerto por el que se realizan las operaciones de consulta y/o modificación de valores que suele usar el puerto UDP 161 y el SNMP que envía eventos o excepciones del sistema (TRAPS) al sistema de Monitorización que usa el puerto 162 UDP normalmente.

Operaciones SNMP

Aunque el SNMP permite realizar operaciones de escritura en los dispositivos (modo R/W), no es aconsejable usar esto y por lo general se recomienda usar el modo Read Only (RO) en las configuraciones de SNMP.

SNMP no es muy seguro, por lo que como hemos comentado no es conveniente configurar los dispositivos en modo Lectura/Escritura.

Versiones de SNMP

Las versiones de SNMP más utilizadas son SNMP versión 1 (SNMPv1) y SNMP versión 2 (SNMPv2). Existe una versión de SNMP versión 3 (SNMPv3) que ya incorpora funciones de autenticación y encriptación de los paquetes de datos e incorpora características avanzadas de seguridad, pero debido a que es mucho más complejo de configurar y que añade una carga adicional en la monitorización, no está muy extendido el uso de esta versión.

RFC's de las versiones de SNMP

v1 (1988) – RFC1155, RFC1156, RFC1157

v2 – RFC1901 a RFC1908 + RFC2578

v3 – RFC3411 a RFC3418 (alta seguridad)

La versión más usada es la v2c que es una evolución de la versión v2.

Arquitectura de un sistema SNMP

En primer lugar disponemos de dos entidades un sistema de administración (NMS o Network Management System) y los agentes en los dispositivos administrados.

Sistema NMS

Un sistema de gestión o administración de red (NMS) ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados. Los NMS’s se encargan de sondear a los agentes, recabar información y almacenarla a fin de obtener datos estadísticos y pueden enviar alertas cuando alguno de estos parámetros supere un umbral predefinido.

Dispositivos administrados

Un dispositivo administrado es un dispositivo que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los dispositivos administrados, que son elementos conectados a la red, pueden ser routers, switches, servidores,  ordenadores, impresoras, etc.

Agentes

Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.

Elementos del protocolo SNMP

MIB's

El protocolo SNMP usa una estructura jerárquica basada en dos elementos que se denominan MIB (Management Information Base o Base de Información de Administración) que es una colección de información que está organizada jerárquicamente por áreas. Estas áreas están definidas dentro de unos valores denominados OID (Identificador de objeto o en inglés object ID).

Las MIB se dividen normalmente en dos apartados, las MIB generales de SNMP definidas en la RFC3418 y las propietarias de cada fabricante que añaden valores específicos del hardware.

Por ejemplo 

IF-MIB, IP-MIB son elementos MIB estándar que representan por ejemplo las interfaces de red y las IPv4 respectivamente, y se incluyen en todos los elementos de red.

Luego muchos fabricantes incluyen ficheros MIB descargadles de sus páginas de soporte a fin de añadir capacidades de monitorización sobre los elementos de su hardware o aplicaciones.

OID's

Las OID son como hemos dicho identificadores de objeto que se incluyen dentro de los ficheros MIB. 

El formato de los OID suele estar representado por una secuencia de números separados por puntos. La jerarquía es como la mostrada a continuación.

oid.001.png

Como vemos en este ejemplo, una MIB de cisco vendría dada por .1.4.1.9 (ejemplo ficticio) Una interfaz de red comenzaría por  .1.1.1.2, la memoria RAM usada comenzaría por  .1.1.1.2, las direcciónes IP comenzarían por .1.1.1.4.

Un ejemplo real de una OID estaría representado, según la nomenclatura

La obtenida del fichero MIB (Notación ASN.1)

{iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 4413 quantaProducts(1) fastPath(1) fastPathSwitching(1) agentInfoGroup(1) agentSwitchCpuProcessGroup(4) agentSwitchCpuProcessMemFree(1)}

En formato OID-RI

/ISO/Identified-Organization/6/1/4/1/4413/1/1/1/1/4/1

En formato dot o númerico separado por puntos.

1.3.6.1.4.1.4413.1.1.1.1.4.1

Otro ejemplo (propietario de Synology) incluido en el fichero MIB de Synology SYNOLOGY-SMART-MIB.txt

{iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 6574 synologyDiskSMART(5)}

/ISO/Identified-Organization/6/1/4/1/6574/5

1.3.6.1.4.1.6574.5

synologyDiskSMART MODULE-IDENTITY
LAST-UPDATED "201605050000Z"
ORGANIZATION "www.synology.com"
CONTACT-INFO
"postal: Aki Wang
email: akiwang@synology.com"
DESCRIPTION "Characteristics of the disk SMART information"
REVISION "201605050000Z"
DESCRIPTION "First draft."

En la siguiente imagen podemos ver una captura de imagen del principio de este fichero.

synloogy.png

Como vemos en la imagen hay un identificador ::={ enterprises 6574 } que identifica al fabricante Synology, y los diferentes atributos así como el tipo de valor (OCTECT STRING, Integer32, Gauge, etc).

Podemos ver la salida de estos valores usando el comando snmpwalk.


Cómo instalar y usar snmpwalk

Instalación y algunos ejemplos de Snmpwalk

Snmpwalk se encuentra en la mayoría de los repositorios de Linux

apt install snmp

La sintaxis para utilizar snmpwalk es simple y amplia:

root@nms:/etc/snmp# snmpwalk --help
USAGE: snmpwalk [OPTIONS] AGENT [OID]

  Version:  5.9
  Web:      http://www.net-snmp.org/
  Email:    net-snmp-coders@lists.sourceforge.net

OPTIONS:
  -h, --help		display this help message
  -H			display configuration file directives understood
  -v 1|2c|3		specifies SNMP version to use
  -V, --version		display package version number
SNMP Version 1 or 2c specific
  -c COMMUNITY		set the community string
SNMP Version 3 specific
  -a PROTOCOL		set authentication protocol (MD5|SHA|SHA-224|SHA-256|SHA-384|SHA-512)
  -A PASSPHRASE		set authentication protocol pass phrase
  -e ENGINE-ID		set security engine ID (e.g. 800000020109840301)
  -E ENGINE-ID		set context engine ID (e.g. 800000020109840301)
  -l LEVEL		set security level (noAuthNoPriv|authNoPriv|authPriv)
  -n CONTEXT		set context name (e.g. bridge1)
  -u USER-NAME		set security name (e.g. bert)
  -x PROTOCOL		set privacy protocol (DES|AES)
  -X PASSPHRASE		set privacy protocol pass phrase
  -Z BOOTS,TIME		set destination engine boots/time
General communication options
  -r RETRIES		set the number of retries
  -t TIMEOUT		set the request timeout (in seconds)
Debugging
  -d			dump input/output packets in hexadecimal
  -D[TOKEN[,...]]	turn on debugging output for the specified TOKENs
			   (ALL gives extremely verbose debugging output)
General options
  -m MIB[:...]		load given list of MIBs (ALL loads everything)
  -M DIR[:...]		look in given list of directories for MIBs
    (default: $HOME/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf)
  -P MIBOPTS		Toggle various defaults controlling MIB parsing:
			  u:  allow the use of underlines in MIB symbols
			  c:  disallow the use of "--" to terminate comments
			  d:  save the DESCRIPTIONs of the MIB objects
			  e:  disable errors when MIB symbols conflict
			  w:  enable warnings when MIB symbols conflict
			  W:  enable detailed warnings when MIB symbols conflict
			  R:  replace MIB symbols from latest module
  -O OUTOPTS		Toggle various defaults controlling output display:
			  0:  print leading 0 for single-digit hex characters
			  a:  print all strings in ascii format
			  b:  do not break OID indexes down
			  e:  print enums numerically
			  E:  escape quotes in string indices
			  f:  print full OIDs on output
			  n:  print OIDs numerically
			  p PRECISION:  display floating point values with specified PRECISION (printf format string)
			  q:  quick print for easier parsing
			  Q:  quick print with equal-signs
			  s:  print only last symbolic element of OID
			  S:  print MIB module-id plus last element
			  t:  print timeticks unparsed as numeric integers
			  T:  print human-readable text along with hex strings
			  u:  print OIDs using UCD-style prefix suppression
			  U:  don't print units
			  v:  print values only (not OID = value)
			  x:  print all strings in hex format
			  X:  extended index format
  -I INOPTS		Toggle various defaults controlling input parsing:
			  b:  do best/regex matching to find a MIB node
			  h:  don't apply DISPLAY-HINTs
			  r:  do not check values for range/type legality
			  R:  do random access to OID labels
			  u:  top-level OIDs must have '.' prefix (UCD-style)
			  s SUFFIX:  Append all textual OIDs with SUFFIX before parsing
			  S PREFIX:  Prepend all textual OIDs with PREFIX before parsing
  -L LOGOPTS		Toggle various defaults controlling logging:
			  e:           log to standard error
			  o:           log to standard output
			  n:           don't log at all
			  f file:      log to the specified file
			  s facility:  log to syslog (via the specified facility)

			  (variants)
			  [EON] pri:   log to standard error, output or /dev/null for level 'pri' and above
			  [EON] p1-p2: log to standard error, output or /dev/null for levels 'p1' to 'p2'
			  [FS] pri token:    log to file/syslog for level 'pri' and above
			  [FS] p1-p2 token:  log to file/syslog for levels 'p1' to 'p2'
  -C APPOPTS		Set various application specific behaviours:
			  p:  print the number of variables found
			  i:  include given OID in the search range
			  I:  don't include the given OID, even if no results are returned
			  c:  do not check returned OIDs are increasing
			  t:  Display wall-clock time to complete the walk
			  T:  Display wall-clock time to complete each request
			  E {OID}:  End the walk at the specified OID

La sintaxis más común es la siguiente: snmpwalk -v [Version_SNMP] -c [Comunidad_SNMP] IP

Ejecutamos

snmpwalk -v2c -c public 192.168.1.1

Ejemplo de salida (truncada)

iso.3.6.1.2.1.1.1.0 = STRING: "Cisco NX-OS(tm) nxos.9.3.8.bin, Software (nxos), Version 9.3(8), RELEASE SOFTWARE Copyright (c) 2002-2021 by Cisco Systems, Inc. Compiled 8/4/2021 13:00:00"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.12.3.1.3.1163
iso.3.6.1.2.1.1.3.0 = Timeticks: (1675649094) 193 days, 22:34:50.94
iso.3.6.1.2.1.1.4.0 = STRING: "email@ejemplo.com"
iso.3.6.1.2.1.1.5.0 = STRING: "CISCONEXUS1"
iso.3.6.1.2.1.1.6.0 = STRING: "Dirección postal de la ubicación del Equipo"
iso.3.6.1.2.1.1.7.0 = INTEGER: 70
iso.3.6.1.2.1.1.8.0 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The MIB module for SNMPv2 entities"
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "View-based Access Control Model for SNMP."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.5 = STRING: "The management information definitions for the SNMP User-based Security Model."
iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (4294967262) 497 days, 2:27:52.62
iso.3.6.1.2.1.2.1.0 = INTEGER: 66
iso.3.6.1.2.1.2.2.1.1.83886080 = INTEGER: 83886080
iso.3.6.1.2.1.2.2.1.1.151060481 = INTEGER: 151060481
iso.3.6.1.2.1.2.2.1.1.151060520 = INTEGER: 151060520
iso.3.6.1.2.1.2.2.1.1.151060681 = INTEGER: 151060681
iso.3.6.1.2.1.2.2.1.1.151060682 = INTEGER: 151060682
iso.3.6.1.2.1.2.2.1.1.151060683 = INTEGER: 151060683
iso.3.6.1.2.1.2.2.1.1.151060684 = INTEGER: 151060684
iso.3.6.1.2.1.2.2.1.1.369098752 = INTEGER: 369098752
iso.3.6.1.2.1.2.2.1.1.369098755 = INTEGER: 369098755
iso.3.6.1.2.1.2.2.1.1.369098764 = INTEGER: 369098764
iso.3.6.1.2.1.2.2.1.1.369098765 = INTEGER: 369098765
iso.3.6.1.2.1.2.2.1.1.369098766 = INTEGER: 369098766
iso.3.6.1.2.1.2.2.1.1.369098780 = INTEGER: 369098780
iso.3.6.1.2.1.2.2.1.1.369098781 = INTEGER: 369098781

Para ver únicamente la información de un solo OID

SysLocation

root@nms:/etc/snmp# snmpwalk -v2c -c public 192.168.1.1 SNMPv2-MIB::sysLocation.0
SNMPv2-MIB::sysLocation.0 = STRING: Dirección postal de la ubicación del Equipo

sysName

root@nms:/etc/snmp# snmpwalk -v2c -c public 192.168.1.1 SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysLocation.0 = STRING: CISCONEXUS1

También podemos utilizar el valor OID 

root@nms:/etc/snmp# snmpwalk -v2c -c public 192.168.1.1 .1.3.6.1.2.1.1.6.0
SNMPv2-MIB::sysLocation.0 = STRING: Dirección postal de la ubicación del Equipo






Fundamentos del protocolo SNMP

Protocolo Simple de Administración de Redes (SNMP) es un protocolo de capa 7 que usa los puertos 161 y 162 UDP.

Basado en Solicitud/Respuesta: GET / SET.

Versiones de SNMP

v1 (1988) – RFC1155, RFC1156, RFC1157

v2 – RFC1901 a RFC1908 + RFC2578

v3 – RFC3411 a RFC3418 (alta seguridad)

La versión más usada es la v2c.

 

 

Configurar snmpd en Debian

Normalmente, en Linux , SNMP no viene implementado ni configurado por defecto, con lo que para poder obtener toda la información que necesitamos, es necesario ejecutar una serie de pasos que se detallan a continuación.

Haremos login al servidor Linux mediante ssh

ssh usuario@servidor

Una vez que hemos accedido procederemos a ejecutar el comando update para actualizar los repositorios

sudo apt update

A continuación instalaremos el demonio de snmp y las librerías.

sudo apt install snmpd snmp-mibs-downloader

Abra el archivo /etc/snmp/snmp.conf en el editor de texto con privilegios sudo. En este tutorial, se usará nano:

sudo nano/etc/snmp/snmpd.conf

Primero, debe cambiar la directiva agentAddress. Por el momento, está configurada para permitir solo las conexiones que se originan desde el servidor local. Deberá excluir la línea actual y quitar el comentario de la que está debajo de ella, que es la que permite todas las conexiones.

#  Listen for connections from the local system only
#agentAddress  udp:127.0.0.1:161
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:A.B.C.D:161,udp6:[::1]:161

Donde A.B.C.D será la dirección IP de la máquina.

A continuación veremos lo siguiente:

###############################################################################
#
#  ACCESS CONTROL
#
 
                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
                                                 #  Full access from the local host
#rocommunity public  localhost
                                                 #  Default access to basic system info
# rocommunity public  default    -V systemonly
                                                 #  rocommunity6 is for IPv6
# rocommunity6 public  default   -V systemonly
 
                                                 #  Full access from an example network
                                                 #     Adjust this network address to match your local
                                                 #     settings, change the community string,
                                                 #     and check the 'agentAddress' setting above
#rocommunity secret  10.0.0.0/16
 

Si queremos que todo esté accesible, en lugar de systemonly con las OID .1.3.6.1.2.1 etc, agregaremos la entrada .1 para que se puedan ver todos los parámetros de SNMP del equipo

###############################################################################
#
#  ACCESS CONTROL
#
 
view   all         included   .1 
                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
                                                 #  Full access from the local host
#rocommunity public  localhost
                                                 #  Default access to basic system info
rocommunity public  default    -V all
                                                 #  rocommunity6 is for IPv6
rocommunity6 public  default    -V all
 
                                                 #  Full access from an example network
                                                 #     Adjust this network address to match your local
                                                 #     settings, change the community string,
                                                 #     and check the 'agentAddress' setting above
#rocommunity secret  10.0.0.0/16
 

En los campos marcados en rocommunity podremos la comunidad snmp de nuestro sistema en lugar de public (como medida de precacución)

Más Adelante hay una sección en la que aparecen los datos de identificación del contacto y la ubicación

###############################################################################
#
#  SYSTEM INFORMATION
#
 
#  Note that setting these values here, results in the corresponding MIB objects being 'read-only'
#  See snmpd.conf(5) for more details
sysLocation    Dirección
sysContact     contacto
                                                 # Application + End-to-End layers
sysServices    72
 
 

A continuación procederemos a guardar el archivo con CTRL + O y salir con CTRL + S, y reiniciaremos el demonio SNMP

sudo systemctl restart snmpd

Por ultimo haremos que el servicio se inicie en el arranque de la máquina

sudo systemctl enable snmpd

Para comprobar que el demonio de snmp funciona, podremos usar la herramienta snmpwalk



Cómo activar SNMP en VCenter

El primer paso es activar SNMP si no está activado, para ello nos logaremos por SSH.

VMware vCenter Server Appliance 6.5.0

Type: vCenter Server with an embedded Platform Services Controller

root@X.X.X.X's password:
Last login: Fri Oct 16 05:27:48 2020 from Y.Y.Y.Y
Connected to service

    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Enable BASH access: "shell.set --enabled True"
    * Launch BASH: "shell"

Command>

Una vez logado, revisaremos la configuración de Vcenter

Para ello teclearemos el comando snmp.get

Command> snmp.get
Config:
   Enable: True
   Users:
   Notraps:
   Privacy: none
   Loglevel: warning
   V3targets:
   Pid: 29643
   Syslocation: Lezama 4, 28034 Madrid, Spain
   Targets:
   Remoteusers:
   Authentication: none
   Communities: Itw1s3Mng
   Engineid: 80001adc808ad6440eb8497b5f00000000
   Port: 161
   Syscontact: sistemas@tecnocratica.net
Command>

En este caso, vemos que está activado. 

En el caso de que el campo Enable estuviera en false, deberemos de configurar el SNMP

En el siguiente comando vamos a configurar SNMP de manera básica usando la comunidad public, a su vez vamos a decirle que quiero que nos lance todas las traps a un Host, y posteriormente que solamente envíe las notificaciones de warning y error.

Command> snmp.set --communities public
Command> snmp.set --targets 192.168.X.X@162/public           
Command> snmp.set --loglevel warning
Command> snmp.enable


Configurar SNMP en VMWare ESXI

En este breve artículo, vamos a ver cómo monitorizar con SNMP un VMWare ESXi. De esta forma podemos monitorizar con nuestra herramienta favorita de monitorización nuestra infraestructura VMWare de forma completa.

Como vimos en otro artículo sobre como monitorizar VMWare Vcenter. Este segundo artículo se centra en los nodos de VMWare ESXi.

Primeros pasos

Comprobar si el SNMP está activo en VMWare ESXi

Para configurar los nodos ESXi, debemos comprobar que el SNMP está activo, para ello vamos a la configuración de servicios, y comprobamos si el servicio SNMP está arrancado, en caso de que no esté arrancado, trataremos de iniciar el servicio.

Servicios_esxi_01.png

Si nos arroja un error, lo más normal es que esto venga dado por un problema en los retornos de carro del fichero de configuración de SNMP en el nodo de ESXi que en muchos casos viene mal en las ISO de instalación. Este problema que está reportado por VMware se soluciona de la siguiente forma:

Login SSH al ESXi

Hacemos login por ssh al nodo ESXi. En caso de que no podamos accederé s necesario habilitar el ssh. Para ello haz clic con el botón derecho en Host desde el inventario de VMware Host Client.

Selecciona Servicios en el menú desplegable y, a continuación, Secure Shell (SSH)

Servicios_esxi_02.png

Si SSH está deshabilitado, haz clic en Habilitar para habilitarlo.

Servicios_esxi_03.png

En el caso de usar el cliente convencional de VMWare, en configuración, perfil de seguridad.

En algunos sistemas VMWare ESXi, aparece un warning cuando se habilita, si se desea que el SSH esté habilitado y quitar el warning, vamos a Configuración en el host ESXi, vamos a Configuración Avanzada (más abajo de Perfil de seguridad)

Servicios_esxi_05.png

Buscamos en UserVars (casi al final)

Servicios_esxi_06.png

hay una opción que se llama UserVars.SuppressShellWarning. Cambiamos el valor de 0 a 1, pulsamos Ok y ya lo tenemos

Servicios_esxi_07.png

Ahora que tenemos todo, y habilitado el SSH, procedemos a hacer login

etaboada@MacBookProEdu ~ % ssh root@mad01vmw009.eduardotaboada.com
Password:
The time and date of this login have been sent to the system logs.
VMware offers supported, powerful system administration tools. Please
see www.vmware.com/go/sysadmintools for details.
The ESXi Shell can be disabled by an administrative user. See the
vSphere Security documentation for more information.
[root@mad01vmw009:~]

Vamos a la carpeta de configuración de vmware

[root@mad01vmw009:~]cd /etc/vmware

Realizamos una copia del fichero de configuración de SNMP

[root@mad01vmw009:~]cp snmp.xml snmp.xml.OLD

A continuación, editamos el fichero snmp.xml

[root@mad01vmw009:~]vi snmp.xml

Borramos el contenido del fichero mediante el comando “escape+d” que nos borra línea a línea (nota los símbolos + no hay que escribirlos) Ahora con el fichero vacío, debemos de copiar el siguiente contenido tecleando previamente “escape+a

<?xml version='1.0' encoding='ISO-8859-1'?>
<config>
<snmpSettings>
<enable>true</enable>
<port>161</port>
<syscontact>EMAIL DEL NOC O SISTEMAS</syscontact>
<syslocation>LA DIRECCION DEL SERVIDOR (FISICA)</syslocation>
<EnvEventSource>indications</EnvEventSource>
<communities>MICOMUNIDADl</communities>
<loglevel>info</loglevel>
<authProtocol></authProtocol> <privProtocol></privProtocol>
</snmpSettings>
</config>

En este caso, pondremos como Syscontact la dirección de correo o el nombre del administrador del sistemas. Como ubicación la dirección donde está el servidor o algún valor que nos sea útil. Si ponemos la dirección como calle, código postal, ciudad, país. LibreNMS nos ubicará el servidor en el mapa.

En la cadena de comunidades en lugar de MICOMUNIDAD; pondremos el nombre de nuestra comunidad SNMP.

Guardamos el fichero ejecutando “escape+:+w+q” (nota los símbolos + no hay que escribirlos)

Ahora comprobaremos que el servicio SNMP se inicia y lo configuraremos si es así, para que se inicie con el host

Servicios_esxi_08.png

Configurar SNMP en equipos Cisco

Configurar SNMP v1/v2 en Cisco

Para poder configurar el SNMP en equipos cisco, accederemos al equipo y entraremos en el modo de configuración

sw-d4-1c1-ae05-c1#configure terminal 
Enter configuration commands, one per line.  End 
with CNTL/Z. 
sw-d4-1c1-ae05-c1(config)#

Ahora habilitaremos el SNMP

snmp-server community MICOMUNIDAD RO
snmp-server location "C/ Salvatierra 4, 28034, Madrid, Spain"
snmp-server contact sistemas@tecnocratica.net

Recomendamos no usar la comunidad por defecto (public) pues al ser la que usan casi todos los equipos por defecto, ante cualquier acceso no autorizado a la red de gestión, un atacante podría acceder a los parámetros de nuestro equipos.

Bloquear el acceso SNMP a determinados hosts/redes

Para ello crearemos una ACL

access-list 1 permit 10.200.3.140

O bien a la red

access-list 1 permit 10.200.3.0/24

Después aplicaremos la ACL a la comunidad

snmp-server community MICOMUNIDAD ro 1



Windows Server: Servicio SNMP – Instalación y configuración

El servicio SNMP permite la interrogación de equipos informáticos para realizar la supervisión y el diagnóstico.

Este protocolo es utilizado por software de supervisión como PRTG, LibreNMS, Nagios, etc.

Instalación del servicio SNMP en Windows Server

En Windows, el servicio no se instala de forma predeterminada, es una característica para instalar.

Instalación en modo gráfico

Desde el administrador del servidor, haga clic en Administrar. Agregar roles y características.

Agregar_Roles.png

Cuando se abra el asistente, haga clic en Siguiente> 

Agregar2.png

Seleccione Instalación basada en características o roles y haga clic en Siguiente> 

agregar3.png

Seleccione el servidor  y haga clic en Siguiente> 

agregar4.png

En la selección de roles, haga clic en el botón Siguiente 

agregar5.png

En la lista de funciones, busque Servicio SNMP  (1) y marque la casilla.

agregar6.png

Confirme la instalación presionando el botón Instalar

Agregar7.png

Una vez completada la instalación, haga clic en Cerrar

Instalación de PowerShell

En un símbolo del sistema de PowerShell, como administrador, ingrese el siguiente comando:

Install-WindowsFeature SNMP-Service -IncludeManagementTools


Configurar la seguridad SNMP para una comunidad

Haga clic en Inicio , elija Panel de control, Herramientas administrativas y, a continuación, haga clic en Administración del equipo.

En el árbol de consola, expanda Servicios y aplicaciones y, a continuación, haga clic en Servicios.

configura_snmp1.png

En el panel derecho, haga doble clic en Servicio SNMP.

configura_snmp2.png

Haga clic en la pestaña Seguridad.


Haga clic para activar la casilla Enviar captura de autenticación (si aún no está seleccionada) si desea que se envíe un mensaje de captura cuando se produce un error en la autenticación.

En Nombres de comunidad aceptados, haga clic en Agregar. Debe de agregar el nombre de la comunidad (por defecto suele ser public), recomendamos usar una comunidad personalizada.

Para especificar cómo procesa el host las solicitudes SNMP de la comunidad seleccionada, haga clic en el nivel de permisos que desee en el cuadro Derechos de la Comunidad.

configurar_snmp7.png

En el nombre de la comunidad, escriba el nombre de la comunidad que distingue mayúsculas de minúsculas que desee y, a continuación, haga clic en Agregar. Como hemos comentado antes, los sistemas suelen usar public

Especifique si se aceptan o no paquetes SNMP de un host. Para ello, realice una de las siguientes acciones:

Haga clic en Agregar.

Haga clic en Aceptar.

configurar_snmp5.png

En los elementos a monitorizar con SNMP, debemos en la pestaña Agente

Aquí configuraremos el contacto a modo informativo, la dirección de la ubicación del equipo, así como los servicios a monitorizar, en este caso 

Físico

Aplicaciones

Vínculo de datos y subred

Internet

De un extremo a otro

configurar_snmp4.png

Pulsamos en Aplicar y Aceptar











SNMP, MIBS y OID

¿Qué es SNMP?

SNMP – Protocolo Simple de Gestión de Red (Simple Network Management Protocol) es un protocolo que facilita el intercambio de información de administración entre dispositivos de red. Los dispositivos que normalmente soportan SNMP incluyen routers, switches, servidores, estaciones de trabajo, impresoras, etc, siempre y cuando sean medianamente decentes

OIDs y MIBs

OID: Identificadores de Objeto

Es una cadena de tamaño variable de números separados por puntos.

Ejemplos:

1.3.6.1.2.1.1.4.0. --> Contacto

1.3.6.1.2.1.1.3.0  --> Uptime

Una clave única para seleccionar un objeto particular en el dispositivo. 

La misma informacion siempre se encuentra en el mismo OID.

MIB: Base de Información de Gestión (Management Information Base)

Una colección de OIDs relacionados

Los OID están correlacionados con nombres legibles

oid.001.png


Ejemplo iso.3.6.1.2.1.2.2.1.2.436207616 Corresponde a una interfaz de red 

.1.3.6.1.2.1.1.5 => sysName que equivale a .iso.org.dod.internet.mgmt.mib-2.system.sysName

Realmente sólo hay dos ramas interesantes

1.3.6.1.2.1 = MIBs estándar

1.3.6.1.4.1 = MIB específicos

Los archivos de MIB definen objetos que se pueden sondear con SNMP e incluyen:

Nombre de objeto

Descripción de objeto

Tipo de dato (integer, texto, lista, gauge)

Ejemplo de fichero MIB (parcial)

sysUpTime OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The time (in hundredths of a second) since the
                      network management portion of the system was last
                      re-initialized."
              ::= { system 3 }

Con comentarios

sysUpTime OBJECT-TYPE
	This defines the object called sysUpTime. 
SYNTAX TimeTicks
	This object is of the type TimeTicks. Object types are specified in the SMI we mentioned a moment ago. 
ACCESS read-only
	This object can only be read via SNMP (i.e., get-request); it cannot be changed (i.e., set-request). 
STATUS mandatory
	This object must be implemented in any SNMP agent.
DESCRIPTION
	A description of the object
::= { system 3 }
	The sysUpTime object is the third branch off of the system object group tree.



Windows 10/11: Servicio SNMP – Instalación y configuración

El servicio SNMP permite la interrogación de equipos informáticos para realizar la supervisión y el diagnóstico.

Este protocolo es utilizado por software de supervisión como PRTG, LibreNMS, Nagios, etc.

Instalación del servicio SNMP en Windows Server

En Windows, el servicio no se instala de forma predeterminada, es una característica para instalar.

Ejecutamos powershell con permisos de administrador

snmp_windows10_1.png


snmp_windows10_2.png

Una vez en la ventana de powershell ejecutamos 

get-windowscapability -Online -Name "SNMP*"

snmp_windows10_3.png

Esto nos dará la información sobre si está instalado el SNMP

snmp_windows10_4.png

Procedemos a instalarlo mediante el comando:

Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"

Ponemos SNMP.Client~~~~0.0.1.0, porque es la versión que nos ha dado desde el repositorio de Windows para el SNMP

snmp_windows10_5.png

Se procede a la descarga del paquete

snmp_windows10_6.png

Cuando la barra de progreso haya terminado, comprobamos que el paquete está instalado con el primer comando (get-windowscapability -Online -Name "SNMP*")

snmp_windows10_8.png

Vemos que aparece como installed, esto significa que está instalado.

Vamos al administrador de servicios

snmp_windows10_9.png

Buscamos Servicio SNMP y podemos proceder a configurarlo

Configurar la seguridad SNMP para una comunidad

Haga clic en Inicio , elija Panel de control, Herramientas administrativas y, a continuación, haga clic en Administración del equipo.

En el árbol de consola, expanda Servicios y aplicaciones y, a continuación, haga clic en Servicios.

configura_snmp1.png

En el panel derecho, haga doble clic en Servicio SNMP.

configura_snmp2.png

Haga clic en la pestaña Seguridad.


Haga clic para activar la casilla Enviar captura de autenticación (si aún no está seleccionada) si desea que se envíe un mensaje de captura cuando se produce un error en la autenticación.

En Nombres de comunidad aceptados, haga clic en Agregar. Debe de agregar el nombre de la comunidad (por defecto suele ser public), recomendamos usar una comunidad personalizada.

Para especificar cómo procesa el host las solicitudes SNMP de la comunidad seleccionada, haga clic en el nivel de permisos que desee en el cuadro Derechos de la Comunidad.

configurar_snmp7.png

En el nombre de la comunidad, escriba el nombre de la comunidad que distingue mayúsculas de minúsculas que desee y, a continuación, haga clic en Agregar. Como hemos comentado antes, los sistemas suelen usar public

Especifique si se aceptan o no paquetes SNMP de un host. Para ello, realice una de las siguientes acciones:

Haga clic en Agregar.

Haga clic en Aceptar.

configurar_snmp5.png

En los elementos a monitorizar con SNMP, debemos en la pestaña Agente

Aquí configuraremos el contacto a modo informativo, la dirección de la ubicación del equipo, así como los servicios a monitorizar, en este caso 

Físico

Aplicaciones

Vínculo de datos y subred

Internet

De un extremo a otro

configurar_snmp4.png

Pulsamos en Aplicar y Aceptar