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...