LinuxParty
snmpget
La órden snmpget se puede utilizar para obtener datos de un host remoto dado su nombre de host, la unformación y un OID. Como ejemplo veamos la siguiente órden:
# snmpget -c public -v 2c localhost system.sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (326510) 0:54:25.10
En la órden anterior, localhost es el nombre del equipo con el que queremos hablar, utilizando la comunidad SNMP public y solicitamos el valor del OID system.sysUpTime.0. Todas las utilidades que vamos a ver permiten utilizar abreviaturas de OID y real- izan búsquedas de la porción pasada como argumento en todo el arbol por defecto para facilitar la tarea al usuario. De este modo podemos utilizar simplemente una porción del OID si así lo deseáramos:
# snmpget -c public -v 2c localhost sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (326510) 0:54:25.10
Un error habitual cuando utilizamos esta órden es olvidar poner el índice en los datos que estamos buscando. En las órdenes anteriores, la variable solicitada es un escalar y el índice de los datos escalares es siempre un simple 0, de ahí el ’.0’ en todos los OIDs anteriores. Si lo hubiéramos olvidado hubiéramos obtenido un error que es diferente en función de si estamos utilizando una versión u otra de SNMP:
# snmpget -c public -v 1 localhost system.sysUpTime Error in packet
Reason: (noSuchName) There is no such variable name in this MIB. Failed object: SNMPv2-MIB::sysUpTime
# snmpget -c public -v 2c localhost system.sysUpTime SNMPv2-MIB::sysUpTime = No Such Instance currently exists at this OID Se pueden realizar múltiples consultas en una única órden: snmpget -c public -v 2c localhost system.sysUpTime.0 system.sysName.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (390447) 1:05:04.47 SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es
snmptranslate
Esta órden es una herramiente muy poderosa que permite explorar el árbol MIB de diversas formas desde la línea de órdenes. Su forma más básica permite pasar de un OID a la variable que representa (representación textual):
#snmptranslate .1.3.6.1.2.1.1.3.0 SNMPv2-MIB::sysUpTime.0 También permite pasar del nombre de la variable al OID que representa: #snmptranslate -On SNMPv2-MIB::system.sysUpTime.0 .1.3.6.1.2.1.1.3.0
La variable que pasamos como argumento a snmptranslate se puede expresar en cualquier formato numérico, texto o una mezcla de ambos. El flag -On simplemente sirve para indicar que queremos la salida en formato de OID:
#snmptranslate .iso.3.6.1.private.enterprises.2021.2.1.prNames.0 UCD-SNMP-MIB::prNames.0 #snmptranslate -On .iso.3.6.1.private.enterprises.2021.2.1.prNames.0 .1.3.6.1.4.1.2021.2.1.2.0
Hay ocasiones en que no recordamos el OID completo que estamos buscando. En esos casos es útil la opción -IR permite realizar búsquedas del OID completo si cono- cemos parte del mismo:
# snmptranslate sysUpTime.0 sysUpTime.0: Unknown Object Identifier (Sub-id not found: (top) ->sysUpTime) # snmptranslate -IR sysUpTime.0 SNMPv2-MIB::sysUpTime.0
Puede que, incluso, ni siquiera conozcamos el nombre completo del OID sino sólo una parte del mismo. En ese caso puede ser útil la opción -Ib (b del inglés ’best match’) que nos da el OID que se concuerde con el patrón que le indicamos. Los patrones son similares a los que vimos en la introducción a Linux:
# snmptranslate -Ib ’sys.*ime’ SNMPv2-MIB::sysORUpTime
Para obtener una lista de todos los nodos que se ajustan a un patrón determinado utilizamos el flag -TB:
#snmptranslate -TB ’vacm.*table’ SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyTable SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable SNMP-VIEW-BASED-ACM-MIB::vacmSecurityToGroupTable SNMP-VIEW-BASED-ACM-MIB::vacmContextTable
Para obtener información sobre un determinado nodo del mib podemos utilizar el flag -Td:
# snmptranslate -On -Td -Ib ’sys.*ime’ .1.3.6.1.2.1.1.9.1.4 sysORUpTime OBJECT-TYPE -- FROM SNMPv2-MIB -- TEXTUAL CONVENTION TimeStamp SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time this conceptual row was last instantiated." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysORTable(9) sysOREntry(1) 4 }
Para finalizar son esta órden, podemos obtener una representación del árbol, o de una porción del mismo utilizando el flag -Tp:
# snmptranslate -Tp -IR system +--system(1) | +-- -R-- String sysDescr(1) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- ObjID sysObjectID(2) +-- -R-- TimeTicks sysUpTime(3) +-- -RW- String sysContact(4) | Textual Convention: DisplayString | Size: 0..255 +-- -RW- String sysName(5) | Textual Convention: DisplayString | Size: 0..255 +-- -RW- String sysLocation(6) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- INTEGER sysServices(7) | Range: 0..127 +-- -R-- TimeTicks sysORLastChange(8) | Textual Convention: TimeStamp | +--sysORTable(9) | +--sysOREntry(1) | Index: sysORIndex | +-- ---- INTEGER sysORIndex(1) | Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp
snmgetnext
Esta órden es similar al comando snmpget se utiliza para obtenet el siguiente oid en el árbol de datos del mib. En lugar de obtener los datos que se solicitan directamente, devuelve el siguiente OID en el árbol y su valor:
SNMPv2-MIB::sysContact.0=STRING:Root(configure /etc/snmp/snmp.local.conf)
Esta órden también se puede utilizar para recorrer de forma manual el árbol de las mib en un host remoto, especificando siempre el último OID aparecido en la línea de órdenes para la siguiente órden:
snmpgetnext -v 2c -c public localhost system.sysUpTime.0 SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf) [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysContact.0 SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysName.0 SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
La órden snmpwalk que veremos a continuación hace exactamente esto pero de una sola vez. La órden snmgetnext devuelve el valor de un OID del que hayamos olvidado el índice frente a snmpget que devolvía un error:
snmpget -v 2c -c public localhost system.sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (95862) 0:15:58.62 [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysUpTime SNMPv2-MIB::sysUpTime.0 = Timeticks: (96847) 0:16:08.47
snmpwalk
Esta órden realiza una serie completa de getnexts automáticamente y se detiene cuando devuelve resultados que no están en el rango del OID especificado original- mente. Por ejemplo, si quisiéramos obtener toda la información almacenada en el grupo system del MIB de una máquina podríamos hacerlo utilizando esta órden:
# snmpwalk -v 2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux mago.aut.uah.es 2.6.0-test11 #27 Tue Dec 16 11:39:03 CET 2003 i686 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 SNMPv2-MIB::sysUpTime.0 = Timeticks: (120246) 0:20:02.46 SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.9 = Timeticks: (4) 0:00:00.04
snmptable
Esta órden muestra una tabla SNMP en un formato de filas y columnas de manera que su visionado y comprensión es más sencillo que si utilizamos la órden snmpwalk:
# snmptranslate -Tp -IR sysORTable +--sysORTable(9) | +--sysOREntry(1) | Index: sysORIndex | +-- ---- INTEGER sysORIndex(1) | Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp # snmptable -v 2c -Cw 80 -c public localhost sysORTable SNMP table: SNMPv2-MIB::sysORTable sysORID IF-MIB::ifMIB SNMPv2-MIB::snmpMIB TCP-MIB::tcpMIB IP-MIB::ip UDP-MIB::udpMIB SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMP-MPD-MIB::snmpMPDCompliance SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMP table SNMPv2-MIB::sysORTable, part 2 sysORDescr The MIB module to describe generic objects for network interface sub-layers The MIB module for SNMPv2 entities The MIB module for managing TCP implementations The MIB module for managing IP and ICMP implementations The MIB module for managing UDP implementations View-based Access Control Model for SNMP. The SNMP Management Architecture MIB. The MIB for Message Processing and Dispatching. The management information definitions for the SNMP User-based Security Model. SNMP table SNMPv2-MIB::sysORTable, part 3 sysORUpTime 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.04 0:0:00:00.04 0:0:00:00.04
snmpset
Esta órden se utiliza para modificar información en un host. Por cada una de las variables que se quiere establecer, es necesario el OID a actualizar, el tipo de datos de la variable y el valor al que queramos poner la variable. Podemos obtener los tipos de datos válidos del siguiente modo:
#snmpset -h | tail -4 TYPE: one of i, u, t, a, o, s, x, d, b, n i: INTEGER, u: unsigned INTEGER, t: TIMETICKS, a: IPADDRESS o: OBJID, s: STRING, x: HEX STRING, d: DECIMAL STRING, b: BITS U: unsigned int64, I: signed int64, F: float, D: double
Veamos como consultar, establecer y consultar el nuevo valor de una variable uti- lizando snmpget y snmpset:
#snmpget -v 2c -c public localhost sysContact.0 SNMPv2-MIB::sysContact.0 = STRING: Root #snmpset -v 2c -c public localhost sysContact.0 s “Admin” SNMPv2-MIB::sysContact.0 = STRING: Admin #snmpget -v 2c -c public localhost sysContact.0 SNMPv2-MIB::sysContact.0 = STRING: Admin
Si no se tiene drecehos de escritura sobre un objeto obtendremos un error que diferirá en función de si estamos utilizando la versión 1 o la versión 2 de SNMP:
# snmpset -v 1 -c public localhost sysName.0 s "alguien" Error in packet. Reason: (noSuchName) There is no such variable name in this MIB. # snmpset -v 2c -c public localhost sysName.0 s "alguien" Error in packet. Reason: notWritable (that object does not support modification)
El Autor de este documento es:
Enrique de la Hoz
Un artículo interesante que te puede interesar para hacer pruebas es:
Cómo clonar y simular un dispositivo de Red en Linux
-
Internet
- Cómo usar una VPN en Linux y por qué deberías hacerlo
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge
- La propuesta de la ICANN / Verisign permitiría a cualquier gobierno confiscar nombres de dominio
Comentarios
Una pregunta, que es el SysObjID???
No se mucho de UNIX, solo que tengo que sacar informacion de un equipo que me asignaron y me dieron estos comandos.
Snmpwalk –v [snmp version] –c [read community string] [device ip address][sysObjectID]
snmpwalk -v 1 -c {community string} {ip address} sysObjectID
me los puedes explicar por favor.
Saludos
Bueno, si te instalas snmp-utils
SNMPWALK(1) Net-SNMP & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; &nbs p; & nbsp; SNMPWALK(1)
NAME
snmpwalk - retrieve a subtree of management values using SNMP GETNEXT requests
SYNOPSIS
snmpwalk [APPLICATION OPTIONS] [COMMON OPTIONS] [OID]
DESCRIPTION
snmpwalk is an SNMP application that uses SNMP GETNEXT requests to query a network entity for a tree
of information.
An object identifier (OID) may be given on the command line. This OID specifies which portion of
the object identifier space will be searched using GETNEXT requests. All variables in the subtree
below the given OID are queried and their values presented to the user. Each variable name is given
in the format specified in variables(5).
If no OID argument is present, snmpwalk will search the subtree rooted at SNMPv2-SMI::mib -2 (includ‐
ing any MIB object values from other MIB modules, that are defined as lying within this subtree).
If the network entity has an error processing the request packet, an error packet will be returned
and a message will be shown, helping to pinpoint why the request was malformed.
If the tree search causes attempts to search beyond the end of the MIB, the message "End of MIB"
will be displayed.
No Such Object available on this agent at this OID,
c on snmptranslate obtengo los OID correctos, la memoría ram si funciona pero el problema son los OID de disco,¿a lguna idea de que falta o este mal?.
Mira a ver si tienes la mib correcta...
$snmpwalk -On -v 1 192.168.10.1 -c p14180893 .
y veréis que hay de todo. Bueno, ya que estamos con la ocupación del disco, vamos a buscar algo por la mib: $snmpwalk -v 1 192.168.10.1 -c p14180893 disk
$snmpwalk localhost miclave dsk
enterprises.ucdavis.dskTable.dskEntry.dskIndex.1 = 1
enterprises.ucdavis.dskTable.dskEntry.dskPath.1 = /
enterprises.ucdavis.dskTable.dskEntry.dskDevice.1 = /dev/hda1
enterprises.ucdavis.dskTable.dskEntry.dskMinimum.1 = 10000
enterprises.ucdavis.dskTable.dskEntry.dskMinPercent.1 = -1
enterprises.ucdavis.dskTable.dskEntry.dskTotal.1 = 1152828
enterprises.ucdavis.dskTable.dskEntry.dskAvail.1 = 674296
enterprises.ucdavis.dskTable.dskEntry.dskUsed.1 = 419972
enterprises.ucdavis.dskTable.dskEntry.dskPercent.1 = 38
enterprises.ucdavis.dskTable.dskEntry.dskPercentNode.1 = 19
enterprises.ucdavis.dskTable.dskEntry.dskErrorFlag.1 = 0
enterprises.ucdavis.dskTable.dskEntry.dskErrorMsg.1 =
Comprobaciones.
Considerando, como ejemplo, que sea signó como
clave de acceso Cl4v3-d3-Acc3s0 en un sistema cuya dirección IP es
192.168.1.254 , para probar si la configuración funciona, solo hay que
ejecutar los dos siguiente mandatos a fin verificar que devuelvan
información acerca del sistema consultado.snmp walk -v 1 192.168.1.254
-c Cl4v3-d3-Acc3s0 system
snmpwalk -v 1 192.168.1.254
-c Cl4v3-d3-Acc3s0 interfaces
Modificaciones necesarias en el muro cortafuegos.
Si
se utiliza un cortafuegos con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir los puerto 161 y 162 por UDP (SNMP y
SNMPTRAP, respectivamente).
Las reglas para el fichero
/etc/shorewal l/rules de Shorewall en un sistema con una zona (net),
corresponderí a a lo siguiente:#ACTI ON SOURCE DEST PROTO
DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw udp 161,162
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Las
reglas para el fichero /etc/shorewall/ rules de Shorewall en un sistema
con dos zonas (net y loc), donde solo se va a permitir el acceso al
servicio snmpd desde la red local, correspondería a lo siguiente:#ACTI ON
SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT loc fw udp 161,162
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Nunca he montado este servicio y Hoy me lo estan pidiendo en la compañia - He buscado mucho pero no se en realidad si lo estoy haciendo bien.
Acá tenemos unos servidores de AVAYA. Lamentablemente no se como iniciar. Ejecuto comandos pero no me trae algo concreto por que .... "no se como continuar"
Me gustaria que alguien que por lo menos le esté funcionando me contacte por correo y me de algunos pasos - Le quedaria muy agradecido.
Muchas Gracias.
snmpwalk -c public -v 1 192.168.0.27