experimento snmp & mibs
Post on 22-Oct-2015
122 Views
Preview:
DESCRIPTION
TRANSCRIPT
Gerenciamento de redes
Prof: Jose Neuman de Souza
Experimento SNMP & MIBs
Trabalho realizado por: Santos David Bernal Sánchez
2013/14
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
Experimento SNMP & MIBs
1 INTRODUÇÃO Neste trabalho vou refazer o experimento explicado no blog “Filipe’s Blog, Um blog exprimental”. Trata so as etapas de configuração de um gerente SNMP e a implementação de um cliente SNMP capaz de consultar e configurar informações no sistema. Os objetos serão descritos em uma MIB e acessados via MibBrowser.
2 PONTO DE PARTIDA Demorou muito tempo conseguir preparar um entorno que possibilitara começar com o trabalh. No início tentei instalar a última versão do Linux Ubuntu em um notebook com Windows 8 com a intenção de ter os dois sistemas operativos disponíveis... não deu certo.
Após tentar em diferentes notebooks com diferentes sistemas operativos Microsoft Windows já instalados e com diferentes versões de Linux Ubuntu finalmente consegui instalar (paralelamente a Windows 7) a última versão de Ubuntu no meu PC. Parecia que o experimento ia dar certo, só tinha que seguir os passos.
Porém os problemas e diferenças encontradas com a explicação descrita impediram que pudesse executar os passos conforme o experimento o blog explica. Finalmente decidi instalar Ubuntu 10.04.4 LTS (Lucid Lynx. Desktop image) no meu PC. Depois de procurar informação na internet e pesquisar muito consegui chegar até o ponto #4, mas não conseguia continuar. A seguir mostro os problemas e dúvidas encontradas naquele momento:
1. No item> # Adicione as permissões para o snmpd: no arquivo sudoers não sabia onde tinha que colocar a linha “snmp ALL=(ALL:ALL) NOPASSWD:ALL" ao final ou ao início?
2. No arquivo passtest.sh a última linha é errada, é necessário o último esac?
3. No ponto #2: O OID base para os objetos da MIB> iso(1).org(3).dod(1).internet(6).experimental(3), sendo passtest(1) o primeiro OID de experimental(3) não coincide com o OID base do arquivo passtest.sh em qualquer caso sempre usa-se .1.3.6.1.3.1 ?
4. No último item do ponto #3: /etc/default/snmpd. Edite-o, adicionando: - (Não sabia onde devia colocar essa linha?) export SNMPCONFPATH=/etc/snmp/ - (Já existia) SNMPDRUN=yes - (Não sabia se devia modificar a linha existente?) SNMPDOPTS=’ -u snmp -g snmp -p /var/run/snmpd.pid 127.0.0.1′
2
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
5. No ponto #4 após instalar acpi, executava /tmp/passtest.sh -g .1.3.6.1.3.1.1.0 e só aparecia: .1.3.6.1.3.1.1.0 string faltava 100%
6. Se tentava fazer um teste GET a janela que segue abria-se, no campo Value não aparecia nada.
Depois descobri que acpi é relacionado com a bateria do notebook, devido a que estava trabalhando no meu PC entendi porque esse teste não funcionava. Também não conseguia realizar o teste sensor, não entendia porque. Finalmente descobri que tinha que instalar um software para ter acesso a temperatura do PC, escolhi o HWMonitor.
3
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
3 REALIZAÇÃO DO EXPERIMENTO Após consultar em foros especializados e pesquisar na intenet finalmente consegui solucionar todos os problemas e duvidas explicadas anteriormente e realizei o experimento inteiro no meu PC. Tanto através do Terminal de Linux como no MibBrowser, conseguir executar as operações GET e SET comentadas no blog “Filipe’s Blog, Um blog exprimental” com exceção de acpi.
Ainda assim, devido a que precisava de um notebook para poder realizar também o teste acpi optei por tentar a instalação de Ubuntu em uma máquina virtual (Oracle VirtualBox) no meu notebook e refazer o experimento. A continuação descreverei como refiz o experimento no meu notebook.
Primeiro de tudo: Instalação da máquina virtual (Oracle VirtualBox) para simular o Ubuntu 10.04.4 LTS (Lucid Lynx. Desktop image). Actualização e configuração de Ubuntu.
1. Configuração do ambiente para começar trabalhar com SNMP
- Instalação de snmpd:
sudo apt-get install snmpd
4
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
- Configuração de snmpd:
Com o comando mv faze-se uma cópia do arquivo original snmpd.conf (localizado no diretório /etc/snmp) movendo o conteudo para snmpd.conf.orig (no mesmo diretório).
sudo mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
Criação e Edição do arquivo snmp.conf (agora vazio) com o comando vim (anteriormente instalou-se o editor gvim através do Central de Programas de Ubuntu) no diretório /etc/snmp
sudo vim /etc/snmp/snmpd.conf
e adição das linhas
rocommunity public
rwcommunity private
- Comprobação de arquivos conteúdos no diretório /etc/snmp
cd /etc/snmp
ls
Temos três arquivos: snmpd.conf, snmpd.conf.orig e snmptrapd.conf
- Reiniciação do daemond:
sudo service snmpd restart
5
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
- Adição das permissões para o snmpd no arquivo sudoers:
sudo vim /etc/sudoers
com a tecla “i” se habilita a escritura no arquivo e se adiciona na última linha
snmp ALL=(ALL:ALL) NOPASSWD:ALL
- Instalação de Java:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
após executar o último comando aceitamos todos os passos para completar a instalação de Java.
- Download do MibBrowser: ireasoning.com/download.shtml
Procuramos o MIB Browser Personal Edition > aceitamos no final da web > baixar mibbrowser.zip
- No diretório onde foi baixado o mibbrowser.zip (ou copiar para outro dir):
Meu diretório é Download
unzip mibbrowser.zip
Permisões para executar com control total o arquivo browser.sh
chmod a+x browser.sh
6
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
- Para executar o MibBrowser:
./browser.sh
2. Criação da MIB descrevendo os objetos
A MIB (Management Information Base) é a estrutura de dados que coleciona os objetos do agente SNMP, permitindo a interação com o gerente (GET e SET sobre os objetos) e está definida pela notação ASN.1 (Abstract Syntax Notation). O OID base para os objetos da nossa MIB será: iso(1).org(3).dod(1).internet(6).experimental(3), sendo passtest(1) o primeiro OID de experimental(3). A mib foi nomeada PASSTEST-MIB.txt, mas poderia ter qualquer outro nome.
O agente dispobilizará 5 objetos para consulta (na verdade são 6, um será adicionanado mais adiante):
acpi – retorna a carga da bateria em % memtotal – retorna a memória total memfree – retorna a memória livre date – retorna a data do sistema sensor – retorna a temperatura do sensor1 em ºCelsius
o arquivo PASSTEST-MIB.txt deve permanecer neste diretório (/usr/share/snmp/mibs)
Arquivo PASSTEST-MIB.txt: [PASSTEST-MIB.txt] (**é incompleto, utilizaremos o
comando vim. Falta inserir a definição para eject)
- No diretório onde se guardou PASSTEST-MIB.txt /usr/share/snmp/mibs
sudo vim PASSTEST-MIB.txt
no primeiro bloco de definiñóes
-- .1.3.6.1.3.1.7 == eject
e antes de END inserir também
7
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
Eject OBJECT-TYPE
SYNTAX Integer
ACCESS read-write
STATUS mandatory
DESCRIPTION
“Eject the CD.”
::= { passtest 7 }
- No arquivo /etc/default/snmpd, poderá estar definido o local das MIBs, como:
sudo cd /etc/default
sudo vim snmpd
export MIBDIRS=/usr/share/snmp/mibs (aparece já na linha 5)
3. Criação do script do agente extendido
Após a definição dos objetos, é necessário criar os métodos de ação para as operações GET e SET que o gerente poderá fazer. Isso será feito através de um shell script: Arquivo passtest.sh [passtest.sh].
Não vou comentar a implementação do script aqui, pois os comentários estão presentes no próprio arquivo. Durante os testes, utilizei o diretório /tmp para armazenar o arquivo. Lembre-se manter uma cópia dos arquivos em um local de armazenamento persistente.
Agora é necessário informar ao snmpd como proceder durante os acessos aos objetos da nossa MIB.
- Para isso, editar
sudo vim /etc/snmp/snmpd.conf
e adicionar ao arquivo snmpd.conf o seguinte:
pass .1.3.6.1.3.1 /bin/sh /tmp/passtest.sh
- Outro arquivo relacionado, é o /etc/default/snmpd. Edite-o,
sudo vim /etc/default/snmpd
adicionando:
export SNMPCONFPATH=/etc/snmp/ SNMPDRUN=yes SNMPDOPTS=’-u snmp -g snmp -p /var/run/snmpd.pid 127.0.0.1′
- Reinicie o daemon snmpd. Obs.: o endereço 127.0.0.1 restringe a acesso local.
sudo service snmpd restart
8
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
4. Testes
Até agora, temos um ambiente configurado, objetos definidos e as ações definidas para gerar o retorno das consultas GET. O primeiro passo, que encorajo muito ( e que pode evitar uma grande perda de tempo ), é a verificação do script. Para a consulta ao objeto “acpi” funcionar, é necessário ter o pacote acpi instalado.
sudo apt-get install acpi
Como exemplo, uma consulta ao objeto experimental(3).passtest(1).acpi(1).0. Obs: acpi.0 indica que não é uma tabela de objetos.
- No diretório /tmp altere a permissão do script para modo de execução.
sudo chmod a+x passtest.sh
- Executar o comando
/tmp/passtest.sh -g .1.3.6.1.3.1.1.0
a saída deve ser:
.1.3.6.1.3.1.1.0 string 100%
9
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
São estas informações repassadas ao gerente, como veremos agora.
- Antes, no entanto, instale o pacote snmp
sudo apt-get install snmp
- e executar o comando snmpget -c public -v 2c 127.0.0.1 1.3.6.1.3.1.1.0
a saída:
SNMPv2-SMI::experimental.1.1.0 = STRING: “100%”
Ok. Tudo indo bem. Na sequência, utilizaremos o MibBrowser para consultar os objetos da nossa MIB.
10
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
- Inicie o iReasoning MIB Browser (visto no passo #1). A seguinte janela deverá abrir-se:
./ireasoning/mibbrowser/browser.sh
- Antes de abrir nossa mib PASSTEST-MIB.txt inserimos 127.0.0.1 no campo Address: e em Advanced devemos colocar o seguinte:
11
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
A porta não necessita ser exclusivamente 161, é possível definir outra porta, mas isso implica em reconfigurar o snmpd.
- Agora, vamos carregar a nossa mib PASSTEST-MIB.txt, que previamente foi adicionada ao diretório default /usr/share/snmp/mibs/. Para isso, execute Ctrl-L ou vá em File->Load MIB. Seleciona a mib PASSTEST-MIB.txt e clique em Open.
A mib será carregada e seus objetos estarão disponíveis para visualização:
Configurado o Mib Browser, já podemos fazer as consultas nos objetos.
12
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
Clique no objeto desejado, selecione em Operations o modo “GET” e clique em “Go”. O retorno da consulta será exibida na tela Result Table:
- Por exemplo, para acpi o resultado é o seguinte:
Para date:
13
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
Para poder fazer a operação GET em sensor, primeiro deve-se instalar os pacotes lm-sensors, computertemp e sensors-applet.
sudo apt-get install ls-sensors
sudo apt-get install hddtemp
sudo sensors-detect
deve se aceitar todas as condições com YES
Com isso, encerramos a parte de testes de consulta aos objetos (GET).
- A seguir, veremos como testar uma operação de SET.
Em nossa mib PASSTEST-MIB o objeto chamado “mtu” corresponde ao MTU (maximum transfer unit) da interface de rede eth0.
Sobre esse objeto será possível operações de GET e SET. Essas alterações já estão presentes nos arquivos disponibilizados anteriormente.
Para realizar o SET, indique explicitamente a community “private”:
- Executar o comando
snmpset -mALL -v2c -cprivate 127.0.0.1 1.3.6.1.3.1.6.0 i 1400
a saída:
PASSTEST-MIB::mtu.0 = INTEGER: 1400
Para conferir:
- Executar o comando
snmpget -mALL -v2c -cprivate 127.0.0.1 1.3.6.1.3.1.6.0
a saída:
PASSTEST-MIB::mtu.0 = INTEGER: 1400
14
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
- No MibBrowser, configurando um novo valor (1500) para MTU (SET), imagem a seguir:
15
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
e conferindo (GET), imagem a seguir:
16
Gerenciamento de redes
EXPERIMENTO SNMP & MIBS |
Para finalizar, uma operação SET para ejetar o cd-rom:
- Executar o comando
snmpset -mALL -v2c -cprivate 127.0.0.1 1.3.6.1.3.1.7.0 i 0
ejata o cd-rom e a saída é:
PASSTEST-MIB::eject.0 = INTEGER: 0
É isso aí. Vimos uma maneira de consultar e alterar valores de objetos snmp. O snmp possui muitos outros recursos e aplicações não abordadas neste trabalho, isto é, o assunto não se esgota aqui.
4 CONCLUSÃO Para realizar (refazer) esse experimento tive que aprender utilizar o ambiente Linux, a executar comandos no Terminal e aprender interpretar o significado deles, aprender novos términos e conceitos e ainda formas de pensar e atuar as vezes. Foi mais difícil do que parecia no início na verdade, tive que pesquisar muito na internet e consultar grande quantidade de foros especializados. Meu curso (Engenharia de Produção) tem nada o quase nada a ver com o desenvolvimento desse experimento. Isso, junto com a novidade de se enfrentar a um entorno de trabalho (Terminal de comandos Linux) fiz que para mim tivesse um plus de dificuldade mas após alcançar o final do experimento sinto-me muito feliz de ter conseguido o objetivo inicial. Foi um desafio que consegui superar.
** ARQUIVOS FINAIS UTILIZADOS DEPOIS DAS MODIFICAÇÕES:
17
top related