Você está na página 1de 16

EstudodoprotocoloSNMP

FilipeFreitas
Filipe@filipefreitas.net
http://www.filipefreitas.net
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Introduo

O protocolo SNMP (Simple Network Management Protocol) foi desenvolvido pelo


IETF (Internet Engineering Task Force), com uma primeira RFC em 1988. O seu objectivo
inicial era ser um protocolo simples que permitisse a gesto de redes.
Inicialmente, o protocolo SNMP (SNMPv1) era muito limitado para satisfazer todas
as necessidades de gesto de redes. Em consequncia, ao longo dos tempos, foram
introduzidos melhoramentos no protocolo, surgindo sucessivas verses. No entanto o que o
foi tornando uma ferramenta indispensvel na gesto de redes, foi o constante aumento do
nmero de MIBs existentes, e a sua vulgarizao por todos os equipamentos.
O outro melhoramento que surgiu no mbito do IETF foi a especificao da RMON
(Remote Network Monitoring) em 1991, que introduziu a capacidade de monitorizao
remota de redes. A RMON definiu algoritmos e bases de dados para gerir LANs remotas, e
estendeu as capacidades do SNMP ao incluir a capacidade de monitorizao de LANs
como um todo, em vez de somente dos dispositivos presentes nessas redes locais.

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Objectivos,equipamentoetopologiaderede

Com este trabalho prtico desejase ter uma experincia handson sobre gesto de
redes e o protocol SNMP. Para tal, ser observado o mtodo de comunicao entre as
entidadesdegesto,ecomoestasoperaminternamente.Concretamente,seroabordadosa
base de dados de informao (MIB), o protocolo SNMP v1 e suas limitaes, controlo de
acessose(in)segurana,efinalmente,umexemplodeaplicaodegestoderedesdeelevada
dimenso. A experincia foi executada com um terminal, um switch Baystack, e dois routers
Cisco,dispostosnaseguintetopologia:

FoiconfiguradooprotocolodeencaminhamentoRIP.

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
OperaesSNMP

O SNMP permite o acesso (de leitura e/ou gravao) MIB do dispositivo a ser
acedido.Esteacessofeitoatravsdepedidosdogestorerespostasdodispositivo.Paraesta
experinciafoiutilizadoosoftwareNudesignVisualMIBrowser.

AidentificaodosobjectosdaMIBnodispositivofeitaatravsdeumasequnciade
nmeros, que podem ser representados atravs de uma rvore (ISO Object Identifier Tree).
EstarvorevisvelnasecoesquerdadoVisualMIBrowser.

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
MensagensGet

Parattulodeexemplo,foipedidooobjectosysName,identificadopor3.6.1.2.1.1.5.
EstaaccodesencadeiaaseguintesequnciadepacotesSNMPnarede:

Observa-se que o gestor enviou um pacote get-request para o dispositivo:

Uma anlise ao contedo deste pacote revela que este transporta a chave de
comunidade de leitura, que autentica o acesso MIB do dispositivo, um identificador deste
pedido (requestid), e a identificao do objecto pedido. Aps recepo deste pacote, o
dispositivoprocessaestecontedo,verificaachavedecomunidadeepermissesassociadas,e
enviaumpacotegetresponse,paraorespectivorequestiddopedidocomainformaodo
objectopedido:

Umaoutrainformaorelevantequepossvelobterdaanlisedocontedodestes
pacotesaversodoprotocoloSNMPutilizado.Nestecaso,aversoa1.

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t

MensagensSet

Analisemos agora o caso de alterao de um objecto da MIB. Neste exemplo ir ser


utilizado o mesmo objecto utilizado anteriormente(sysName). Pretendese alterar o valor
deste objecto para grupo4. Esta acco desencadeia a seguinte sequncia de pacotes SNMP
narede:

Observasequeogestorenviouumpacotesetrequestparaodispositivo:

Analisandoocontedodestepacote,observasequeachavedecomunidadeagoraa
chave de escrita, necessria para alterao do valor de objectos na MIB no dispositivo.
Tambm fornecido um requestid, a identificao do objecto, mas ao contrrio do pacote
getrequest, fornecido tambm o valor do objecto. Aps recepo deste pacote, o
dispositivoprocessaocontedoeenviaumpacotesetresponse:

Analisandoocontedodestepacote,observaseaausnciadeerrosnocampoerror
statuseovalordoobjectoomesmofornecidonopacotesetrequest,confirmandoentoa
alteraodovalorpedidapelogestor.
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Observemos agora um caso em que a alterao de um objecto na MIB do dispositivo
interfiranocomportamentododispositivo.Iremosalteraroestadodeumaportadoswitchde
upparadown,oqueirimpedirdospacotespingatingiremodestino.
EstaaccodesencadeiaaseguintesequnciadepacotesSNMPnarede:

Analisandoospacotes,observasequeoVisualMIBrowsercomeaporpedirovalor
doestadodaporta:

Odispositivorespondeaestepedidocomoseguintepacote:

Verificasequeoestadoestup,ouseja,aportaestnoestadoforwarding.
Deseguida,enviadoopedidoparaalteraroestadodaportaparadown:

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Aoqualoswitchrespondecom:

O switch aceita ento o pedido, e altera o estado da porta. Esta aco bloqueia
efectivamenteotrfegodepacotes,nomeadamenteospings:

Parareporasituaoinicial,foiexecutadaamesmaaco,destavezcomalterandoo
valordoobjectoparaup.
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t

Analisandoasequnciadepacotes,observasequealgumtempoapsestaoperao,
os pings atingem o seu destino. O tempo de reposio da porta de aproximadamente 30
segundos. Este elevado tempo de reposio devese ao facto de que o dispositivo a ser
acedidoumswitch,noqualexistem5estadosparaasportas.Aacodownalteraoestado
daportaparablocking,eaacoupalteraoestadoparaforwarding.Atransiodoestado
blockingparaforwardingimplicaatransioparaosestadoslisteningelearning,osquais
implicam um tempo de permanncia nestes de forwarding delay, tipicamente 15 segundos
cada,originandoassimos30segundosdeesperatotal.Otempodeesperatambmpoderser
influenciado pelas capacidades de dispositivo, como por exemplo processador dedicado para
SNMP.

SegurananoSNMP

O acesso aos objectos da MIB autenticado atravs de chaves de comunidade, para


escrita e para leitura. O acesso aos objectos negado caso a chave de comunidade no seja
reconhecida. Foram alteradas no router 192.10.10.100 as chaves de comunidade. A
configuraodoVisualMIBrowserpermaneceinalterada.Efectuandoumwalk(funcionalidade
do Visual MIBrowser que efectua download da MIB do dispositivo), iremos tentar aceder
MIB.Apsactivarowalk,desencadeadaaseguintesequnciadepacotesnarede:

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Nestaexperincia,observasequeodispositivonorespondecomgetresponse,
respondecommensagenstrap:

Analisandoocontedodestepacote,observasequeodispositivoinformaogestorde
umafalhadeautenticao,nopermitindoaesteoacessoaosobjectos.Asmensagenstrap
so mensagens especificadas para alertar o gestor de erros ou eventos excepcionais, como
neste caso, a falha de autenticao. Evidentemente, o Visual MIBrowser no apresenta
informaesdaMIBdodispositivo:

Repondose a situao inicial, ou seja, alterando as chaves de comunidade para as


reconhecidas,esperasequeoacessosejaconcedido.Notesequeaschavesdecomunidades,
ou seja, as chaves utilizadas no controlo de acessos, so enviadas em formato texto, o que
constitui uma vulnerabilidade crtica, pois qualquer intruso poder obter estas chaves e
apropriarse da rede. Esta vulnerabilidade foi posteriormente corrigida com verses
melhoradasdoSNMP.
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t

Comoseesperava,oacessoconcedido,eoVisualMIBrowserprocedeparao
downloadeapresentaodaMIB:

Nesteprocesso,obteveseaseguintecapturadepacotes:

Analisando esta captura, observase que os pedidos so feitos objecto a objecto. No


entanto, os pedidos no so feitos por mensagens getrequest, so feitos por mensagens
getnextrequest. Analisando o contedo de cada um destes getnextrequest, observase
que a identificao dos objectos, incrementado linearmente. Estas mensagens so
especificadas para pedidos de objectos sequenciais, como por exemplo elementos de uma
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
tabela. O SNMP v2 introduz uma nova mensagem getbulkrequest que permite aceder em
massa aos objectos, o que reduz o overhead e nmero de pacotes na rede, entre outras
vantagens.

MensagensTrap

Apsalterarachavedecomunidade,efectuaseatentativadealteraodovalorde
umobjectosendoeste,nestecaso,sysName (1.3.6.1.2.1.1.5) do router 192.10.10.100.

Comoesperado,aalteraonegada,recebendoseumamensagemtrapcomo
resposta.

Analisandoocontedodestepacote,observasequeodispositivoinformaogestorde
queaautenticaofalhou,sendoesteomotivodanegaodealterao.
Como foi dito anteriormente, as mensagens trap so mensagens especificadas para
alertar o gestor de erros ou eventos excepcionais, indicando o problema, como neste caso, a
falha de autenticao. Repondo o sistema para a situao inicial, a autenticao efectuada
com sucesso, sendo permitido o acesso e alterao do valor do objecto, como pode ser
verificadopelasequnciadepacotes:

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
AutodiscoveryeRMON

A possibilidade de acesso massificado e automtico aos dados de vrios dispositivos


permiteconstruirsoluesemecanismoscujaspotenciaisfuncionalidadessoessenciaispara
o gestor. Dois potenciais exemplos dessas funcionalidades so a descoberta automtica da
topologiaderedeerelatriosoriundosdeRMONs.

Autodiscovery

O SNMP permite tambm descobrir automaticamente dispositivos.Com a ferramenta


SNMPc,possvelobteratopologiaderedemunidosapenascomoendereoderede:

AalteraodovalordeobjectosdaMIBdosvriosdispositivospodeserfeitagraficamente.
Porexemplo,oobjectosysName:

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
Desligarportas:

Todasasinformaesdistnciadealgunsclicks,aquiatabeladerouting:

ComoSNMPentopossvelacederecontrolardistnciaosdispositivos.Ainda
possvelirmaislonge,construindogestoresinteligentesdegestoSNMP,scripts,etc.
w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t
RMON

Existem dispositivos cujo papel monitorizar a rede para estatisticas, no sentido de


munirogestordeinformaespreciosascomo,porexemplo,oestadodeutilizaodarede.
EstesdispositivostambmpodemseracedidosporSNMP,sendoeste,nonossocaso,
oswitch.TambmatravsdoSNMPc,podemosacederaosRMONeseusdadosgraficamente.
Aqui,otrfegodasvriasportasdoswitch:

Aqui,onmerodepacotes:

w
w
w
.
f
i
l
i
p
e
f
r
e
i
t
a
s
.
n
e
t

Aqui,otrfegoembytes:

ento possvel aceder remotamente a todo o tipo de estatsticas que o dispositivo


oferece,cujasinformaessoessenciaisparatodootipodetarefasquesejamefectuadasna
rede.
Concluso

O SNMP uma ferramenta essencial para gesto e monitorizao remotas de redes,


disponibilizando ao gestor informaes e controlo sobre o equipamento sob o seu comando,
possibilitandoaindaaconstruodemecanismosautomticosdegesto,utilizandooSNMP.
A interaco feita entre um gestor e vrios agentes, cabendo ao gestor o poder de
deciso, enquanto que os agentes apenam mantm a MIB (o agente estpido). Esta
interacofeitaatravsdemensagensgetrequest,getnextrequestesetrequestporparte
do gestor, e getresponse, setresponse e trap por parte do agente. As mensagens trap so
mensagens para notificao do gestor de eventos excepcionais. Existe um mecanismo de
controlo de acessos, nomeadamente restrio de leitura e restrio de escrita, no entanto,
este mecanismo uma vulnerabilidade no SNMP v1, pois as chaves de comunidade so
transmitidassemencriptao,podendoserfacilmenteinterceptadasporintrusos.

Você também pode gostar