Suas interações são sem conexão, trabalha com Mensagens no protocolo UDP/IP, utiliza as portas 161 e 162 e seus pacotes tem tamanho variável.
Este protocolo se tornou padrão para gerência na Internet, por ser simples de implementar e amplamente difundido.
É composto de um Protocolo para troca de mensagens e padrões para estruturar a informação.
As Informações de Gerenciamento são armazenadas em MIBs que são definidas através da SMI (Structure of Management Information) e transportadas através do protocolo SNMP.
SMI
Podemos entender a SMI como uma descrição lógica das informações. É composta dos seguintes elementos:
Nomes dos objetos gerenciados, referenciados através dos OIDs (Object IDentifiers);
Sintaxe dos dados, seguindo os padrões da ASN.1 (Abstract Syntax Notation 1);
Sintaxe de transferência, seguindo as regras da BER (Basic Encoding Rules).
ASN.1
É uma linguagem de descrição de dados da ISO, definida em formato texto não ambíguo, que permite definir modelo de dados com formato independente de máquina. A implementação de dados não é considerada.
Sintaxe básica em ANS.1
Tipos de dados:
Primitivos: INTEGER, OCTET STRING, OBJECT IDENTIFIER, NULL, Subtipos;
Construtores: Lista e Tabelas;
Definidos: Nomes alternativos para tipos ASN.1.
Notações em ASN.1, seguem algumas convenções:
sysContact OBJECT-TYPE
SYNTAX DisplayString (SIZE (0...255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
“Texto xxxxxxxxxxxxxxxxxxxxxxxx”
parDhcpStartTime OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..30))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“Dhcp Server start time”
Campo SYNTAX:
Define o conteúdo do objeto.
INTEGER: Inteiros de 32 bits.
INTEGER (1...100) Sub-tipo inteiro).
OCTET STRING: String de bytes.
OBJECT IDENTIFIER: Localização de outro objeto na MIB.
Aceita alguns tipos específicos de aplicação:
IpAddress: OCTET STRING com 4 bytes.
Counter: Inteiro 32 bits.
Gauge: Inteiro 32 bits.
TimeTicks: Inteiro 32 bits (1/100 de segundo).
Campo ACCESS:
Define a acessibilidade do objeto.
read only: Somente leitura.
read-write: Leitura e escrita.
write-only: Somente escrita, senha do equipamento, por exemplo.
not-accessible: Não acessível, campo para operações internas, por exemplo.
Campo STATUS
Situação do objeto na MIB.
Mandatory: Devem ser implementados por todos os agentes, os valores contidos devem ser válidos.
Optional: Pode ou não ser implementado.
Deprecated: Foi substituido por novo objeto, mas ainda é válido, se tornará obsoleto mais tarde.
Obsolete: Não deve ser considerado.
Mensagem SNMP
Limitada a 484 bytes
As PDUs SNMP
Protocol Data Unit – Unidade de Dados de Protocolo
Toda operação gera uma resposta, com excessão do Trap. Os dados das operações são transportados na porta 161 UDP/IP, enquanto os traps são transportados na porta 162 UDP/IP.
Estrutura das PDUs SNMP
Versão:
0: SNMPv1
1: SNMPv2c
2: SNMPv2u/SNMPv2p
3: SNMPv3
Tipo de PDU:
0: getRequest
1: getNextRequest
2: getResponse
3: setRequest
4: trap
Request ID:
Valor númerico usado para fazer referência a pedidos e respostas.
Códigos de erro (Error Status):
0: noError: Sucesso na operação.
1: tooBig: Resposta muito grande.
2: noSuchName: OID não suportado pelo agente.
3: badvalue: Valor incorreto para operação set.
4: readOnly: Tentativa de escrita inválida.
5: genErr: Erro não relacionado ao protocolo.
Error index:
Indica qual variável listada na PDU causou o erro.
A Arquitetura SNMP
Operações/Mensagens SNMP
Get-Request: Recupera o valor de informações de gerenciamento.
Get-Next-Request: Recupera o valor de informações de gerenciamento existentes após um determinado identificador; pega o valor da próxima variável.
Get-Bulk-Request: Estende a funcionalidade da função Get-Next. Traz um bloco de informações (Tabela) de cada vez.
Set-Request: Modifica o valor de informações de gerenciamento.
TRAP: Informa um evento ocorrido no sistema gerenciado.
Inform-Request: Fornece uma informação de gerenciamento não solicitada, usado entre gerentes, porém diferentemente do Trap no caso do Inform-Request existe a confirmação do recebimento da mensagem.
Exemplo de Operação:
Falta de segurança:
Esquema de autenticação trivial.
Limitações no uso do método SET.
Ineficiência:
Esquema de eventos limitado e fixo.
Operação baseada em pooling.
Comandos transportam poucos dados.
Falta de funções específicas:
MIB com estrutura fixa.
Falta de comandos de controle.
Falta de comunicação entre gerenciadores.
Não confiável:
Baseado em UDP/IP.
Traps sem reconhecimento.
Vulnerabilidade SNMP - Proteção:
Aplicar patchs fornecidos pelo fabricante;
Utilizar aplicações SNMP somente onde seja necessário;
Filtrar o acesso aos dispositivos gerenciados, permitindo somente o tráfego a partir de seus próprios servidores de gerenciamento;
Alterar o nome padrão das comunidades;
Isolar o tráfrego de gerência em uma rede específica, uma VLAN por exemplo, etc...
Versões SNMP:
- SNMP v1
- SNMP v2
- SNMP v3
SNMP V1
Características e Operações Básicas:
Get: Usado pelo NMS (Network Management System – Sistema de Gerenciamento de Redes) para adquirir o valor de uma ou mais instâncias de um objeto de um agente;
GetNext: Usado pelo NMS para adquirir o valor do próximo objeto em uma tabela ou lista;
Set: Usado pelo NMS para atribuir um valor a um objeto no agente.
SNMP V2
Durante a “divergência” SNMPv2, foram definidos quatro variações:
O SNMPv2 original: SNMPv2p; Com o "p" referindo-se a "party-based“ security;
SNMPv2 baseado na comunidade: SNMPv2c;
SNMPv2 baseada no usuário: SNMPv2u;
“SNMPv2 Estrela”: SNMPv2*; Combina elementos de SNMPv2p e SNMPv2u. Isso nunca foi formalmente padronizado. Sim, isso é um asterisco no nome.
Destes, os três primeiros foram documentados em conjuntos de padrões SNMP RFC Standard, o quarto não foi.
A estrutura do formato de mensagem global para cada variante é discutido em um padrão administrativo ou de segurança para a variação em questão, que faz referência à norma SNMPv2 compartilhada para o formato de PDU (RFC 1905).
SNMP V2 (v2c)
Características e Operações adicionais:
Trap: Mensagem não solicitada, enviada por um agente para informar ao NMS sobre um evento significante;
GetBulk: Usado pelo NMS para adquirir eficientemente grandes blocos de dados;
Inform: Permite que um NMS envie traps para outro NMS e receba respostas desses traps.
SNMP V3
Melhorias de Segurança:
USM: User-based Security Model (Modelo de Segurança Baseada em Usuários);
VACM: View-based Access Control Model (Modelo de controle de acesso baseado em visões);
Configuração dinâmica de agentes SNMP utilizando comandos SNMP.
Modelo de Segurança SNMP
Modelo mais comum: SNMP V2c.
Baseado no conceito de “comunidade”.
Cada dispositivo implementa uma ou mais comunidades.
Comunidade default: “public” para leitura e “private” para gravação.
Uma comunidade define:
Método para autenticar o acesso (senha), a visibilidade da MIB e o privilégios de acesso à MIB.
Serviço de autenticação:
Todas as mensagens SNMP são autenticadas, o nome da comunidade serve como senha, porém esse é um sistema de segurança frágil e limitado; Não permite a operação SET em alguns casos.
Alguns dispositivos controlam o acesso usando o nome da comunidade e o número IP do(s) gerente(s) o que eleva um pouco a segurança, mas não resolve o problema.
Traps em SNMP
São mensagens enviadas pelo agente ao gerente, não são respostas a pedidos, ou seja são mensagens não solicitadas, representam eventos anormais.
Classificam-se em:
Genéricos: presentes na MIB padrão.
Específicos: definidos na MIB “enterprises”.
Traps genéricos
ColdStart:
Dispositivo foi ligado;
Configuração local pode ter sido alterada;
Informa ao gerente sobre sua existência.
WarmStart:
Dispositivo foi reinicializado;
Configuração local não foi alterada.
LinkDown:
Link ou porta de comunicação ligado ao nó falhou.
LinkUp:
Link ou porta local foi (re)ativada.
AuthenticationFailure:
O dispositivo recebeu mensagem SNMP não autorizada;
Comunidade não reconhecida;
Número IP de gerente inválido.
EgpNeighborLoss:
Exterior Gateway Protocol falhou no nó;
Normalmente usado em roteadores.
Referências:
Pessoal o material usado como base para a criação destes textos, veio de amigos, listas de distribuição e pesquisas na internet, portanto não possuo referências sobre os mesmos, mas se você identificar algum material de sua autoria, por favor entre em contato que os devidos créditos serão atribuídos.