Descoberta segura do vizinho IPv6
RESUMO O protocolo Secure Neighbor Discovery (SEND) para tráfego IPv6 impede que um invasor que tem acesso ao segmento de broadcast abuse do NDP ou ARP para enganar os hosts para enviar o tráfego de invasor destinado a outra pessoa, uma técnica conhecida como envenenamento por ARP.
Entendendo o Secure IPv6 Neighbor Discovery
Uma das funções do IPv6 Neighbor Discovery Protocol (NDP) é resolver endereços de camada de rede (IP) para endereços de camada de enlace (por exemplo, Ethernet), uma função realizada no IPv4 pelo Protocolo de Resolução de Endereços (ARP). O protocolo Secure Neighbor Discovery (SEND) impede que um invasor que tenha acesso ao segmento de broadcast abuse do NDP ou ARP para enganar os hosts para enviar o tráfego de invasor destinado a outra pessoa, uma técnica conhecida como envenenamento por ARP.
Para se proteger contra intoxicação por ARP e outros ataques contra funções ndp, o SEND deve ser implantado onde a prevenção do acesso ao segmento de broadcast pode não ser possível.
O SEND usa pares de chave RSA para produzir endereços gerados criptograficamente, conforme definido no RFC 3972, endereços criptograficamente gerados (CGA). Isso garante que a fonte reivindicada de uma mensagem NDP seja o proprietário do endereço reivindicado.
Exemplo: configuração da descoberta segura do vizinho IPv6
Este exemplo mostra como configurar o IPv6 Secure Neighbor Discovery (SEND).
Requisitos
Este exemplo tem os seguintes requisitos:
Versão 9.3 ou posterior do Junos OS
IPv6 implantado em sua rede
Caso ainda não tenha feito isso, você deve gerar ou instalar um par de chave RSA.
Para gerar um novo par de chave RSA, insira o seguinte comando:
user@host> request security pki generate-key-pair type rsa certificate-id certificate-id-name size size
Visão geral
Para configurar o SEND, inclua as seguintes declarações:
protocols { neighbor-discovery { onlink-subnet-only; secure { security-level { (default | secure-messages-only); } cryptographic-address { key-length number; key-pair pathname; } timestamp { clock-drift number; known-peer-window seconds; new-peer-window seconds; } traceoptions { file filename <files number> <match regular-expression> <size size> <world-readable | no-world-readable>; flag flag; no-remote-trace; } } } }
Especifique o padrão para enviar e receber pacotes seguros e não seguros do Neighbor Discovery Protocol (NDP). Configurar o SEND para aceitar apenas mensagens NDP seguras e soltar as não seguras. especifique apenas mensagens seguras.
Todos os nós do segmento precisam ser configurados com SEND se a opção somente de mensagens seguras for usada, o que é recomendado a menos que apenas um pequeno subconjunto de dispositivos exija maior proteção. A falha na configuração do SEND para todos os nós pode resultar em perda de conectividade.
Topologia
Configuração
Procedimento
Configuração rápida da CLI
Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit]
hierarquia.
set protocols neighbor-discovery secure security-level secure-messages-only set protocols neighbor-discovery secure cryptographic-address key-length 1024 set protocols neighbor-discovery secure cryptographic-address key-pair /var/etc/rsa_key set protocols neighbor-discovery secure timestamp
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar uma descoberta segura de vizinhos IPv6:
Configure o nível de segurança.
[edit protocols neighbor-discovery secure] user@host# set security-level secure-messages-only
(Opcional) Habilite o comprimento da chave.
O comprimento padrão da chave é 1024.
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(Opcional) Especifique o caminho de diretório do arquivo chave público-privado gerado para o endereço criptográfico.
A localização padrão do arquivo é o diretório /var/etc/rsa_key .
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-pair /var/etc/rsa_key
(Opcional) Configure um temporizador para garantir que as mensagens de solicitação e redirecionamento não sejam reproduzidas.
[edit protocols neighbor-discovery secure] user@host# set timestamp
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show protocols
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
user@host# show protocols
neighbor-discovery {
secure {
security-level {
secure-messages-only;
}
cryptographic-address {
key-length 1024;
key-pair /var/etc/rsa_key;
}
timestamp;
}
}
Se você terminar de configurar o dispositivo, insira o commit a partir do modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificando o cache de vizinhos IPv6
Propósito
Exibir informações sobre os vizinhos IPv6.
Ação
A partir do modo operacional, entre no show ipv6 neighbors
comando.
Significado
No IPv6, o Protocolo de Resolução de Endereços (ARP) foi substituído pelo NDP. O comando show arp
IPv4 é substituído pelo comando show ipv6 neighbors
IPv6. As principais informações exibidas por este comando são o endereço IP, o endereço MAC (Link Layer) e a interface.
Rastreamento de eventos de descoberta de vizinhos
Propósito
Realize uma validação adicional rastreando o SEND.
Ação
Configure operações de rastreamento.
[edit protocols neighbor-discovery secure] user@host# set traceoptions file send-log user@host# set traceoptions flag all
Execute o
show log
comando.user@host> show log send-log Apr 11 06:21:26 proto: outgoing pkt on idx 68 does not have CGA (fe80::2a0:a514:0:14c), dropping pkt Apr 11 06:26:44 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 70 with offset 40 Apr 11 06:26:44 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Apr 11 06:26:44 cga: snd_is_lcl_cga: BEFORE overriding cc, cc:0, ws->col:0 Apr 11 06:26:44 proto: outgoing pkt on idx 70 does not have CGA (fe80::2a0:a514:0:24c), dropping pkt Apr 11 06:26:47 proto: sendd_msg_handler: recv outgoing 96 bytes on idx 68 with offset 40 Apr 11 06:26:47 dbg: sendd_proto_handler: Modifier (16) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Significado
A saída mostra que, como o pacote não tem um endereço gerado criptograficamente, o pacote é descartado.