Simple Network Management Protocol SNMP

Estes dias, a maioria dos dispositivos de rede usar o SNMP para monitoramento remoto e de configuração. SNMP é um protocolo simples usado normalmente para criar um software de monitoramento que pode recuperar informações como tráfego de rede, carga de CPU, carga de disco, etc, e também para modificar a configuração de dispositivos, tais como equipamentos wireless, roteadores de banda larga, etc
A maioria das implementações de SNMP sobre esses tipos de dispositivos de rede usar a versão 1 ou versão 2, que tem um método de autenticação muito fraco. SNMP versão 1 contém uma série de bugs na forma como SNMP e mensagens solicitações são tratadas e decodificadas que pode ser explorada de várias maneiras, de negação de serviço para reescrever a configuração.
SNMP versões 1 e 2 cadeias de uso da comunidade para autenticação.

  

Estes são enviados na porta UDP 161 criptografado, por isso é muito fácil para um homem no meio para farejar as cordas da comunidade. Quando você configurar o SNMP em um dispositivo (incluindo uma máquina Linux), você deve criar duas strings de comunidade: um que tenha acesso somente leitura eo padrão é "público", e um que tenha acesso à leitura e escrita eo padrão é "privados". Se você não alterar as comunidades SNMP para dispositivos habilitados, é muito fácil, na ausência de um firewall para ver a sua configuração e alterá-lo.
Isto é muito perigoso para os dispositivos da rede e, por isso aqui está o que você deve tentar fazer:

  • Tente não usar o SNMP, a menos que você precisa.
  • Sempre que possível, usar o SNMP versão 3, que tem o modo de autenticação do usuário e podem fazer a criptografia.
  • Em qualquer caso, se você usar o SNMP, altere as comunidades padrão.
  • Criar um bom firewall no dispositivo ou em um dispositivo na frente dele, permitindo que somente os hosts confiáveis para se conectar usando SNMP.

Por exemplo, um roteador Cisco rodando SNMP com a seqüência de comunidade "public", revela toda a sua configuração em execução, incluindo nomes de usuários e senhas, bem como permitir que o segredo ea senha. Se o roteador tem a comunidade SNMP "privado" para acesso de gravação, você pode modificar absolutamente tudo na configuração. Mais do que isso, a maioria dos roteadores Cisco têm SNMP ativado por padrão com as comunidades por defeito e sem filtros.

Open Secure Sockets Layer (OpenSSL)

A biblioteca OpenSSL é a escolha mais popular para aplicações que necessitam de apoio de criptografia em comunicações de rede. Tais aplicações são conexões Apache (HTTP seguro), Sendmail, OpenLDAP, OpenSSH, etc
Vulnerabilidades em uma versão das bibliotecas do OpenSSL afetar todos os aplicativos que usam e podem ser explorados por aqueles. Dependendo das funções utilizadas pelo aplicativo, vulnerabilidades no OpenSSL pode ser explorado através da aplicação para executar código arbitrário no servidor ou até mesmo para obter privilégios de root.
OpenSSL tinha algumas vulnerabilidades no passado, que fez uma série de prejuízos para servidores que executam aplicativos compilado com suporte a OpenSSL, especialmente Apache, Sendmail e OpenSSH. No caso Sendmail, uma façanha que deu ao atacante privilégios de raiz foi publicada em listas de discussão de segurança.
Para ficar protegido, considere o seguinte:

  • Identificar a versão do OpenSSL em cada um dos servidores que tem as bibliotecas instaladas. Verifique se você tem a versão mais recente e se a sua versão do OpenSSL tem vulnerabilidades remotamente exploráveis.
  • Atualizar sua biblioteca OpenSSL para a versão mais recente do site OpenSSL em http://www.openssl.org.
  • Identificar as aplicações que utilizam a biblioteca OpenSSL, e se eles exigem recompilação por causa da atualização, recompile-los a utilizar as novas bibliotecas.

Se os pedidos usando OpenSSL não necessitam de conexões de todos, criar um bom firewall para permitir conexões somente de sites confiáveis.

Proteja Running Serviços Geral

O trabalho de um administrador de rede é manter a rede a funcionar e segura. Há serviços que não dependem dele ou dela, como por exemplo um servidor web pode ser administrada por um webmaster. Os passos descritos aqui faria você se sentir mais seguro. Vamos acompanhar esta por realmente testar esses passos em uma máquina Linux para que você ter uma idéia melhor.
1. Identificar os serviços executados em cada sistema. Mais importante ainda, identificar as portas abertas e os serviços que a abri-los.
2. Verificar a versão atual de cada serviço executado. Atualização para a versão mais recente do software. Procura de vulnerabilidades para o serviço na sua página inicial e em http://nvd.nist.gov/.
3. Verifique as configurações e, quando possível, criar um software de listas de acesso com base para permitir que apenas os hosts confiáveis para usar esse serviço. Tente nomes de usuário e senhas padrão mudando o tempo todo. Se você pode executar o software em uma jaula, fazê-lo.
4. Se o serviço não exige o acesso de qualquer lugar, criar um firewall para limitar o acesso apenas para hosts confiáveis.
5. Auditoria de sua rede! Tente invadir sua rede. Conectar-se à sua rede como um outsider e testar todos os serviços em execução contra ataques conhecidos. Procura de ferramentas hacker e usá-las contra sua própria rede para ver o que acontece.
6. Criar logs de solicitações de autenticação. Também tenta executar uma rede de sistema de detecção de intrusão como o Snort, disponível em http://www.snort.org, que produz arquivos de log muito bom.

Nem todos os passos são necessários para cada serviço que é executado em sua rede, por exemplo, há alguns serviços para os quais você permitir conexões somente de localhost and that's it.
Vamos dar uma olhada em uma das caixas de Linux em minha rede. Por razões de segurança, vou trocar o endereço IP do mundo real com endereços IP reservados.

1. Primeiro vou identificar as portas TCP abertas no servidor:


root @ router: ~ # netstat-an
Active conexões com a Internet (servidores e estabelecidas)
Proto Recv-Q Send-Q Endereço local Endereço externo Estado
tcp 0 0 0.0.0.0:2601 0.0.0.0: * LISTEN
tcp 0 0 0.0.0.0:2605 0.0.0.0: * LISTEN
tcp 0 0 0.0.0.0:179 0.0.0.0: * LISTEN

Assim, temos as portas TCP 179, 2601 e 2605 escuta. Para mim, esses são muito bem conhecidos portos, mas se me esquecer deles, precisamos ver quais os serviços que abriu as portas:

root @ router: ~ # fuser-n tcp 2601 2605 179
2601/tcp: 1520
2605/tcp: 1521
179/tcp: 1521
root @ router: ~ # ps ax | grep-E "(1520 | 1521)"

Zebra é o Linux software de roteamento que sabe protocolos de roteamento como o BGP, OSPF, RIPv1 e RIPv2. Neste caso, eu uso zebra para conexões BGP. O processo bgpd é para fazer conexões BGP, eo processo de zebra é responsável por adicionar rotas recebidas de moradores no kernel do Linux.

  • Vamos identificar as versões:

root @ router: ~ # zebra-v
zebra versão 0,95 ()
Copyright 1996-2001, Kunihiro Ishiguro
root @ router: ~ # bgpd-v
versão bgpd 0,95 ()
Copyright 1996-2001, Kunihiro Ishiguro

As vulnerabilidades mais recentes para Zebra estavam na versão 0.93b, por isso não knownvulnerabilities aqui.
3. O próximo passo é configurar o software. Para Zebra, porta 2601 é a sua interface de linha de comando, que é muito semelhante a um roteador Cisco. O mesmo com o BGP para a porta 2605.

  • O roteador tem conexões BGP com 10.10.10.1, 10.10.11.13, e com 10.10.15.1. O que nós queremos fazer é negar o acesso a porta TCP 179, que é usado para conexões BGP, a ninguém, exceto aqueles endereços IP. Além disso, queremos duplicar a proteção que criamos com o software baseado em listas de acesso para a zebra e bgpd, e permitir somente localhost para se conectar à zebra e VTYs seu protocolo de roteamento.
  • 5. Uma vez que não temos conhecimento de vulnerabilidades de software, o que podemos fazer é testar e ver se as nossas obras de firewall:

root @ router: ~ # telnet 127.0.0.1 2601
Trying 127.0.0.1 ...
Connected to 127.0.0.1.
Escape character is'^]'.
Olá, este é zebra (versão 0,95).
Copyright 1996-2004 Kunihiro Ishiguro.
User Access Verification
Senha:
root @ router: ~ # telnet 127.0.0.1 2605
Trying 127.0.0.1 ...
Connected to 127.0.0.1.
Escape character is'^]'.
Olá, este é zebra (versão 0,95).
Copyright 1996-2004 Kunihiro Ishiguro.
User Access Verification
Senha:

ver se conseguimos fazer isso de outras localidades:

router-2: ~ # telnet 10.10.10.22 2601
Trying 10.10.10.22 ...
telnet: Unable to ligar a remote host: Connection refused
router-2: ~ # telnet 10.10.10.22 2605
Trying 10.10.10.22 ...
telnet: Unable to ligar a remote host: Connection refused

Bom! Não podemos ligar de qualquer lugar, exceto em localhost o CLI de zebra e bgpd. Agora, devemos tentar conectar na porta TCP 179 de um dos vizinhos BGP:

router-2: ~ # telnet 10.10.10.22 179
Trying 10.10.10.22 ...
Conectado a 10.10.10.22.
Escape character is'^]'.

um artigo submetido por Philip A Clare


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "Simple Network Management Protocol SNMP" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 499 users browsing the articles directory