LINUX

¿Qué es SNMP? Instalar y configurar SNMP en Linux

snmp linux

SNMP (Simple Network Management Protocol) es un protocolo estándar de Internet que se utiliza para recuperar de forma remota las estadísticas operativas (estado actual) de los servidores y los componentes de la infraestructura. Los dispositivos que suelen admitir SNMP incluyen enrutadores, conmutadores, estaciones de trabajo, firewalls y más.

En este tutorial, veremos la instalación y configuración simple de SNMP en Linux (CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04).

Conceptos básicos de SNMP

El protocolo SNMP se implementa en la capa de aplicación de la pila de redes. Es uno de los protocolos ampliamente aceptados para administrar y monitorear elementos de red. El protocolo se creó como una forma de recopilar información de sistemas muy diferentes de manera coherente.

En general, una red perfilada por SNMP consistirá principalmente en dispositivos que contienen agentes SNMP. Un agente es un programa que puede recopilar información sobre una pieza de hardware, organizarla en entradas predefinidas y responder a consultas utilizando el protocolo SNMP.

En el núcleo, el sistema de gestión SNMP lee y escribe parámetros operativos en dispositivos remotos. Estos parámetros se conocen como OID (identificadores de objeto).

SNMP requiere solo un par de componentes básicos para funcionar:

  • SNMP Manager: es una aplicación que administra agentes SNMP en la red. Puede ser cualquier máquina que pueda enviar solicitudes de consulta a agentes con las credenciales correctas. Las funciones clave del administrador son consultar a los agentes, obtener respuestas de los agentes, establecer variables en los agentes y reconocer eventos asincrónicos de los agentes. Puede ser parte de la estación de administración de red (NMS). Cacti, MRTG, Zabbix, Icinga, PRTG son algunas de las herramientas de monitoreo de código abierto gratuitas que actúan como un administrador SNMP.
  • Agente: cuando la aplicación del administrador envía consultas SNMP, el agente responde con el estado actual y las estadísticas. Los agentes son responsables de recopilar información sobre el sistema local y almacenarla en un formato que se pueda consultar y actualizar una base de datos denominada base de información de gestión (MIB).

MIB es una base de datos que sigue un estándar al que se adhieren el administrador y los agentes. Cada agente mantiene una base de datos de información que describe los parámetros del dispositivo administrado. La aplicación de administrador utiliza esta base de datos para solicitar al agente información específica y traduce la información según sea necesario para el Sistema de administración de red (NMS). Esta base de datos comúnmente compartida entre el Agente y el Gerente se llama MIB.

Versiones SNMP

Actualmente, hay 3 versiones disponibles.

SNMP versión 1: esta es la primera versión de SNMP. Solo admite contadores de 32 bits. Esto proporciona estadísticas del dispositivo e informes de errores sin consumir muchos recursos del sistema. La seguridad está limitada a las cadenas de la comunidad, si la cadena coincide con la configurada en el equipo, se realizará la solicitud.

Controles de acceso basados ​​en la dirección IP del servidor de consulta. Tiene comunicación de datos sin cifrar.

SNMP versión 2: esto se conoce como v2c, que agrega soporte para contadores de 64 bits. Tiene la capacidad de realizar consultas masivas que cargan paquetes de respuesta con datos de manera más eficiente.

SNMP Versión 3: esta versión proporciona mayor seguridad y capacidades de configuración remota. El acceso no se limita a una única cadena de comunidad para acceso de solo lectura y lectura / escritura, ya que se han introducido nombres de usuario y contraseñas. Admite el uso de algoritmos de cifrado y mecanismos de autenticación.

Opciones SNMPv3,

3 opciones de seguridad y privacidad:

noAuthNoPriv (sin autenticación, sin privacidad)
authNoPriv (autenticación pero sin privacidad)
authPriv (autenticación y privacidad)

Dos mecanismos de autenticación:

md5
sha1

Dos algoritmos de cifrado:

DES
AES

1) Instalación de snmp en Linux

En la máquina del agente SNMP, solo necesitaba el demonio SNMP (snmpd) y para los componentes del administrador, puede instalar snmp paquete en Ubuntu.

El siguiente comando instala el servicio snmp en los sistemas derivados de Ubuntu y Debian:

$ sudo apt-get install -y snmpd snmp

En centos

$sudo yum install -y net-snmp net-snmp-utils

2) Configuración de SNMP

El archivo de configuración del servicio snmpd se puede encontrar en /etc/snmp/snmpd.conf. Antes de modificar el archivo, haga una copia del archivo con el siguiente comando:

$ sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

Recuerde agregar un nuevo usuario SNMP que use el archivo ‘/var/lib/net-snmp/snmpd.conf’.

Los siguientes son los parámetros de configuración básicos para configurar SNMP.

  • Establecer cadena de comunidad: es como una identificación de usuario o contraseña que permite acceder a las estadísticas de un dispositivo. La máquina cliente usa esta cadena para recuperar datos (para generar gráficos de monitoreo). Se puede identificar donde verá rocommunity o rwcommunity. El valor por defecto el valor es ‘público’ que no está protegido, debe desactivarse.
  • Dirección de escucha: podemos configurar el agente para que escuche solo una dirección IP en particular de la siguiente manera agentAddress udp:ip_address:161. El puerto predeterminado en el que escucha SNMP es 161. El comportamiento predeterminado del agente es escuchar en el puerto UDP estándar en todas las interfaces.
  • Información del sistema: se refiere a información personal, supervisión de proceso / disco,
    • syslocation: esta es la [typically physical] ubicación del sistema.
    • syscontact: esta es la información de contacto del administrador.
  • Trampas SNMP: ayuda a enviar trampas (dispositivo inactivo, interfaz inactiva, etc.) a las herramientas de monitoreo.

Nuestra información modificada debería ser como la siguiente, tenga en cuenta que hay otros valores predeterminados en el archivo que no aparecen aquí

Un archivo de configuración de agente de muestra en Ubuntu:

#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

#  ACCESS CONTROL
#
view   all  included   .1.3.6.1.2.1.1
view   all  included   .1.3.6.1.2.1.25.1

#rocommunity public  localhost
                                  #  Default access to basic system info
 rocommunity my_password  default    -V all
                                  #  rocommunity6 is for IPv6
 rocommunity6 my_password  default   -V all

sysLocation    linoxide
sysContact     Me <me@linoxide.com>

#  ACTIVE MONITORING
#
                                  #   send SNMPv1  traps
 trapsink     localhost public
                                  #   send SNMPv2c traps
 trap2sink    localhost public

Un archivo de configuración de agente de muestra en CentOS:

#       sec.name  source          community
com2sec notConfigUser  default       my_comm

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1
view    systemview    included   .1.3.6.1.2.1.25.1

##        incl/excl subtree mask
view all    included   .1    80

# variables through the snmpd.conf file:
syslocation centos linoxide
syscontact admin <admin@linoxide>

El servicio SNMP debe reiniciarse para cualquier cambio de configuración (/etc/snmp/snmpd.conf) tomar lugar.

Lo siguiente reiniciará el servicio en Linux, asegúrese de ejecutarlo con acceso sudo.

$ sudo service snmpd restart

En sistemas systemd, ejecute el siguiente comando

$ sudo systemctl restart snmpd.service

3) Prueba del servicio SNMP

Puede probar si SNMP puede leer el sistema y la interfaz MIB mediante el comando snmpwalk.

En Ubuntu

$ sudo snmpwalk -c my_password -v2c -O e 127.0.0.1
iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu-01 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (1544) 0:00:15.44
iso.3.6.1.2.1.1.4.0 = STRING: "me <me@linoxide>"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu-01"
iso.3.6.1.2.1.1.6.0 = STRING: "linoxide"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = 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 for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The Management Architecture MIB."
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (9971483) 1 day, 3:41:54.83
iso.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E1 04 08 01 30 16 00 2B 00 00 
iso.3.6.1.2.1.25.1.3.0 = INTEGER: 393216
iso.3.6.1.2.1.25.1.4.0 = STRING: "BOOT_IMAGE=/boot/vmlinuz-4.4.0-66-generic root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
"
iso.3.6.1.2.1.25.1.5.0 = Gauge32: 1
iso.3.6.1.2.1.25.1.6.0 = Gauge32: 121
iso.3.6.1.2.1.25.1.7.0 = INTEGER: 0

En Centos

$sudo snmpwalk -c my_comm -v1 -O e 127.0.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux centos-01 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (304) 0:00:03.04
SNMPv2-MIB::sysContact.0 = STRING: admin <admin@linoxide> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: centos-01
SNMPv2-MIB::sysLocation.0 = STRING: centos linoxide
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (8) 0:00:00.08
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance

Una vez que haya verificado que SNMP funciona correctamente, puede configurar el software de recopilación de estadísticas SNMP, como MRTG, para crear gráficos en línea de sus flujos de tráfico.

Este ejemplo muestra cómo usar snmpwalk comando para verificar la autenticación del usuario.

$ sudo snmpwalk -v 3 -l authPriv -u user01 -a MD5 -A password -x DES -X password localhost .1

Similar a snmpwalk, snmpget es una herramienta de línea de comandos para obtener información de dispositivos habilitados para snmp.

El siguiente comando snmpget, verifica la autenticación del usuario en el servidor snmp.

$ sudo snmpget -u user01 -l authPriv -a MD5 -x DES -A password -X password remote_host 1.3.6.1.2.1.1.1.0

dónde,

-u: especifique el nombre de usuario de snmp

-l: Tipo de método de seguridad y privacidad

-a: Qué mecanismos de autenticación

-x: Tipo de algoritmos de cifrado utilizados

-A: Contraseña de autenticación

-X: Contraseña de cifrado

Conclusiones

Si está configurando utilizando SNMPv3, debe conocer snmpusm comando y se utiliza para crear y mantener el usuario SNMPv3 en una entidad de red.

En este tutorial aprendemos cómo instalar y configurar SNMP en Linux para monitorear dispositivos de red. Espero que haya disfrutado de la lectura y deje sus sugerencias en la sección de comentarios a continuación.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar