SIMPLE NETWORK MANAGEMENT PROTOCOL

HomeSNMPMIBsASN.1ComponentesVersõesAplicaçõesSegurançaContato

 

SNMPv1, SNMPv2 e SNMPv3

 

SNMPv1:

            O SNMPv1 SMI especifica o uso de uma série de tipos de dados do SMI-specific, que são divididos em duas categorias:

1 – Tipos de dados simples

  • Três tipos de dados simples são definidos na SMI SNMPv1, os quais são valores únicos:

1.       O tipo de dado inteiro(integer) é um inteiro no intervalo de -231 a 231-1

2.       Octer stringssão sequências ordenadas de 0 a 65.535 octetos.

3.       Object IDs provenientes do conjunto de todos os identificadores de objeto atribuídos de acordo com as regras especificadas no ASN.1.

2 – Tipos de dados de Aplicação vasta

  • Sete tipos de dados de aplicação vasta existem no SNMPv1 SMI: endereços de rede, contadores, medidores, time ticks, opcacos, inteiros(integer) e inteiros sem sinal.

1.       Endereços de rede representam um endereço de uma família particular de protocolos. O SNMPv1 suporta apenas os endereços IP de 32 bits.

2.       Contadores são inteiros não-negativos que aumentam até atingir um valor máximo e depois retornam a zero. Em SNMPv1, um tamanho de 32 bits do contador é especificado.

3.       Medidores são inteiros não-negativos que podem aumentar ou diminuir entre valores mínimos e máximos. Sempre que a propriedade do sistema representada pelo indicador está fora dessa faixa, o valor do indicador não varia mais que seu máximo nem menos que seu mínimo, conforme especificado no RFC 2578.

4.       Um time tick um centésimo de segundo desde algum evento.

5.       Opacos representam uma codificação arbitrária que é usada para passar strings de informações arbitrárias que não estejam estritamente em conformidade com a linguagem usada pelo SMI.

6.       Um integer representa um inteiro assinado com valor de informação. Esse tipo de dados redefine o tipo de dados integer, que tem a precisão arbitrária no ASN.1, porém tem precisão limitada no SMI.

7.       Um integer unsigned representa valores de inteiros de informação em módulo e é útil quando os valores são sempre não-negativos. Esse tipo de dados redefine o tipo de dados integer, que tem sua precisão limitada no SMI, porém arbitrária no ASN.1.

Tabelas MIB no SNMPv1:

            O SNMPv1 SMI define quadros altamente estruturados que são usados para agrupar as instâncias de um objeto tabelado(ou seja, um objeto que contém múltiplas variáveis). As tabelas são compostas de zeros ou mais linhas, que são indexadas numa maneira que permite ao SNMP a recuperação ou alteração de uma linha inteira por meio de um único comando, podendo esse ser: Get, GetNext ou Set.

SNMPv2:

            O SMI SNMPv2 está descrito na RFC 2578. Esse realiza algumas adições e melhorias em relação à versão anterior(SNMPv1 SMI-especific), tais como: inclusão de bit strings, endereços de rede e contadores, as bit strings são definidas apenas em SNMPv2 e engloba zeros ou mais bits nomeados que especificam um valor. No SNMPv1 os contadores tem um tamanho fixo de 32 bits, já no SNMPv2 os contadores podem ser definidos também com 64 bits.

            O protocolo SNMP opera na camada de aplicação(camada 7) do modelo OSI. O protocolo SNMP especifica(na sua primeira versão) cinco unidades básicas de dados do protocolo(PDUs):

  1. GET REQUEST – usado para recuperar um pedaço de informação de gestão
  2. GETNEXT REQUEST – usado iterativamente para recuperar sequências de gestão da informação
  3. GET RESPONSE – usado pelo agente para responder que dados deve obter e definir os pedidos do gestor
  4. SET RESPONSE – usado para iniciar e fazer uma mudança para um valor do elemento de rede
  5. TRAP – utilizado para relatar um caso de alerta ou outros eventos assíncronos sobre um subsistema. No SNMPv1, relatórios de eventos assíncronos são chamados de traps, ao passo que são denominados notificações nas versões posteriores do SNMP. Os módulos MIB do SNMPv1, as traps são definidas usando a macro TRAP-TYPE; em módulos MIB do SNMPv2, essas são definidas usando a macro NOTIFICATION-TYPE.

            Outras PDUs foram adicionadas na segunda versão do protocolo SNMP, incluindo:

  1. GETBULK REQUEST – um rápido iterador usado para recuperar sequências de informação da gestão
  2. INFORM – reconhecimento de uma trap

            Normalmente, o SNMP utiliza as portas UDP 161 para agente e 162 para o gerente. O gestor pode enviar solicitações de qualquer porta disponível(porta de origem) até a porta 161 no agente(porta de destino). A resposta do agente será reportada de volta a porta de origem. O Gestor receberá traps na porta 162. O agente pode gerar as traps de qualquer porta disponível. Muitas distribuições podem mudar isso,porém essa alteração não é sempre necessariamente verdade.

SMI no SNMPv2 (módulos de informação):

            O SMI no SNMPv2 especifica também módulos de informação, os quais organizam um conjunto de definições relacionadas. Existem 3 tipos de módulos de informação no SMI: módulos MIB, declarações de conformidade e as declarações de capacidade.

  • Os módulos MIB contêm definições de objetos gerenciados relacionados.
  • Declarações de conformidade fornecem uma maneira sistemática de descrever um grupo de objetos gerenciados que devem ser implementados a fim de garantir um padrão de conformidade.
  • Declarações de capacidade são usadas para indicar o nível preciso de apoio que um agente reivindica no que diz respeito a um grupo de MIB. A NMS pode ajustar seu comportamento em relação aos agentes de acordo com as declarações de capacidade associada a cada agente.

                SNMPv1 e SNMPv2 usam a noção de comunidades para estabelecer um grau de confiança entre os agentes e os gerentes.

            Um agente é configurado com três nomes na comunidade: somente leitura, leitura e escrita, e trap. Os nomes de comunidade são essencialmente senhas; não há diferença real entre um caractere da comunidade e a senha que você usa para acessar sua conta no computador. Os três nomes de comunidade controlam diferentes tipos de atividades. Como o próprio nome indica, a sequência de comunidade read-only permite ler valores de dados, mas não permite que você modifique-os. Por exemplo, ele permite que você leia o número de pacotes que tenham sido transferidos através das portas em seu roteador, mas não deixa alterar os valores dos contadores. O nome read-write da comunidade tem permissão para ler e modificar valores de dados. Por meio desse, você pode ler os contadores, redefinir os seus valores, e até redefinir as interfaces ou fazer outras coisas que mudam a configuração do roteador. Finalmente, o trap permite que você receba armadilhas (notificações assíncronas) do agente.

SNMPv3:

            A segurança tem sido a maior fraqueza do SNMP, desde o início. A autenticação SNMP nas versões 1 e 2 equivale a nada mais do que uma senha (string de comunidade), enviada em texto não criptografado entre o gerente e o agente. Qualquer rede de segurança consciente ou o administrador do sistema sabe que senhas de texto simples não oferecem segurança real. É trivial para alguém interceptar a string de comunidade e, uma vez que ele a tem, ele pode usá-la para obter informações de dispositivos na rede, modificar suas configurações, e até mesmo fechá-los.

            O Simple Network Management Protocol Version 3 (SNMPv3) aborda os problemas de segurança que têm atormentado tanto o SNMPv1 quanto o SNMPv2. Para todos os efeitos práticos, os endereços do SNMPv3 são as únicas mudanças orientadas à segurança, não há outras alterações no protocolo. Não há novas operações; o SNMPv3 suporta todas as operações definidas pelas versões 1 e 2. Há várias novas convenções textuais, mas estas são realmente apenas formas mais precisas de interpretar os tipos de dados que foram definidos em versões anteriores.

            A engine é composta de quatro partes: o expedidor, o subsistema de processamento de mensagem, o subsistema de segurança, e o subsistema de controle de acesso. O trabalho do distribuidor é enviar e receber mensagens. Ele tenta determinar a versão de cada mensagem recebida (isto é, v1, v2 ou v3) e, se a versão é suportada, envia a mensagem de fora para o subsistema de processamento de mensagens. O expedidor também envia mensagens SNMP a outras entidades.

            O subsistema de processamento de mensagem prepara as mensagens para que sejam enviadas e extrai dados de mensagens recebidas. Esse subsistema pode conter vários módulos de processamento de mensagens. Por exemplo, um subsistema pode ter os módulos de processamento SNMPv1, SNMPv2 e SNMPv3 pedidos. Ele também pode conter um módulo de processamento de outros modelos que ainda não foram definidos.

            O subsistema de segurança fornece serviços de autenticação e privacidade. A autenticação usa strings ou comunidade SNMP (v1 e v2) ou autenticação baseada no usuário SNMPv3.A autenticação baseada em usuários utiliza o MD5 ou o SHA, algoritmos para autenticar os usuários sem enviar uma senha em claro. O serviço de privacidade usa o algoritmo DES para criptografar e descriptografar as mensagens SNMP. Atualmente, o DES é o algoritmo utilizado, mas outros podem ser adicionados no futuro.

            O subsistema de controle de acesso é responsável por controlar o acesso a objetos MIB. Você pode controlar quais objetos um usuário pode acessar e as operações que ele está autorizado a realizar sobre os objetos. Por exemplo, você pode querer limitar um usuário de read-write o acesso a certas partes da árvore MIB-2, permitindo o acesso somente leitura para toda a árvore.

            O SNMPv3 é definido pelo RFC 3411, RFC 3418(também conhecida como STD0062). O SNMPv3 adicionou principalmente mais segurança e melhorias para a configuração remota em relação à versão anterior desse protocolo. O SNMPv3 é a versão atual e padrão de SNMP a partir de 2004. O IETF tem designado para o SNMPv2 um completo Internet Standard(IS), o maior nível de maturidade de uma RFC. O IS considera as versões anteriores obsoletas. Em dezembro de 1997, o “Simple Times” publicou uma série de artigos escritos pelos editores RFC do SNMPv3, explicando algumas idéias subjacentes às especificações da versão 3 do protocolo.

            O SNMPv3 fornece funcionalidades de segurança importantes:

  • A integridade da mensagem para garantir que um pacote não foi alterado em trânsito.
  • Autenticação para verificar se a mensagem é de uma fonte válida.
  • Criptografia de pacotes para evitar espionagem por uma fonte não autorizada.

 

Próximo

AnteriorTopo