Segurança no protocolo SNMP versão 3.0 (Debian)

Publicado por Marcelo Ferreira em 10/01/2008

[ Hits: 17.507 ]

 


Segurança no protocolo SNMP versão 3.0 (Debian)



1- Introdução

Após testes com ferramentas de verificação de vulnerabilidades em nossa empresa, foi identificado a necessidade de ativar a segurança na comunicação do protocolo SNMP. Esta tarefa tem o objetivo de dificultar a divulgação de informações de gerenciamento de nossos servidores e equipamentos que fazem uso deste protocolo!

O protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo de Gerência Simples de Rede) é um protocolo de gerência típica de redes TCP/IP, da camada de aplicação, que facilita o intercâmbio de informação entre os dispositivos de rede, como placas e switches. O SNMP possibilita aos administradores de rede gerenciar o desempenho da rede, encontrar e resolver seus eventuais problemas, e fornecer informações para o planejamento de sua expansão, dentre outras. - retirado do site: http://pt.wikipedia.org/wiki/Snmp.

Nesta dica explicarei de forma simplificada como ativar a segurança do protocolo SNMP (que já deverá estar instalado e configurado). Vale lembrar que há vários dicas e artigos explicando como instalar e configurar o SNMP. Os manuais do snmpd.conf (# man snmpd.conf) e do snmpusm (# man snmpusm) são ótimas referências para aprofundar o conhecimento em detalhes, que não é o objetivo desta dica.

Antes de iniciar as alterações é recomendado realizar uma cópia de segurança do arquivo /etc/snmp/snmpd.conf.

2 - Habilitar a segurança do protocolo SNMP versão 3.0 (Debian)

Para a utilização da segurança estaremos explicação as principais opções do /etc/snmp/snmpd.conf:

2.1 - Definição do tipo de acesso:

- acesso 1: rwuser (leitura e gravação)
- acesso 2: rouser (leitura)


# acesso username
# ------ --------
# rwuser teste

  rouser teste

2.2 - Criação do usuário, protocolo de autenticação, senha, protocolo de comunicação da senha, frase do tipo senha:

#          username   authProto  authpassphrase  privProto   privpassphrase
#          --------   ---------  --------------  ---------   --------------

createUser teste      MD5        123456789       DES         123456789

2.3 - Criação de um par rede(SOURCE) e o tipo de comunidade:

#       securityName  SOURCE(rede)   COMMUNITY
#       ------------  ------         ---------

com2sec local         127.0.0.1/32   public
com2sec local         10.12.4.0/24   public

2.4 - Mapeamento do par criado no passo 3:

#     groupName    securityModel  securityName
#     ---------    -------------  ------------

group MyROGroup    v1             local
group MyROGroup    v2c            local
group MyROGroup    usm            local

2.5 - Especificação do que pode ser visualizado através do cliente SNMP:

#           incl/excl  subtree  mask
#           ---------  -------  ----

view all    included  .1        80

2.6 - Tipo de acesso para o grupo criado no passo 4:

#access NAME      CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY
#       ----      ------- ----- ----- ----- ---- ----- ------

access MyROGroup ""      any   auth  exact all  none  none

Crie e ou altere o arquivo /etc/snmp/snmpd.conf conforme suas necessidades, lembre de alterar as configurações do seu IP, rede, nome e senha do usuário para a comunicação com segurança.

Após as alterações faz-se necessário reiniciar o serviço do SNMP para as modificações entrarem em vigor. Como root execute o comando abaixo:

# /etc/init.d/snmpd restart

Vamos testar o acesso do cliente SNMP para verificar informações da interface de rede. Como root execute o comando abaixo:

# snmpwalk -v 3 -a MD5 -A 123456789 -X 123456789 -u teste -l authpriv 10.12.4.15 interface

3 - Exemplo de arquivo de configuração para cliente SNMP com segurança

Abaixo segue um exemplo do /etc/snmp/snmpd.conf com a comunicação segura habilitada:

#
# acesso username
# ------ --------
# rwuser teste

  rouser teste
#
#          username   authProto  authpassphrase  privProto   privpassphrase
#          --------   ---------  --------------  ---------   --------------

createUser teste      MD5        123456789       DES         123456789
# #       securityName  SOURCE(rede)   COMMUNITY
#       ------------  ------         ---------

com2sec local         127.0.0.1/32   public
com2sec local         10.12.4.0/24   public
#
#     groupName    securityModel  securityName
#     ---------    -------------  ------------

group MyROGroup    v1             local
group MyROGroup    v2c            local
group MyROGroup    usm            local
#
#           incl/excl  subtree  mask
#           ---------  -------  ----

view all    included  .1        80
#
#access NAME      CONTEXT MODEL LEVEL PREFX READ WRITE NOTIFY
#       ----      ------- ----- ----- ----- ---- ----- ------

access MyROGroup ""      any   auth  exact all  none  none
#
syslocation 3cta.eb.mil.br
syscontact Ten Ferreira/3CTA <ferreira@3cta.eb.mil.br>
#

4 - Conclusão

Alguns programas de gerenciamento do protocolo SNMP como o CACTI (já postei artigos e dicas para sua instalação e configuração), permitem incluir o usuário (SNMP Username (v3)), senha (SNMP Password (v3)) e selecionar a versão do protocolo SNMP (SNMP Version), veja imagem abaixo.



Viva a liberdade...

Outras dicas deste autor

Modelos (templates) de gráficos para o CACTI

Instalação do Webmin no Debian

NAT entre a máquina real e máquinas virtuais (VirtualBox)

Instalação de template para monitoramento de hardware no CACTI (Debian)

Comunicação servidor e clientes sem solicitar senha

Leitura recomendada

Xfce no CentOS 6

Instalando o LimeWire no Conectiva 10

Enlightenment DR17 (E17) para Slackware

Esperanza - um ótimo cliente XMMS2

repacman - reempacote um programa no Arch Linux

  

Comentários
[1] Comentário enviado por pedro_c em 12/01/2008 - 00:05h

Excelente dica...
Os meus parabéns pelo tema abordado, pela forma clara e concisa como expôs o conteúdo … já tinha vasculhado muito para encontrar o que acabei de ler e experimentar.
Nota 10
Pedro F. S. C.

[2] Comentário enviado por bracim em 25/10/2011 - 16:55h

Prezado Marcelo.... Parabéns pelo artigo.
Vc citou o uso do Cacti para monitorar devices usando SNMPv3.
Estou tentando entender oq é exatamente o campo context. Esse campo é obrigatório??? Como faço pra descobrir o context de algum roteador Cisco?
Se puder ajudar, fico grato.
Att,

Bracim



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts