Monitorización y SNMP
- ¿Que es SNMP?
- Cómo instalar y usar snmpwalk
- Fundamentos del protocolo SNMP
- Configurar snmpd en Debian
- Cómo activar SNMP en VCenter
- Configurar SNMP en VMWare ESXI
- Configurar SNMP en equipos Cisco
- Windows Server: Servicio SNMP – Instalación y configuración
- SNMP, MIBS y OID
- Windows 10/11: Servicio SNMP – Instalación y configuración
¿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.
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.
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.
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)
Si SSH está deshabilitado, haz clic en Habilitar para habilitarlo.
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)
Buscamos en UserVars (casi al final)
hay una opción que se llama UserVars.SuppressShellWarning. Cambiamos el valor de 0 a 1, pulsamos Ok y ya lo tenemos
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
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.
Cuando se abra el asistente, haga clic en Siguiente>
Seleccione Instalación basada en características o roles y haga clic en Siguiente>
Seleccione el servidor y haga clic en Siguiente>
En la selección de roles, haga clic en el botón Siguiente
En la lista de funciones, busque Servicio SNMP (1) y marque la casilla.
Confirme la instalación presionando el botón Instalar
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.
En el panel derecho, haga doble clic en Servicio SNMP.
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.
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:
-
- Para aceptar solicitudes SNMP de cualquier host de la red, independientemente de la identidad, haga clic en Aceptar paquetes SNMP de cualquier host.
- Para limitar la aceptación de paquetes SNMP, haga clic en Aceptar paquetes SNMP de estos hosts, haga clic en Agregar y, a continuación, escriba el nombre de host, ip o dirección IPX adecuados en el cuadro Nombre de host, dirección IP o IPX.
Haga clic en Agregar.
Haga clic en Aceptar.
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
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
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
Una vez en la ventana de powershell ejecutamos
get-windowscapability -Online -Name "SNMP*"
Esto nos dará la información sobre si está instalado el SNMP
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
Se procede a la descarga del paquete
Cuando la barra de progreso haya terminado, comprobamos que el paquete está instalado con el primer comando (get-windowscapability -Online -Name "SNMP*")
Vemos que aparece como installed, esto significa que está instalado.
Vamos al administrador de servicios
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.
En el panel derecho, haga doble clic en Servicio SNMP.
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.
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:
-
- Para aceptar solicitudes SNMP de cualquier host de la red, independientemente de la identidad, haga clic en Aceptar paquetes SNMP de cualquier host.
- Para limitar la aceptación de paquetes SNMP, haga clic en Aceptar paquetes SNMP de estos hosts, haga clic en Agregar y, a continuación, escriba el nombre de host, ip o dirección IPX adecuados en el cuadro Nombre de host, dirección IP o IPX.
Haga clic en Agregar.
Haga clic en Aceptar.
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
Pulsamos en Aplicar y Aceptar