Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - SNMP (161, 162 - v1, v2c, v3)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

SNMP (Simple Network Management Protocol)

1. Definição e Arquitetura

O SNMP (Simple Network Management Protocol) é o protocolo padrão para gerenciamento de redes IP. Especificado originalmente na RFC 1157 (1990, SNMPv1), evoluiu para v2c (RFC 3416) e v3 (RFC 3414). Opera sobre UDP nas portas:

  • 161 — agente (equipamento gerenciado) recebe consultas do manager.
  • 162 — manager recebe traps (notificações assíncronas) do agente.

A arquitetura SNMP tem três componentes:

  1. Manager (NMS - Network Management Station): servidor que coleta dados, gera gráficos e dispara alertas. Exemplos: Zabbix, PRTG, Nagios, LibreNMS, Observium, SolarWinds.
  2. Agente: software embutido em roteadores, switches, servidores, que responde a consultas SNMP e envia traps.
  3. MIB (Management Information Base): hierarquia de variáveis que descreve o que pode ser consultado. Cada variável é identificada por um OID (Object Identifier).

2. Versões e Segurança

Versão RFC Segurança Status
SNMPv1 1157 (1990) Community strings em texto puro (inseguro) Obsoleto
SNMPv2c 3416 (2002) Community strings em texto puro (inseguro) Ainda usado
SNMPv3 3414 (2002) USM com auth + priv (HMAC + criptografia) Recomendado

Community Strings

Em v1/v2c, a "autenticação" é uma string (community) enviada em texto puro dentro do pacote SNMP:

  • read-only: community usada para consultas GET/GETNEXT (ex: public).
  • read-write: community usada para SET (ex: private).

Usar community defaults (public, private) é uma vulnerabilidade grave. Em 2017, milhares de dispositivos ficaram expostos por community public.

SNMPv3 USM (User Security Model)

O SNMPv3 introduz:

  • Autenticação: HMAC-MD5 (legado), HMAC-SHA1, HMAC-SHA256 (RFC 7860).
  • Privacidade (criptografia): DES (legado), AES-128/192/256.
  • NoAuthNoPriv: sem autenticação nem criptografia (não recomendado).
  • AuthNoPriv: autenticação HMAC sem criptografia.
  • AuthPriv: ambos — recomendado em produção.

Cada usuário v3 é identificado por username + authPassword + privPassword, configurado em ambos os lados (manager e agente).

3. MIB e OID

A MIB é uma árvore hierárquica baseada na estrutura ASN.1. Cada variável é um OID (Object Identifier) — uma sequência de números separados por pontos.

Estrutura da Árvore OID

. iso(1) ─ org(3) ─ dod(6) ─ internet(1)
   ├─ mgmt(2) ─ mib-2(1)
   │  ├─ system(1)
   │  ├─ interfaces(2)
   │  ├─ ip(4), icmp(5), tcp(6), udp(7), snmp(11)
   ├─ experimental(3)
   └─ private(4) ─ enterprises(1)
      ├─ cisco(9), juniper(2636), hp(11), dell(674), mikrotik(8861)

O caminho 1.3.6.1.2.1 corresponde a iso.org.dod.internet.mgmt.mib-2 — a MIB-II padrão (RFC 1213), suportada por praticamente todo equipamento IP.

OIDs Essenciais (MIB-II)

OID Nome Descrição
1.3.6.1.2.1.1.1.0 sysDescr Descrição do sistema (SO, versão)
1.3.6.1.2.1.1.3.0 sysUpTime Tempo desde boot (em centésimos de segundo)
1.3.6.1.2.1.1.5.0 sysName Hostname
1.3.6.1.2.1.2.2.1.10.x ifInOctets.x Bytes recebidos na interface x
1.3.6.1.2.1.2.2.1.16.x ifOutOctets.x Bytes enviados na interface x
1.3.6.1.2.1.2.2.1.14.x ifInErrors.x Erros de entrada na interface x
1.3.6.1.2.1.2.2.1.5.x ifSpeed.x Velocidade nominal da interface (bps)
1.3.6.1.2.1.2.2.1.8.x ifOperStatus.x Status operacional (1=up, 2=down)

4. Operações SNMP

Operação PDU Função
GET 0 Recupera um único OID
GETNEXT 1 Recupera o próximo OID da árvore
GETBULK 5 Recupera múltiplos OIDs de uma vez (v2c+)
SET 3 Modifica valor de um OID
TRAP 4 Agente notifica manager (assíncrono)
INFORM 6 Trap com confirmação (v2c+)
RESPONSE 2 Resposta do agente a um GET/SET

GET vs GETNEXT vs GETBULK

  • GET 1.3.6.1.2.1.1.5.0 retorna apenas o sysName.
  • GETNEXT 1.3.6.1.2.1.1 retorna o primeiro OID depois (sysDescr.0).
  • GETBULK 1.3.6.1.2.1.2.2.1 com max-repetitions=50 retorna 50 interfaces em uma única operação (muito mais eficiente que GETNEXT em loop).

5. TRAPs e INFORMs

Trap é notificação assíncrona do agente para o manager. Exemplos clássicos:

  • Interface subiu/desceu (linkDown/linkUp).
  • Falha de fan ou fonte.
  • Temperatura alta.
  • Autenticação SNMP falhou.

Trap não tem confirmação — se perder na rede, ninguém fica sabendo. INFORM resolve isso exigindo ACK do manager.

Configuração de Trap no Cisco

snmp-server community public RO
snmp-server host 192.168.1.100 version 2c public
snmp-server enable traps snmp authentication linkdown linkup
snmp-server enable traps envmon fan shutdown
snmp-server location "Datacenter SP-01, Rack 12"
snmp-server contact "noc@empresa.com"

6. Configuração SNMPv3

Cisco

! Criar view (opcional, para restringir acesso)
snmp-server view RESTRICTED 1.3.6.1.2.1 included

! Criar grupo com AuthPriv
snmp-server group ADMINS v3 priv read RESTRICTED write RESTRICTED

! Criar usuário
snmp-server user admin ADMINS v3 auth sha SenhaAuth123 priv aes 256 SenhaPriv456

Linux (net-snmp)

# /etc/snmp/snmpd.conf

# Acesso v2c (não recomendado em produção)
rocommunity public 192.168.1.0/24

# Acesso v3 (recomendado)
createUser admin SHA "SenhaAuth123" AES "SenhaPriv456"
rwuser admin authPriv .1.3.6.1

# Configurações do sistema
sysLocation "Datacenter SP-01, Rack 12"
sysContact "noc@empresa.com"

# Onde ouvir
agentAddress udp:161

7. Ferramentas de Linha de Comando

snmpwalk — Percorrer uma sub-árvore

# v2c
snmpwalk -v2c -c public 192.168.1.1

# Específico: pegar todas as interfaces
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2

# v3
snmpwalk -v3 -u admin -a SHA -A "SenhaAuth123" -x AES -X "SenhaPriv456" -l authPriv 192.168.1.1

snmpget — Consultar OID específico

snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.5.0
# Saída: SNMPv2-MIB::sysName.0 = STRING: router-core-01

snmpbulkget — Múltiplos OIDs

snmpbulkget -v2c -c public -Cr50 192.168.1.1 1.3.6.1.2.1.2.2.1.2
# Retorna 50 nomes de interface de uma vez

snmpset — Modificar OID

snmpset -v2c -c private 192.168.1.1 1.3.6.1.2.1.1.6.0 s "Novo Datacenter"
# sysLocation = "Novo Datacenter"

snmptranslate — Traduzir OID <-> nome simbólico

snmptranslate 1.3.6.1.2.1.1.5.0
# Saída: SNMPv2-MIB::sysName.0

snmptranslate -Tp 1.3.6.1.2.1
# Mostra a árvore MIB visualmente

8. MIBs Importantes por Fabricante

Fabricante MIB OID raiz
Cisco (IOS/IOS-XE) CISCO-SMI 1.3.6.1.4.1.9
Juniper JUNIPER-SMI 1.3.6.1.4.1.2636
HP/Aruba ML-SMI 1.3.6.1.4.1.11
Dell MIB-Dell 1.3.6.1.4.1.674
MikroTik MIKROTIK-MIB 1.3.6.1.4.1.8861
Linux UCD-SNMP-MIB 1.3.6.1.4.1.2021
Net-SNMP NET-SNMP-MIB 1.3.6.1.4.1.8072

Carregar MIBs adicionais no manager (Linux: /usr/share/snmp/mibs/) permite referenciar OIDs por nome simbólico em vez de números.

9. Boas Práticas

Segurança

  • Sempre usar SNMPv3 em produção. v1 e v2c só em redes isoladas ou para testes.
  • Nunca usar community public ou private. Gerar community aleatória de pelo menos 20 caracteres.
  • Restringir acesso por ACL: agente só responde a managers autorizados.
  • Firewall: filtrar porta 161 e 162 na borda. SNMP exposto à internet é risco grave.

Performance

  • Usar GETBULK em vez de GETNEXT em loops.
  • Evitar polling de sub-árvores inteiras periodicamente — identificar OIDs específicos.
  • Ajustar intervalos de polling: a cada 1-5 min para status, a cada 1-5 min para tráfego, a cada 1h para inventário.
  • Habilitar traps para eventos críticos (linkDown, fanFailure) ao invés de pollear.

Troubleshooting

# Testar conectividade básica
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0

# Capturar pacotes SNMP
sudo tcpdump -ni eth0 -vvv 'port 161 or port 162'

# Ver logs do snmpd
journalctl -u snmpd -f

10. Tabela Resumo

Conceito Valor
RFC v1 1157 (obsoleto)
RFC v2c 3416
RFC v3 3414 (USM), 7860 (SHA-256)
Porta agente UDP 161
Porta trap UDP 162
MIB-II 1.3.6.1.2.1
Enterprises 1.3.6.1.4.1
Auth v3 MD5, SHA1, SHA256
Priv v3 DES, AES-128/192/256
Trap vs Inform Inform tem ACK

11. Conclusão

O SNMP é o protocolo de gerenciamento de redes mais difundido em ambientes corporativos e datacenters, presente em praticamente todo equipamento gerenciável. Apesar de sua idade (mais de 30 anos), continua relevante por sua simplicidade e suporte universal. A versão 3 traz a segurança criptográfica necessária para uso em produção — v1 e v2c não devem ser usados em redes expostas. Para engenheiros de redes, dominar o SNMP é essencial: configurar agentes em todos os dispositivos, usar MIBs adequadas para cada fabricante, organizar OIDs estratégicos e integrar com plataformas de monitoramento (Zabbix, Grafana, LibreNMS) permite uma visão consolidada da saúde da infraestrutura. A nova geração de protocolos (gNMI, NETCONF) complementa mas não substitui o SNMP — este permanece como o canivete suíço do monitoring de redes IP.