SNMP

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 20 de mayo de 2020; las comprobaciones requieren 4 ediciones .
SNMP
Nombre Protocolo Simple de Manejo de Red
Nivel (según el modelo OSI ) Aplicado
Familia UDP
Puerto/ID 161/ UDP ,162/ UDP
Propósito del protocolo Gestión de dispositivos de red
Especificación RFC 1155 , RFC 1212 , RFC 1213 , RFC 1157 , RFC 3411
Implementaciones principales (clientes) Integrado en todos los sistemas operativos de red
 Archivos multimedia en Wikimedia Commons

SNMP ( Protocolo simple de administración de red en inglés   - a simple network management protocol) es un protocolo de Internet estándar para administrar dispositivos en redes IP basadas en arquitecturas TCP / UDP . Los dispositivos habilitados para SNMP incluyen enrutadores, conmutadores, servidores, estaciones de trabajo, impresoras, bastidores de módem y otros. El protocolo se usa comúnmente en los sistemas de administración de redes para monitorear los dispositivos conectados a la red en busca de condiciones que requieran la atención del administrador. SNMP está definido por el Grupo de Trabajo de Ingeniería de Internet (IETF) como un componente de TCP/IP . Consiste en un conjunto de estándares para la gestión de redes, incluido un protocolo de capa de aplicación, un esquema de base de datos y un conjunto de objetos de datos.

Visión general y conceptos básicos

Cuando se usa SNMP, una o más computadoras administrativas (llamadas administradores ) monitorean o administran un grupo de hosts o dispositivos en una red de computadoras. Cada sistema administrado tiene un programa en ejecución permanente llamado agente que comunica información al administrador a través de SNMP .

Las redes administradas por SNMP constan de tres componentes clave:

Un dispositivo administrado  es un elemento de red (hardware o software) que implementa una interfaz de administración (no necesariamente SNMP) que permite el acceso unidireccional (solo lectura) o bidireccional a información específica sobre el elemento. Los dispositivos administrados comparten esta información con el administrador. Los dispositivos administrados pueden referirse a cualquier tipo de dispositivo: enrutadores, servidores de acceso, conmutadores, puentes, concentradores, teléfonos IP, cámaras IP, computadoras host, impresoras, etc.

Un agente es un módulo de software de administración de red ubicado en un dispositivo administrado o en un dispositivo conectado a la interfaz de administración de un dispositivo administrado. El agente tiene conocimiento local de la información de gestión y traduce esta información hacia o desde un formulario específico de SNMP (mediación de datos).

El Sistema de administración de red ( NMS ) es una aplicación que monitorea y controla los dispositivos administrados. NMS proporciona la mayor parte del procesamiento de datos necesario para la gestión de la red. Cualquier red administrada puede tener uno o más NMS.

Bases de información de gestión (MIB)

Dado que las direcciones de los objetos del dispositivo se definen en formato digital, son difíciles de recordar. Para simplificar, se utilizan bases de información de gestión (MIB). Los MIB describen la estructura de los datos administrados en un subsistema de dispositivo; utilizan un espacio de nombres jerárquico que contiene identificadores de objetos (OID). Cada OID consta de dos partes: un nombre de texto y una dirección SNMP numérica. Los MIB son opcionales y desempeñan una función de apoyo en la traducción del nombre del objeto del formato humano (palabra) al formato SNMP (numérico). Muy similar a los servidores DNS . Dado que la estructura de los objetos en dispositivos de diferentes fabricantes no coincide, es casi imposible determinar las direcciones SNMP digitales de los objetos requeridos sin la base MIB. Las MIB utilizan la notación especificada en ASN.1 .

Detalles del protocolo

SNMP opera en la capa de aplicación TCP/IP (capa 7 del modelo OSI). El agente SNMP recibe solicitudes en el puerto UDP 161. El administrador puede enviar solicitudes desde cualquier puerto de origen disponible al puerto del agente. La respuesta del agente se enviará de vuelta al puerto de origen en el administrador. El administrador recibe notificaciones (Traps e InformRequests) en el puerto 162. El agente puede generar notificaciones desde cualquier puerto disponible. Cuando se usa TLS o DTLS , las solicitudes se reciben en el puerto 10161 y las trampas se envían en el puerto 10162.

SNMPv1 especifica cinco unidades de datos de protocolo básico (PDU). Dos PDU más, GetBulkRequest e InformRequest, se introdujeron en SNMPv2 y se trasladaron a SNMPv3.

Todas las PDU SNMP se construyen de la siguiente manera:

Encabezado IP (encabezado IP) Encabezado UDP (encabezado UDP) versión (versión) comunidad (contraseña) Tipo PDU (tipo PDU) ID de solicitud (ID de solicitud) estado de error (estado de error) índice de error (índice de error) enlaces de variables (variables enlazadas)

Las siete unidades de intercambio de protocolo SNMP se enumeran a continuación:

Obtener solicitud

Una solicitud de un administrador a un objeto para obtener el valor de una variable o una lista de variables. Las variables requeridas se especifican en el campo de enlaces de variables (la sección del campo de valores no se utiliza). La recuperación de los valores de la variable especificada debe ser realizada por el agente como una operación atómica . Al administrador se le devolverá una Respuesta con los valores actuales.

setrequest

Una solicitud de un administrador a un objeto para cambiar una variable o lista de variables. Las variables vinculadas se especifican en el cuerpo de la solicitud. El agente debe realizar los cambios en todas las variables especificadas como una operación atómica. Se devolverá una Respuesta al administrador con los nuevos valores (actuales) de las variables.

GetNextRequest

Una solicitud de un administrador a un objeto para descubrir las variables disponibles y sus valores. Se devolverá al administrador una Respuesta con variables asociadas para la siguiente variable en el MIB en orden lexicográfico . Se puede omitir todo el MIB del agente mediante el uso iterativo de GetNextRequest a partir del OID 0. Las filas de la tabla se pueden leer especificando los OID de las columnas en las variables asociadas en la solicitud.

GetBulkRequest

Una versión mejorada de GetNextRequest. Solicitud del administrador al objeto para múltiples iteraciones de GetNextRequest. Se devolverá una Respuesta al administrador con varias variables asociadas atravesadas, comenzando con la(s) variable(s) asociada(s) en la solicitud. Los campos no repetidores y repeticiones máximas específicos de PDU se utilizan para controlar el comportamiento de la respuesta. GetBulkRequest se introdujo en SNMPv2.

Respuesta

Devuelve variables y valores asociados del agente al administrador para GetRequest, SetRequest, GetNextRequest, GetBulkRequest e InformRequest. Las notificaciones de error se proporcionan mediante campos de estado de error e índice de error.

Esta unidad se utiliza como respuesta a las solicitudes Get y Set y se denomina GetResponse en SNMPv1.

Trampa

Notificación asíncrona del agente al gestor. Incluye el valor actual de sysUpTime, un OID que identifica el tipo de trampa y variables asociadas opcionales. El direccionamiento de destino para las trampas se determina utilizando variables de configuración de trampas en la MIB. El formato del mensaje de captura se cambió a SNMPv2 y la PDU se renombró a SNMPv2-Trap.

Solicitar Informe

Notificación asíncrona de gerente a gerente o de agente a gerente. Las notificaciones de administrador a administrador ya eran posibles en SNMPv1 (usando Trap), pero SNMP generalmente se ejecuta en UDP, donde la entrega de mensajes no está garantizada y no se informan paquetes perdidos. InformRequest soluciona esto devolviendo un acuse de recibo. El receptor responde con una Respuesta que repite toda la información de la InformRequest. Esta PDU se introdujo en SNMPv2.

Desarrollo y uso

Versión 1

SNMP versión 1 (SNMPv1) es la implementación original del protocolo SNMP. SNMPv1 funciona con protocolos como UDP, IP, CLNS, DDP e IPX. SNMPv1 se usa ampliamente y es el protocolo de administración de red de facto en la comunidad de Internet.

Los primeros RFC para SNMP, ahora conocidos como SNMPv1, aparecieron en 1988:

Estos protocolos se han revisado en los siguientes RFC:

Después de un tiempo, el RFC 1156 (MIB-1) fue reemplazado por el más utilizado:

La versión 1 ha sido criticada por su falta de seguridad. La autenticación de los clientes se llevó a cabo solo con la ayuda de los llamados. "cadena común" (cadena comunitaria), de hecho, la contraseña, que se transmitió en claro. El desarrollo de SNMPv1 en la década de 1980 fue llevado a cabo por un grupo de personas que consideraban que el trabajo HEMS/CMIS/CMIP financiado oficialmente por las organizaciones OSI/IETF/NSF era irrealizable en las plataformas informáticas de la época y potencialmente inviable. SNMP fue aprobado por la creencia de que era un protocolo intermedio necesario para dar pasos hacia el despliegue a gran escala de Internet y su comercialización. En ese momento, un estándar de seguridad/autenticación era un sueño y fue frustrado por los grupos de desarrollo de protocolos.

Versión 2

SNMPv2 ( RFC 1441 - RFC 1452 ) revisa la Versión 1 e incluye mejoras en el rendimiento, la seguridad, la privacidad y la comunicación entre administradores. El protocolo introdujo GetBulkRequest, una alternativa al uso iterativo de GetNextRequest para obtener una gran cantidad de datos de control en una sola solicitud. Al mismo tiempo, la nueva seguridad basada en el lado SNMPv2 nunca obtuvo una adopción generalizada, ya que muchos la consideraban demasiado compleja.

SNMPv2 basado en la comunidad (SNMPv2c) se define en RFC 1901 - RFC 1908 . En sus inicios, esta versión se conocía informalmente como SNMPv1.5. SNMPv2c incluye SNMPv2 sin su controvertido modelo de seguridad; en su lugar, se utiliza un esquema de seguridad simple basado en la comunidad de SNMPv1. SNMPv2c a menudo se ha visto como el estándar SNMPv2 de facto, a pesar de que oficialmente era solo un "borrador de estándar".

SNMPv2 basado en el usuario (SNMPv2u) se define en RFC 1909 - RFC 1910 . Esencialmente, este es un compromiso que intenta ofrecer mayor seguridad que SNMPv1, pero sin la complejidad adicional de SNMPv2. Se comercializó una variante de esta versión, SNMP v2*, y el propio mecanismo finalmente se adoptó como uno de los dos marcos de seguridad en SNMP v3.

Interacción entre SNMPv1 y SNMPv2c

Ahora se ha determinado que SNMPv2c es incompatible con SNMPv1 en dos áreas clave: formatos de mensajes y operaciones de protocolo. Los mensajes SNMPv2c utilizan formatos de unidad de datos de protocolo (PDU) y encabezado diferentes a los de SNMPv1. Además, SNMPv2c utiliza dos operaciones de protocolo que no están definidas en SNMPv1. Además, RFC 2576 define dos posibles estrategias de coexistencia SNMPv1/v2c: agentes proxy y sistemas de gestión de red bilingües.

Agentes proxy

Un agente SNMPv2 puede actuar como agente proxy en nombre de los dispositivos administrados SNMPv1, de la siguiente manera:

  • El sistema de administración de red (NMS) SNMPv2 emite comandos destinados al agente SNMPv1.
  • El NMS envía un mensaje SNMP al agente proxy SNMPv2.
  • El agente proxy reenvía los mensajes Get, GetNext y Set al agente SNMPv1 sin modificaciones.
  • El agente proxy convierte los mensajes GetBulk en mensajes GetNext y luego los reenvía al agente SNMPv1.

El agente proxy asigna trampas SNMPv1 a trampas SNMPv2 y luego las reenvía al NMS.

Sistemas de gestión de redes bilingües

Los sistemas de administración de red SNMPv2 bilingües admiten SNMPv1 y SNMPv2. Para admitir dicho entorno, la aplicación de control en el NMS bilingüe debe comunicarse con el agente. Luego, el NMS analiza la información almacenada en la base de datos local para determinar si el agente es compatible con SNMPv1 o SNMPv2. Según esta información, el NMS se comunica con el agente mediante la versión adecuada de SNMP.

Versión 3

Si bien SNMPv3 no trae ningún cambio al protocolo además de agregar seguridad criptográfica, es una mejora a través de nuevas convenciones textuales, conceptos y terminología.

La seguridad ha sido un gran problema con SNMP desde sus inicios. La autenticación en las versiones 1 y 2 de SNMP no era más que una contraseña (cadena comunitaria) que se enviaba en texto claro entre el administrador y el agente.

A diferencia de SNMPv1 y v2, en SNMPv3 cada mensaje contiene parámetros de seguridad que se codifican como una cadena de octetos. El significado de estos parámetros depende del modelo de seguridad que esté utilizando.

SNMPv3 proporciona funciones de seguridad importantes:

  • Autenticación: determinar el origen del mensaje.
  • Confidencialidad - Cifrado de paquetes para proteger contra la interceptación.
  • Integridad: prevención de cambios en los mensajes en tránsito, incluido un mecanismo adicional para proteger contra la retransmisión de un paquete capturado.

Desde 2004, el IETF ha reconocido SNMPv3 como se define en RFC 3411 , RFC 3418 (también conocido como STD0062) como la versión estándar actual de SNMP. El IETF ha marcado SNMPv3 como un estándar de Internet completo, que es el nivel más alto de preparación para RFC. Al mismo tiempo, las versiones anteriores se consideran obsoletas (indicadas como "históricas" - Históricas).

En la práctica, las implementaciones de SNMP suelen admitir varias versiones: v1, v2c y v3.

Cuestiones de implementación

Las implementaciones de SNMP varían entre los proveedores de plataformas. En algunos casos, SNMP no se considera lo suficientemente serio para un elemento de desarrollo central y, por lo tanto, es solo una característica opcional. Algunos proveedores de hardware importantes tienden a extender demasiado sus propias interfaces de línea de comandos (CLI) y sistemas de control.

La estructura de árbol aparentemente simple y la indexación lineal en SNMP no siempre se comprenden bien dentro de las estructuras de datos internas que son elementos del diseño de la plataforma subyacente. Por lo tanto, el procesamiento de solicitudes SNMP en ciertos conjuntos de datos puede generar más sobrecarga de CPU de lo necesario. Un ejemplo de este problema son las grandes tablas de enrutamiento como BGP e IGP.

Indexación de recursos

Los dispositivos modulares pueden aumentar o disminuir dinámicamente sus índices SNMP (también llamados casos) a medida que se agrega o elimina hardware. Esto se usa más comúnmente con hardware, aunque las interfaces virtuales tienen el mismo efecto. Los valores de índice generalmente se asignan en el momento del arranque y permanecen sin cambios hasta el próximo reinicio. Los índices de hardware o las entidades virtuales agregadas durante un dispositivo en vivo pueden asignarse al final del rango existente y posiblemente reasignarse en el próximo reinicio.

Seguridad

  • Las versiones 1 y 2c de SNMP son susceptibles a la detección de paquetes con cadenas de mensajes porque no utilizan cifrado.
  • Todas las versiones de SNMP son susceptibles a ataques de fuerza bruta y de diccionario para adivinar cadenas comunitarias, cadenas de autenticación, claves de autenticación, cadenas de cifrado o claves de cifrado porque no utilizan el protocolo de enlace de desafío-respuesta.
  • Si bien SNMP funciona con TCP y otros protocolos, generalmente se usa con UDP, que no tiene conexión y es vulnerable a los ataques de suplantación de IP. Las listas de acceso de dispositivos se pueden usar para restringir el acceso a SNMP, pero los mecanismos de seguridad de SNMPv3 también pueden frustrar ataques con éxito.
  • Muchos proveedores no aprovechan al máximo las amplias opciones de configuración de SNMP, en parte debido a la falta de seguridad en las versiones de SNMP anteriores a SNMPv3, y también porque muchos dispositivos simplemente no se pueden configurar con cambios en un único objeto MIB.
  • SNMP encabezó la lista del Instituto SANS de "Problemas comunes de configuración predeterminada" con el problema de establecer inicialmente cadenas de comunidad en "público" y "privado" y ocupó el décimo lugar en las 10 amenazas de seguridad de Internet más críticas de SANS de 2000.

Sintonización automática

SNMP en sí mismo es solo un protocolo para recopilar y organizar información. La mayoría de los kits de herramientas de implementación de SNMP ofrecen algún tipo de mecanismo de descubrimiento (una recopilación estandarizada de datos comunes a la mayoría de las plataformas y dispositivos) para obtener un nuevo usuario o artista al inicio. Una de estas funciones suele ser una forma de configuración automática, en la que los nuevos dispositivos descubiertos en la red se sondean automáticamente. En el caso de SNMPv1 y SNMPv2c, esto es un riesgo de seguridad porque las comunidades de lectura de SNMP se transmitirán en texto no cifrado en el dispositivo de destino. Si bien los requisitos de seguridad varían de una organización a otra, se debe tener cuidado al usar esta función, especialmente en entornos como centros de datos de inquilinos mixtos, instalaciones de alojamiento de servidores y entornos similares.

Ejemplos de uso de utilidades SNMP

snmpset y reinicie Cisco as53xx

  • Configuración de SNMP en Cisco as53xx
as5350>es Clave: as5350#conf t Introduzca los comandos de configuración, uno por línea. Termine con CNTL/Z. Lista #1: Permitir el acceso desde la red 10.26.95.224/27 o 255.255.255.224
  • Lista #1: Permitir el acceso desde la red 10.26.95.224/27 o 255.255.255.224
as5350(config)#access-list 1 permiso 10.26.95.224 0.0.0.31
  • Lista #2: Permitir acceso desde IP 10.26.95.254 y 10.26.95.251
as5350(config)#access-list 2 host de permisos 10.26.95.254 as5350(config)#access-list 2 host de permisos 10.26.95.251
  • Configuración del servidor snmp para leer y escribir con la cadena comunitaria xxas5300xx. El acceso SNMP está permitido solo para la lista de acceso 2 (para 2 IP, denegado implícitamente para otras IP)
as5350(config)#snmp-servidor comunidad xxas5300xx rw 2
  • Habilite el reinicio de Cisco a través de SNMP.
as5350(config)#snmp-server system-shutdown as5350(config)#salir
  • Ejecutemos el comando para reiniciar Cisco (los parámetros **.1.3.6.1.4.1.9.2.9.9.0 i 2** se toman de MIB ):
snmpset -v 2c -c xxas5300xx 10.26.95.231 ".1.3.6.1.4.1.9.2.9.9.0" i 2

Enlaces RFC

  • RFC 1155 (STD 16) - Estructura e identificación de información de control en redes basadas en la pila de protocolos TCP/IP
  • RFC 1156 (Histórico) - Base de información de gestión para la gestión de redes en redes basadas en la pila de protocolos TCP/IP
  • RFC 1157 (Histórico) - Protocolo simple de administración de redes (SNMP)
  • RFC 1213 (STD 17) - Base de información de gestión para la gestión de redes en redes basadas en la pila de protocolos TCP/IP: MIB-II
  • RFC 1452 (Informativo) - 'Coexistencia de las Versiones 1 y 2 del Marco de Gestión de Red Estándar de Internet (revisado en RFC 1908 )
  • RFC 1901 (Experimental) - Introducción a SNMPv2 basado en la comunidad
  • RFC 1902 (borrador de norma) - Marco de información de control para SNMPv2 (revisado en RFC 2578 )
  • RFC 1908 (Standards Track) - Coexistencia de las versiones 1 y 2 del Marco de gestión de red estándar de Internet
  • RFC 2570 (informativo) - Introducción a la versión 3 del Marco de gestión de red estándar de Internet (revisado en RFC 3410 )
  • RFC 2578 (STD 58) - Marco de Información de Control Versión 2 (SMIv2)
  • RFC 3410 (Informativo) - Consideraciones para la introducción y aplicación del estándar de Internet del marco de gestión de red
  • STD62
    • RFC 3411  - Arquitectura para describir el marco de gestión de SNMP
    • RFC 3412  - Manejo y envío de mensajes para SNMP
    • RFC 3413  - Aplicaciones SNMP
    • RFC 3414  : modelo de seguridad basado en el usuario (USM) para SNMPv3
    • RFC 3415  : modelo de control de acceso basado en vistas (VACM) para SNMP
    • RFC 3416  - Operaciones de protocolo versión 2 para SNMP
    • RFC 3417  : enlaces de transporte para SNMP
    • RFC 3418  - Base de información de administración (MIB) para SNMP
  • RFC 3430 (Experimental): SNMP sobre enlaces de transporte en TCP
  • RFC 3584 (BCP 74): coexistencia de las versiones 1, 2 y 3 del Marco de gestión de red estándar de Internet
  • RFC 3826 (propuesto): algoritmo de cifrado del estándar de cifrado avanzado (AES) en el modelo de seguridad basado en el usuario en SNMP
  • RFC 5343 (propuesto): detección de ID de motor de contexto en SNMP
  • RFC 5590 (borrador): subsistema de transporte para SNMP
  • RFC 5591 (borrador): modelo de seguridad de transporte para SNMP
  • RFC 5592 (propuesto): modelo de transporte de shell seguro para SNMP
  • RFC 5608 (propuesto): uso del servicio de acceso telefónico de autenticación remota (RADIUS) en modelos de transporte en SNMP
  • RFC 6353 (borrador): modelo de transporte TLS para SNMP

Enlaces

Notas

  1. Sistema de gestión de red