Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Gerência de Redes Com SNMP PDF
Apostila Gerência de Redes Com SNMP PDF
Instrutor:
deo@reitoria.unicamp.br
2012
O trabalho Gerenciamento de Redes com SNMP de André Luis Boni Déo foi licenciado com uma
Licença Creative Commons - Atribuição - NãoComercial - CompartilhaIgual 3.0 Não Adaptada.
Em segundo lugar a minha amada esposa, grande parte do meu tempo é dedicado à
informática, inclusive boa parte das minhas horas vagas, e ela tem sido uma companheira em
todos os momentos me apoiando e incentivando sempre.
Aos meus amigos Bruno Daniel Alves dos Santos e Marcos Antônio de Almeida Corá que
sempre me incentivaram a registrar esse conhecimento. Aos incansáveis: Adriano Rodrigues
Paganotto, Aecio dos Santos Pires e Carlos Eduardo de Oliveira que foram os revisores desse
material, sempre me cobrando o melhor, mais detalhado, mais didático, esse material não seria
metade do que é, sem vocês amigos.
E por último, mas não menos importante ao grande Conrado Pinto Rebessi, reponsável
pela palestra que despertou meu interesse no assunto e por inúmeras horas de consultoria sobre
o assunto, meu amigo esse material não existiria se não fosse por você.
Conrado em 2007 no FLISOL Campinas com sua palestra: Monitoramento de servidores com SNMP
6. A MIB.............................................................................................................................................. 45
9.1. USM.............................................................................................................................................. 79
11.1. VIEWS VACM, OU COMO RESTRINGIR O ACESSO A DETERMINADOS RAMOS DA ÁRVORE ............................... 119
11.1.1. Acessando o Agent SNMP com acesso restrito (sysUpTime.0) ........................................ 119
11.1.2. Acessando o Agent SNMP com acesso restrito (interfaces.ifTable.ifEntry.infIndex.1) ... 119
11.1.3. Acessando o Agent SNMP com acesso restrito (interfaces.ifTable.ifEntry) .................... 120
11.2. MÁSCARAS VACM, OU COMO RESTRINGIR O ACESSO A UM DETERMINADO ÍNDICE (LINHA) EM UMA TABELA.... 121
11.2.1. Acessando o Agent SNMP com acesso restrito – Uso do parâmetro mask ..................... 124
11.2.2. Acessando o Agent SNMP com acesso restrito – Uso do parâmetro mask ..................... 124
1.4.3. Clientes:
Todo recurso utilizado pelo usuário para desempenhar suas atribuições e que
precisa de liberação e controle:
Softwares instalados;
Inventario de Hardware;
Controle de usuários;
Controle de acesso.
1.6.Como Gerenciar?
Não existe uma receita pronta de como gerenciar uma rede, mas se utilizando de
padrões, ferramentas e algumas ações específicas podemos alcançar este objetivo. O
qual consiste em:
Monitorar a operação dos equipamentos e serviços;
Utilizar ferramentas (softwares) para a automatização dos processos;
Utilizar padrões de gerência;
Construir um modelo hierárquico.
1.8.Habilidades
São muitas as habilidades que um profissional responsável pela Gerência de re-
des deve desenvolver, ações que vão desde o suporte técnico a especificação de equi-
pamentos. Para citar alguns itens:
Efetuar o gerenciamento da rede;
Descrever configurações para softwares de rede;
Efetuar configurações nos softwares aplicativos;
Elaborar pesquisas (e não buscas) na Internet;
Fazer levantamento de informações de tráfego;
Instalar e configurar protocolos e software de rede;
Realizar pesquisa de novas tecnologias no mercado;
Redigir relatórios;
2.1.Gerenciamento de Redes
Compreende o Monitoramento e o Controle automatizado dos dispositivos
(hardware e software) e ferramentas, que além de suas funções principais, pode agregar
funcionalidades de gerenciamento desde que o profissional que atua com estas ferra-
mentas e dispositivos esteja capacitado para tal.
Quando falamos de gerenciamento de redes devemos primeiro estabelecer o
que será gerenciado e o que se espera como resultado desse gerenciamento.
Somente assim poderemos selecionar uma ferramenta adequada, seja de detec-
ção de falhas, de estatísticas ou de análise de pacotes, mas que atenda as necessidades.
2.2.Ciclo de Gerenciamento
2.2.1. Coleta de dados:
2.2.2. Diagnóstico:
Tratamento e análise dos dados colhidos na etapa anterior. Dentre toda a infor-
mação coletada separar os dados que serão manipulados posteriormente, daqueles sem
valor para o gerenciamento, essa com certeza é uma etapa que demanda conhecimento
e disponibilidade de tempo.
2.2.3. Ação:
Controle sobre os recursos gerenciados. Ação neste contexto pode em muitos casos
não ser necessariamente a resolução de um problema imediato. Mas uma interversão justamen-
te para evitar o surgimento do mesmo. Desta forma temos uma ação proativa e antecipada,
tendo como base os dados colhidos e analisados nas etapas anteriores. Efetuada as alterações
e configurações necessárias, reinicia-se todo o processo de comparar os dados anterio-
res com os atuais.
2.4.Definição do Ambiente
A delimitação do ambiente a ser gerenciado pode ser definida utilizando-se de
algumas diretivas:
Inventário total dos dispositivos de rede (Hardware e Software);
Mapeamento lógico dos dispositivos de rede (Layout Lógico e Físico da
Topologia).
2.5.Inventário da Rede
Algumas informações são extremamente necessárias para o gerenciamento:
Identificação do fabricante e fornecedor;
Análise dos dispositivos que apresentam o suporte de gerenciamento e
qual a função suportada (Versão do protocolo SNMP, Características do
Protocolo RMON);
Identificação da arquitetura da rede e do modelo de gerenciamento su-
portado;
Documentação das informações apuradas de forma textual-gráfica e em
mídia impressa e digital.
2.6.Mapeamento da Rede
O mapeamento da rede deve ser feito destacando-se os dispositivos que desem-
penham funções de interconexão ou prestam serviços (Servidores), cujo tempo de inati-
vidade, inviabilizará os processos de comunicação, produção e obtenção de informa-
ções via rede, acarretando em prejuízos financeiros ou operacionais para a organização.
2.7.Resultados Esperados
Antes de começar um projeto de gerência de redes, é preciso realizar um levan-
tamento do que se pretende monitorar em cada host, e os objetivos que pretendem ser
alcançados com esse gerenciamento, alguns itens básicos:
Visualização Gráfica da Rede (Topologia);
Emissão de Alarmes (Erros e Falhas);
Dados sobre utilização de Banda, CPU, Memória, Processos;
Envio de alertas (E-mail, SMS, Alertas sonoros) relatando falhas.
2.8.Relatórios
Ao final de um projeto de gerência de redes espera-se ser capaz de gerar dados
sobre a rede, entre estes dados estão os relatórios, alguns exemplos:
Estatísticas de carga da rede;
Inventário;
Gráficos (% de utilização da banda por exemplo);
Consumo de disco e memória;
Uptime e Downtime (SLI).
3.1.Ambiente Gerenciado
São mecanismos com suporte a funcionalidades de gerenciamento, juntamente
com os aspectos de comunicação que permitem suas interconexões.
O ambiente gerenciado pode ser constituído de um ou mais mecanismos como:
Roteador(es), Switch(es);
Conexões TCP de um determinado número de servidores;
Todos os dispositivos gerenciáveis de uma mesma sub-rede;
Todos os dispositivos gerenciáveis de um conjunto de LANs interligadas.
3.2.Mecanismo Gerenciado
Hardware ou Software que apresenta necessidade e condições de serem geren-
ciados, como interfaces de rede, discos, impressoras, aspectos relacionados à imple-
mentação da pilha TCP/IP, estatísticas sobre o processamento de datagramas IP.
3.4.Gerente
Permite a obtenção e o envio de informações de gerenciamento junto aos meca-
nismos gerenciados mediante comunicação com um ou mais agentes.
Informações de gerenciamento podem ser obtidas com o uso de requisições efe-
tuadas pelo gerente ao agente ou mediante envio automático do agente para um de-
terminado gerente.
3.5.Aplicação Gerente
O modelo SNMP apresenta a Aplicação Gerente como uma entidade de rede que
usa determinados protocolos das camadas de transporte, de rede, de acesso à rede e de
aplicação, para a comunicação com a entidade de rede gerenciada.
3.6.Componentes Principais:
Operações de Gerenciamento;
Management Information Base – MIB;
Banco de dados;
Aplicações de Gerenciamento;
Interface do usuário.
São interfaces não especificadas pelo modelo SNMP que permitem a interação
do usuário com o Sistema de Gerenciamento:
Comandos de Gerenciamento (I/O);
Visualização de mensagens (traps).
Interfaces do tipo GUI (Graphic User Interface) permitem ainda:
Apresentação de estatísticas de desempenho;
Resumos de contabilização;
Relatório de falhas;
Inventários de configuração;
Formulários para criação de queries e mapas da topologia de rede.
3.6.6. Agente
O Agente
A MIB do Agente
3.6.7.1.1. O Agente
Todo sistema gerenciado por SNMP deverá conter uma entidade Agente rodando
em background.
Pode suportar mais de um protocolo de transporte. Porém, o UDP foi o protocolo
da Pilha TCP/IP escolhido por possibilitar a interoperação entre qualquer Gerente e
Agente.
4.1.1. Funcionamento
Figura 5 - MIB
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.
Esse 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.
5.2. ASN.1
É uma linguagem de descrição de dados da ISO, definida em formato texto não
ambíguo, que permite definir o modelo de dados com formato independente de máqui-
na. A implementação de dados não é considerada.
Toda operação SNMP gera uma resposta, com exceção da Operação de Trap. Os
dados das operações são transportados na porta 161 UDP/IP, e os traps são transporta-
dos na porta 162 UDP/IP.
A figura 18 mostra a estrutura das PDU’s SNMP. Cada parte da PDU será explica-
da nas seções seguintes.
5.4.1.1.1. Versão:
0: SNMPv1
1: SNMPv2c
2: SNMPv2u/SNMPv2p
3: SNMPv3
5.6.Operações/Mensagens SNMP
5.6.1. Get-Request
Figura 19 - Get-Request
5.6.3. Get-Bulk-Request
5.6.4. Set-Request
Figura 23 - Set-Request
5.6.6. Inform-Request
5.7.Limitações de SNMP
5.7.1. Falta de segurança
5.7.2. Ineficiência
Baseado em UDP/IP;
Traps sem reconhecimento.
5.9.Versões SNMP:
SNMP v1
SNMP v2
SNMP v3
5.9.1. SNMP V1
5.9.1.1. 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.
5.9.1.2. GetNext
Usado pelo NMS para adquirir o valor do próximo objeto em uma tabela ou lista.
5.9.1.3. Set
Usado pelo NMS para atribuir um valor a um objeto no agente.
5.9.2. SNMP V2
5.9.3.1.1. Trap
Mensagem não solicitada, enviada por um agente para informar ao NMS sobre
um evento significante.
5.9.3.1.2. GetBulk
Usado pelo NMS para adquirir eficientemente grandes blocos de dados.
5.9.3.1.3. Inform
Permite que um NMS envie traps para outro NMS e receba respostas desses
traps.
5.9.4. SNMP V3
5.9.4.1. Melhorias de Segurança
5.9.4.1.1. USM
User-based Security Model: Modelo de Segurança Baseada em Usuários.
5.9.4.1.2. VACM
View-based Access Control Model: Modelo de controle de acesso baseado em vi-
sões.
public: Leitura;
private: Gravação.
5.11.1. Classificação
5.11.1.1.1. ColdStart:
Dispositivo foi ligado;
Configuração local pode ter sido alterada;
Informa ao gerente sobre sua existência.
5.11.1.1.2. WarmStart:
Dispositivo foi reinicializado;
Configuração local não foi alterada.
5.11.1.1.3. LinkDown:
Link ou porta de comunicação ligada ao nó falhou.
5.11.1.1.4. LinkUp:
Link ou porta local foi (re)ativada.
5.11.1.1.5. AuthenticationFailure:
O dispositivo recebeu mensagem SNMP não autorizada;
Comunidade não reconhecida;
Número IP de gerente inválido.
5.11.1.1.6. EgpNeighborLoss:
Exterior Gateway Protocol falhou no nó;
Normalmente usado em roteadores.
42 Gerenciamento de Redes - O Protocolo SNMP | Gerenciamento de Redes com SNMP
5.11.1.1.7. EnterpriseSpecific:
Indica que a trap é específica de uma empresa;
Fornencedores definem suas próprias traps na ramificação da empresa
privada na árvore MIB.
6.1.Objetos Gerenciados
São “estruturas de dados” resultantes da modelagem dos recursos da rede a se-
rem gerenciados, podem ter permissões para serem lidos ou alterados sendo que cada
leitura representará o estado real do recurso e cada alteração será refletida no próprio
recurso, isso permite automatização de grande parte das tarefas de gerência.
6.2.Modelos de Gerenciamento
O padrão OSI define três modelos para gerenciamento de redes:
Modelo Organizacional;
Modelo Funcional;
Modelo Informacional.
Descreve a forma pela qual a gerência pode ser distribuída entre domínios e sis-
temas dentro de um domínio.
6.4.MIB da Internet
O RFC (Request for Comments) 1066 apresentou a primeira versão da MIB, a
MIB-1, o IAB (Internet Activities Board) aceita MIB como padrão no RFC 1156.
O RFC 1158 propôs uma segunda MIB, a MIB-II, aceita e formalizada como pa-
drão no RFC 1213.
6.5.2. Nó iso
Figura 29 - Nó internet(1)
6.5.4. Nó mgmt
Figura 30 - Nó mgmt
6.5.7.1.3. Componentes:
sysDesc(1): Descrição do sistema, nome completo e versão do tipo de
hardware, sistema operacional e software de rede;
sysObjectId(2): OID de registro (fabricante do sistema);
sysUpTime(3): Tempo de atividade do sistema (1/100 s);
sysContact (4): Pessoa ou grupo responsável pelo nó;
sysName(5): Nome do nó na rede;
sysLocation(6): Localização física do nó;
sysServices(7): Flags indicando serviços suportados.
6.5.7.2.2. OID
1.3.6.1.2.1.2
6.5.7.2.3. Componentes
ifNumber(1): Número de interfaces de rede (independentemente do seu
estado atual) presentes no sistema;
ifTable(2): A tabela de informações sobre cada interface de rede, o núme-
ro de interfaces é dado pelo valor do ifNumber;
ifEntry(ifTable 1): Entradas de valores sobre cada uma das interfaces;
ifIndex(ifEntry 1): Um valor único para cada interface, permite identificar
a interface;
ifDescr(ifEntry 2): Identificação da interface, deve incluir o nome do fabri-
cante, o nome do produto e a versão da interface;
ifType(ifEntry 3): Tipo de interface;
ifMtu(ifEntry 4): Tamanho máximo do datagrama suportado pela interfa-
ce, especificado em octetos;
ifSpeed(ifEntry 5): Uma estimativa da largura de banda atual da interface
em bits por segundo. Para interfaces que não variam em largura de banda
ou ainda para aquelas onde essa estimativa não é considerada necessária,
esse objeto deve conter a largura de banda nominal;
ifPhysAddress(ifEntry 6): Endereço físico da interface, Para interfaces que
não têm tal endereço (por exemplo, uma linha serial), esse objeto deve
conter um octeto string de comprimento zero;
ifAdminStatus(ifEntry 7): Indica o estado desejado da interface;
ifOperStatus(ifEntry 8): Indica o estado atual de funcionamento do inter-
face;
o up(1), -- pronto para passar pacotes;
o down(2), -- interface desabilitada;
o testing(3) -- indica que nenhum pacote em estado operacional
podem ser passados.
50 A MIB | Gerenciamento de Redes com SNMP
ifLastChange(ifEntry 9): O tempo de funcionamento desde que a interfa-
ce entrou em estado operacional;
ifInOctets(ifEntry 10): O número total de octetos recebidos na interface,
incluindo caracteres de enquadramento (framing characters);
ifInUcastPkts(ifEntry 11): O número de pacotes unicast entregues a um
protocolo de camada superior;
ifInNUcastPkts(ifEntry 12): O número de pacotes não unicast (ou seja,
broadcast ou multicast) entregues a um protocolo de camada superior;
ifInDiscards(ifEntry 13): O número de pacotes de entrada que foram es-
colhidos para serem descartados, mesmo que nenhum erro tenha sido
detectado, impede a entrega dos pacotes a um protocolo de camada su-
perior. Uma razão possível para descartar tais pacotes poderia ser para li-
berar espaço de buffer;
ifInErrors(ifEntry 14): O número de pacotes de entrada que continham
erros que impedem seu fornecimento a um protocolo de camada superi-
or;
ifInUnknownProtos(ifEntry 15): O número de pacotes recebidos através
da interface que foram descartados por causa de um protocolo desco-
nhecido ou não suportado;
ifOutOctets(ifEntry 16): O número total de octetos transmitidos na inter-
face, incluindo caracteres de enquadramento (framing characters);
ifOutUcastPkts(ifEntry 17): O número total de pacotes que o protocolo
de camada superior solicitou que fossem transmitidos, incluindo aqueles
que foram descartados ou não enviados;
ifOutNUcastPkts(ifEntry 18): O número total de pacotes não unicast (ou
seja, broadcast ou multicast) que o protocolo de camada superior solici-
tou que fossem transmitidos, incluindo aqueles que foram descartados ou
não enviados;
ifOutDiscards(ifEntry 19): O número de pacotes de saída que foram esco-
lhidos para serem descartados, mesmo que nenhum erro tenha sido de-
tectado, impede a transmissão dos pacotes. Uma razão possível para des-
cartar tais pacotes poderia ser para liberar espaço de buffer;
ifOutErrors(ifEntry 20): O número de pacotes de saída que não puderam
ser transmitidos devido a erros;
ifOutQLen(ifEntry 21): O comprimento da fila de saída de pacotes (em
pacotes);
ifSpecific(ifEntry 22): Uma referência a definições MIB específicas para
uma mídia em particular, sendo usado para realizar a interface com o ob-
jeto. Por exemplo, se a interface é realizado por uma ethernet, então o
valor deste objeto refere-se a um documento que define objetos específi-
cos para ethernet. Se esta informação não é presente, seu valor deve ser
definido como OBJECT IDENTIFIER { 0 0 }, que é uma sintaxe válida para
identificador de objeto, e estará em conformidade com qualquer imple-
mentação de ASN.1 e BER que deverá ser capaz de gerar e reconhecer es-
se valor.
6.5.7.3.2. OID
1.3.6.1.2.1.3
6.5.7.3.3. Componentes
atTable(1): As tabelas de tradução de endereços, devem conter o endere-
ço de rede para seu endereço físico equivalente.
Algumas interfaces não usam tabelas de conversão para determinar equi-
valências endereço (por exemplo, DDN-X.25 tem um método algorítmico).
Se todas as interfaces são deste tipo, então a tabela Address Translation
está vazia, ou seja, tem zero entradas;
atEntry(atTable 1): Cada entrada contém um endereço de rede para seu
endereço físico equivalente;
atIfIndex(atEntry 1): A interface identificada por um determinado valor
deste índice é a mesma interface identificada pelo mesmo valor de ifIn-
dex;
atPhysAddress(atEntry 2): Endereço físico da interface;
atNetAddress(atEntry 3): O endereço da rede (por exemplo, o endereço
IP).
6.5.7.4.2. OID
1.3.6.1.2.1.4
6.5.7.5.2. OID
1.3.6.1.2.1.5
6.5.7.6.2. OID
1.3.6.1.2.1.6
6.5.7.7.2. OID
1.3.6.1.2.1.7
6.5.7.7.3. Componentes
udpInDatagrams(1): O número total de datagramas UDP entregues aos
usuários UDP;
udpNoPorts(2): O número total de datagramas UDP recebidos para os
quais não houve aplicação na porta de destino;
udpInErrors(3): O número de datagramas UDP recebidos que não pude-
ram ser entregues por outras razões que não a falta de uma aplicação na
porta de destino;
udpOutDatagrams(4): O número total de datagramas UDP enviados a
partir desta entidade;
udpTable(5): Uma tabela contendo informações sobre os ouvintes UDP;
udpEntry(udpTable 1): Informações sobre um determinado ouvinte UDP;
udpLocalAddress(udpEntry 1): O endereço IP local para este ouvinte UDP.
No caso de um ouvinte UDP que está disposto a aceitar datagramas para
qualquer interface IP associado com o nó, o valor 0.0.0.0 é usado;
udpLocalPort(udpEntry 2): O número da porta local para este ouvinte
UDP.
6.5.7.8.2. OID
1.3.6.1.2.1.8
6.5.7.9.2. OID
1.3.6.1.2.1.9
Histórico.
6.5.7.10.2. OID
1.3.6.1.2.1.10
Histórico.
6.5.7.11.2. OID
1.3.6.1.2.1.11
6.5.7.11.3. Componentes
snmpInPkts(1): O número total de mensagens entregues à entidade
SNMP pelo serviço de transporte;
snmpOutPkts(2): O número total de mensagens SNMP que foram passa-
dos da entidade protocolo SNMP para o serviço de transporte;
snmpInBadVersions(3): O número total de mensagens SNMP que foram
entregues à entidade protocolo SNMP, mas eram de uma versão SNMP
não suportada;
7.2.Características do Protocolo
O protocolo RMON é uma MIB SNMP e, portanto o dispositivo deve possuir um
agente SNMP.
É específico para tecnologias Ethernet e Token Ring, apesar de existir uma im-
plementação para ATM.
O dispositivo que implementa o suporte para RMON se chama probe RMON. Um
probe pode ser implementado em um dispositivo dedicado ou em um elemento de rede,
como um hub, switch ou roteador.
O probe visa monitorar tráfego de um segmento da rede. Deve ficar em um pon-
to da rede por onde passa todo o tráfego do segmento. Dessa forma deve haver um
probe RMON por segmento de rede a ser monitorado.
Em redes comutadas, o RMON é implementado normalmente nos equipamentos
ativos ou através de espelhamento do tráfego de suas portas para uma porta de monito-
ração (port mirroring).
7.3.Objetivos do RMON
Realizar análise e levantar informações estatísticas sobre os dados coletados em
uma sub-rede, liberando a estação gerente desta tarefa.
Reduzir tráfego entre rede local gerenciada e a estação gerente remota.
Detectar, registrar e informar à estação gerente sobre situações de erro e even-
tos significativos da rede.
Permitir o gerenciamento pró-ativo da rede, diagnosticando e registrando even-
tos que possibilitem detectar o mal funcionamento e prever falhas que interrompam a
sua operação.
Enviar informações de gerenciamento para múltiplas estações gerentes.
7.5.Exemplo de funcionamento
Estatístico (Statistics);
Histórico (History);
Hosts;
Classificação de n Hosts (Host Top N);
Matriz (Matrix);
Token Ring.
Alarme (Alarm);
Filtro (Filter);
Captura de pacote (Packet Capture);
Evento (Event).
7.6.3.2.1. Configuração
Intervalos de amostragem;
Quantidade de amostras armazenadas.
7.6.3.3.1. Exemplos:
Número de bytes transmitidos e recebidos;
Número de pacotes transmitidos e recebidos;
Número de pacotes com erro transmitidos;
Número de pacotes broadcast transmitidos;
Número de pacotes multicast transmitidos.
Permite definir:
Variável para ordenação;
Duração da amostragem;
Quantidade de hosts na lista.
Exemplos:
Pacotes transmitidos;
Octetos transmitidos;
Pacotes com erros transmitidos.
Exemplos:
Captura todos os pacotes vindos do servidor S1;
Conta quantos pacotes estão indo para o roteador e não são originários
dos servidores: tráfego entre segmentos de redes das estações.
Visa a interoperabilidade.
7.7.1.5.1. Exemplos:
Reboot do probe;
Atualização de Software.
# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
rocommunity nome_da_comunidade
Representa uma comunidade com direito de leitura.
rwcommunity nome_da_comunidade
Representa uma comunidade com direito de leitura e escrita.
# cat snmpd.conf
# /etc/snmp/snmpd.conf v1/v2c basico
#
rocommunity public
rwcommunity private
Após alterar o arquivo, é necessário reiniciar o serviço:
Observe que sempre que realizarmos uma alteração no host, receberemos uma
mensagem de retorno, que pode ser uma mensagem de falha ou a confirmação de que a
informação foi alterada, como no exemplo acima: “SNMPv2-MIB::sysContact.0 =
STRING: aulas”
Mais um exemplo:
Vale a pena lembrar que esses comandos não são compatíveis com a versão 1 do
protocolo SNMP:
9.1.USM
Até a versão 2 do protocolo SNMP, o controle de acesso era baseado em comu-
nidades(communities) como public, private. Este é um sistema de segurança muito frágil
e limitado, pois se alguém descobre o nome da comunidade, tem acesso total ao host,
ainda que ele esteja configurado apenas para leitura. Disponibilizar essas informações a
uma pessoa mal intencionada é o mesmo que deixá-la visitar sua rede e realizar anota-
ções, e posteriormente montar o plano de ataque sem pressa alguma.
9.2. VACM
Os usuários são colocados em grupos. São criadas views que representam partes
da árvore SNMP, semelhantes às views dos bancos de dados, ou compartilhamentos de
diretórios em servidores de arquivos. A view é o recurso que desejamos disponibilizar, e
por fim permissões são dadas para os grupos acessarem as views.
Esse segundo passo é opcional, pois podemos ter um host exclusivamente SNMP
v3 ou um host compatível com SNMP v1, v2c e v3. Nesse caso queremos um host com-
patível com todas as versões, e por isso vamos informar ao servidor que quando ele re-
ceber uma solicitação em nome de uma comunidade, ele vai transformar esse nome de
comunidade em um nome de usuário, essa linha faz este mapeamento:
# cat snmpd.conf
# /etc/snmp/snmpd.conf compativel com v1 e v2c (snmpd.conf.2)
#
# view name inc/excl tree mask
view all included .1 80
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 inicial (snmpd.conf.3)
#
# Declarando um usuário Inicial com permissão de escrita
rwuser initial
psyscontact aulas
setserialno 2003046206
engineBoots 13
/var/lib/net-snmp/snmpd.conf – Após adição do usuário Initial:
setserialno 2003046207
E o número de vezes que o serviço foi reinicializado:
“engineBoots 14”
9.6.3.1. Parâmetros:
passwd: Comando para alterar a senha;
setup_passphrase: Senha atual do usuário “user1”;
senhateste user1: Nova senha para o usuário “user1”, com mínimo de 8
caracteres.
setserialno 2003046208
E o número de vezes que o serviço foi reinicializado:
“engineBoots 15”
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 básico (snmpd.conf.4)
#
# mantive o usuário initial com permissão de escrita
rwuser initial
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 devidamente configurado (snmpd.conf.5)
# Definir as Views
# view nome incl/excl. sub-árvore máscara
View all included .1 80
view ip included iso.org.dod.internet.mgmt.mib-2.ip
# Agrupar os usuários
#group nome modelo_de_segurança usuário
group rogroup1 usm user1
group rogroup1 usm user2
group rogroup2 usm user3
group rwgroup usm initial
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 inicial com autenticação e privacidade
(snmpd.conf.6)
Gerenciamento de Redes com SNMP | Gerenciamento de Servidores GNU/Linux 91
Utilizando SNMP v3
#
# Declarando um usuário Inicial com permissão de escrita
rwuser initial
9.7.2.1. Parâmetros:
snmpusm: Comando para criar e manipular usuários;
-v 3: Versão do protocolo SNMP;
-u initial: -u (User) initial, nome do usuário com permissão de escrita;
-n "": Contexto;
-x DES: Tipo de criptografia usada na senha (DES ou AES) – protocolo usa-
do na privacidade;
-X setup_passkey: Chave criptográfica;
-l authPriv: Nível de segurança na autenticação; são três níveis:
o noAuthNoPriv: Sem autenticação e sem privacidade;
o authNoPriv: Com autenticação, sem privacidade;
o authPriv: Com autenticação e privacidade.
“For privacy, the Security Model defines what portion of the mes-
sage is encrypted.” – IEEE - rfc3411
-a MD5: Tipo de Hash utilizado na senha (MD5 ou SHA);
-A: A senha será “hasheada”; será criado um hash da senha;
setup_passphrase: Senha do usuário initial;
localhost: Nome DNS ou IP do Servidor;
create user1 initial: Criar o usuário “user1”; clonando de “initial”, clona
inclusive a senha.
92 Gerenciamento de Servidores GNU/Linux Utilizando SNMP v3 | Gerenciamento de
Redes com SNMP
9.7.2.2. Outro exemplo:
# snmpusm -v3 -u initial -n "" -l authPriv -x DES -X 123 -a MD5 -
A 234 localhost create user1 initial
9.7.2.2.1. Parâmetros:
“-x DES -X 123 -a MD5 -A 234”: Criptografia do tipo DES (-x), chave criptográfica
“123” (-X), hash do tipo MD5 (-a), chave criptográfica “234” (-A). Veja este trecho do
man snmpcmd:
-a authProtocol
Set the authentication protocol (MD5 or SHA) used for authenti-
cated SNMPv3 messages. Overrides the defAuthType token in the snmp.conf
file.
-A authPassword
Set the authentication pass phrase used for authenticated SNMPv3
messages. Overrides the defAuthPassphrase token in the snmp.conf file.
It is insecure to specify pass phrases on the command line, see
snmp.conf(5).
-x privProtocol
Set the privacy protocol (DES or AES) used for encrypted SNMPv3
messages. Overrides the defPrivType token in the snmp.conf file. This
option is only valid if the Net-SNMP software was build to use OpenSSL.
-X privPassword
Set the privacy pass phrase used for encrypted SNMPv3 messages.
Overrides the defPrivPassphrase token in the snmp.conf file. It is in-
secure to specify pass phrases on the command line, see snmp.conf(5).
9.7.3.1. Parâmetros:
-Ca: Alterar a chave de autenticação;
passwd: Comando para alterar a senha;
setup_passphrase: Senha atual do usuário “user1”;
Gerenciamento de Redes com SNMP | Gerenciamento de Servidores GNU/Linux 93
Utilizando SNMP v3
senhateste user1: Nova senha para o usuário “user1”, com mínimo de 8
caracteres.
9.7.4.1. Parâmetros:
-Cx: Alterar a chave de privacidade;
passwd: Comando para alterar a senha;
setup_passkey: Chave atual do usuário “user1”;
senha_key user1: Nova chave para o usuário “user1”, com mínimo de 8
caracteres.
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 básico com autenticação e privacidade
(snmpd.conf.7)
#
# mantive o usuário initial com permissão de escrita
rwuser initial
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 devidamente configurado com autentica-
ção e privacidade (snmpd.conf.8)
# Definir as Views
# view nome incl/excl. sub-árvore máscara
View all included .1 80
view ip included iso.org.dod.internet.mgmt.mib-2.ip
# Agrupar os usuários
#group nome modelo_de_segurança usuário
group rogroup1 usm user1
group rogroup1 usm user2
group rogroup2 usm user3
Gerenciamento de Redes com SNMP | Gerenciamento de Servidores GNU/Linux 95
Utilizando SNMP v3
group rwgroup usm initial
Mostrar apenas a primeira linha do resultado não é útil na maioria dos casos, po-
rém, olhando no /etc/snmp/snmpd.conf, encontramos outras OID que armazenam a
informação toda. Por questões óbvias vou usar o /etc/fstab neste exemplo:
Usei o comando “snmpwalk -On” para que fossem exibidos os OIDs numéricos.
.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.84.101.115.116.101.49.1 = STRING:
.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.84.101.115.116.101.49.2 = STRING:
#
.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.84.101.115.116.101.49.3 = STRING:
# /etc/fstab
...
.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.84.101.115.116.101.49.14 =
STRING: sysfs /sys sysfs de-
faults 0 0
.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.84.101.115.116.101.49.15 =
STRING: proc /proc proc de-
faults 0 0
.1.0 = INTEGER: 1
.2.1.2.6.84.101.115.116.101.50 = STRING: "/bin/cat"
.2.1.3.6.84.101.115.116.101.50 = STRING: "/etc/fstab"
.2.1.4.6.84.101.115.116.101.50 = ""
.2.1.5.6.84.101.115.116.101.50 = INTEGER: 5
.2.1.6.6.84.101.115.116.101.50 = INTEGER: 1
.2.1.7.6.84.101.115.116.101.50 = INTEGER: 1
.2.1.20.6.84.101.115.116.101.50 = INTEGER: 4
.2.1.21.6.84.101.115.116.101.50 = INTEGER: 1
.3.1.2.6.84.101.115.116.101.50 = STRING: "saída do comando"
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 Como restringir o acesso a determinados
ramos da árvore (snmpd.conf.16)
...
view all excluded .1
view all included sysUpTime.0
Lembre-se que após alterar o arquivo é necessário reiniciar o serviço:
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 Como restringir o acesso a determinados
ramos da árvore (snmpd.conf.17)
...
view all excluded .1
view all included sysUpTime.0
view all included interfac-
es.ifTable.ifEntry.ifIndex.1
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 Como restringir o acesso a determinados
ramos da árvore (snmpd.conf.18)
...
view all excluded .1
view all included sysUpTime.0
view all included interfaces.ifTable.ifEntry
Lembre-se que após alterar o arquivo é necessário reiniciar o serviço:
####
# Segundo, mapear o nome de acesso em um nome de grupo:
Gerenciamento de Redes com SNMP | Gerenciamento de Servidores GNU/Linux 121
Utilizando SNMP v3 - Casos Especiais e Exemplos
# sec.model sec.name
Group MyRWGroup v1 local
group MyRWGroup v2c local
####
# Terceiro, criar as views para definir quais são os direitos dos
# grupos:
# incl/excl subtree
mask
view all included .1
####
# Por fim, definir as views para os grupos:
ifDescr
ifType
ifMtu
ifSpeed
ifPhysAddress
ifAdminStatus
ifOperStatus
ifLastChange
ifInOctets
ifInUcastPkts
ifInNUcastPkts
ifInDiscards
ifInErrors
ifInUnknownProtos
ifOutOctets
ifOutUcastPkts
ifOutNUcastPkts
ifOutDiscards
ifOutErrors
ifOutQLen
ifSpecific
l
1
lo
e
2
eth0
E
3
eth1
Tabela 04 – Tabela referente às informações de rede
Podemos variar a coluna, que contém as descrições das informações, mas esta-
mos presos na linha 2, ou seja, podemos ver qualquer informação referente a eth0.
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 Como restringir o acesso a um determi-
nado índice (linha) em uma Tabela (snmpd.conf.19)
...
view all excluded .1
view all included sysUpTime.0
view all included interfaces.ifTable.ifEntry.ifIndex.2 ff.a0
Lembre-se que após alterar o arquivo é necessário reiniciar o serviço:
# cat snmpd.conf
# /etc/snmp/snmpd.conf v3 Como restringir o acesso a um determi-
nado índice (linha) em uma Tabela (snmpd.conf.20)
...
view all excluded .1
view all included sysUpTime.0
view all included .1.3.6.1.2.1.2.2.1.2 FF.C0
view all included .1.3.6.1.2.1.2.2.1.7 FF.C0
view all included .1.3.6.1.2.1.2.2.1.8 FF.C0
Lembre-se que após alterar o arquivo é necessário reiniciar o serviço:
Mas existe uma maneira de simplificar isso: o net-snmp, que nos permite definir
variáveis de configuração, válidas para a execução de todos os comandos.
# cd ~
# pwd
/root
# mkdir .snmp
# cd .snmp
# cat snmp.conf
defversion 3
defsecurityname initial
defsecuritylevel authPriv
defauthtype MD5
defauthpassphrase setup_passphrase
defprivtype DES
defprivpassphrase setup_passkey
12.1.1. Parâmetros:
O comando snmpconf automatiza o processo, e pode ser usado para gerar vários
arquivos de configuração, inclusive o citado acima.
# snmpconf
The following installed configuration files were found:
1: /etc/snmp/snmpd.conf
2: /etc/snmp/snmptrapd.conf
Would you like me to read them in? Their content will be merged
with the
output files created by this session.
Solicita ainda que seja escolhido um deles; o default é a opção “all”. Basta pres-
sionar “Enter” para selecionar a opção default.
1: snmpd.conf
2: snmp.conf
3: snmptrapd.conf
A segunda opção nos informa quais arquivos podem ser gerados e solicita que seja escolhida
uma das opções.
Select section: 1
A terceira seção solicita que seja escolhida qual seção do arquivo de configuração será alterada.
Select from:
Select section:
1: snmpd.conf
2: snmp.conf
3: snmptrapd.conf
snmp.conf
Or, if you want them for your personal use only, copy them to
/root/.snmp . In the future, if you add the -p option to the
command line I'll copy them there automatically for you.
Mensagem padrão com instruções adicionais.
# snmptranslate .1.3.6.1.2.1.1.3
SNMPv2-MIB::sysUpTime
Os comandos abaixo são usados para habilitar o SNMP v1/v2c no roteador CISCO.
Router_C2600>enable
Router_C2600#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router_C2600(config)#snmp-server community public RO
Router_C2600(config)#snmp-server community private RW
Router_C2600(config)#exit
Router_C2600#
Router_C2600#write memory
Warning: Attempting to overwrite an NVRAM configuration previous-
ly written
by a different version of the system image.
Overwrite the previous NVRAM configuration?[confirm]
Building configuration...
[OK]
Router_C2600#
1. Router_C2600>enable
2. Router_C2600#configure terminal
3. Enter configuration commands, one per line. End with CNTL/Z.
Definir a view:
Router_C2600>enable
Router_C2600#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Definir a view:
Router_C2600>enable
Router_C2600#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Definir a view:
Observação:
O modelo C2600 não possui suporte a authPriv, mas os comandos e resultados de leitura de um
equipamento que suporte a esse nível de autenticação será como os exibidos acima.
http://net-snmp.sourceforge.net/wiki/index.php/Vacm
http://www.ietf.org/rfc/rfc3411.txt
http://www.ietf.org/rfc/rfc3415.txt
http://www.ietf.org/rfc/rfc1213.txt
http://www.net-snmp.org/docs/man/snmpusm.html
http://www.net-snmp.org/docs/man/snmpd.conf.html
http://www.net-snmp.org/docs/man/snmpd.conf.html#lbAH
http://www.net-snmp.org/docs/man/snmpd.conf.html#lbAI
http://www.webnms.com/simulator/help/sim_network/netsim_conf_snmpv3.html
http://net-snmp.sourceforge.net/wiki/index.php/Vacm
http://docstore.mik.ua/orelly/networking_2ndEd/snmp/appf_02.htm
http://www.net-snmp.org/wiki/index.php/TUT:SNMPv3_Options
http://www.webnms.com/agenttester/help/snmptester/sat_v3_security_testing.html
http://tcpipguide.com/free/t_SNMPVersion2SNMPv2MessageFormats.htm
http://www.tcpipguide.com/free/t_TCPIPInternetStandardManagementFrameworkan
dSNMPVer-3.htm
http://www.simpleweb.org
http://www.rnp.br/newsgen/9901/rmon.html
http://www.dsc.ufcg.edu.br/~jacques/cursos/gr/html/aplic/aplic5.htm
Stallings, W. SNMP, SNMPv2, SNMPv3 and RMON1 and 2. 3rd ed. 7th printing, 2003.