Experimento SNMP & MIBs

17
Gerenciamento de redes Prof: Jose Neuman de Souza Experimento SNMP & MIBs Trabalho realizado por: Santos David Bernal Sánchez 2013/14

description

SNMP & MIBs

Transcript of Experimento SNMP & MIBs

Page 1: Experimento SNMP & MIBs

Gerenciamento de redes

Prof: Jose Neuman de Souza

Experimento SNMP & MIBs

Trabalho realizado por: Santos David Bernal Sánchez

2013/14

Page 2: Experimento SNMP & MIBs

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

Page 3: Experimento SNMP & MIBs

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

Page 4: Experimento SNMP & MIBs

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

Page 5: Experimento SNMP & MIBs

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

Page 6: Experimento SNMP & MIBs

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

Page 7: Experimento SNMP & MIBs

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

Page 8: Experimento SNMP & MIBs

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

Page 9: Experimento SNMP & MIBs

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

Page 10: Experimento SNMP & MIBs

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

Page 11: Experimento SNMP & MIBs

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

Page 12: Experimento SNMP & MIBs

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

Page 13: Experimento SNMP & MIBs

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

Page 14: Experimento SNMP & MIBs

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

Page 15: Experimento SNMP & MIBs

Gerenciamento de redes

EXPERIMENTO SNMP & MIBS |

- No MibBrowser, configurando um novo valor (1500) para MTU (SET), imagem a seguir:

15

Page 16: Experimento SNMP & MIBs

Gerenciamento de redes

EXPERIMENTO SNMP & MIBS |

e conferindo (GET), imagem a seguir:

16

Page 17: Experimento SNMP & MIBs

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