Detección segura de vecinos IPv6
El protocolo Secure Neighbor Discovery (SEND) para el tráfico IPv6 evita que un atacante que tiene acceso al segmento de difusión abuse de NDP o ARP para engañar a los hosts para que envíen el tráfico del atacante destinado a otra persona, una técnica conocida como envenenamiento ARP.
Descripción de Secure IPv6 Neighbor Discovery
Una de las funciones del Protocolo de descubrimiento de vecinos (NDP) IPv6 es resolver direcciones de capa de red (IP) para vincular direcciones de capa (por ejemplo, Ethernet), una función realizada en IPv4 por el Protocolo de resolución de direcciones (ARP). El protocolo Secure Neighbor Discovery (SEND) evita que un atacante que tiene acceso al segmento de difusión abuse de NDP o ARP para engañar a los hosts y que envíen el tráfico del atacante destinado a otra persona, una técnica conocida como envenenamiento ARP.
Para protegerse contra el envenenamiento por ARP y otros ataques contra las funciones NDP, SEND debe desplegarse donde no sea posible impedir el acceso al segmento de transmisión.
SEND utiliza pares de claves RSA para producir direcciones generadas criptográficamente, tal como se define en RFC 3972, Direcciones generadas criptográficamente (CGA). Esto garantiza que la fuente reclamada de un mensaje NDP sea el propietario de la dirección reclamada.
Ejemplo: Configuración de Secure IPv6 Neighbor Discovery
En este ejemplo se muestra cómo configurar IPv6 Secure Neighbor Discovery (SEND).
Requisitos
Este ejemplo tiene los siguientes requisitos:
Junos OS versión 9.3 o posterior
IPv6 desplegado en su red
Si aún no lo ha hecho, debe generar o instalar un par de claves RSA.
Para generar un nuevo par de claves RSA, escriba el siguiente comando:
user@host> request security pki generate-key-pair type rsa certificate-id certificate-id-name size size
Visión general
Para configurar SEND, incluya las siguientes instrucciones:
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 el valor predeterminado para enviar y recibir paquetes del Protocolo de detección de vecinos (NDP) seguros y no seguros. Para configurar SEND para que acepte solo mensajes NDP protegidos y descarte los no seguros. Especifique solo mensajes seguros.
Todos los nodos del segmento deben configurarse con SEND si se utiliza la opción de solo mensajes seguros , lo cual se recomienda a menos que solo un pequeño subconjunto de dispositivos requiera una mayor protección. Si no se configura SEND para todos los nodos, se puede perder la conectividad.
Topología
Configuración
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, a continuación, copie y pegue los comandos en la CLI en el nivel de [edit]
jerarquía.
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
Procedimiento paso a paso
En el ejemplo siguiente es necesario navegar por varios niveles en la jerarquía de configuración. Para obtener información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en modo de configuración en la Guía del usuario de CLI.
Para configurar un descubrimiento de vecino IPv6 seguro:
Configure el nivel de seguridad.
[edit protocols neighbor-discovery secure] user@host# set security-level secure-messages-only
(Opcional) Habilite la longitud de la clave.
La longitud de clave predeterminada es 1024.
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(Opcional) Especifique la ruta de acceso al directorio del archivo de clave pública y privada generado para la dirección criptográfica.
La ubicación predeterminada del archivo es el directorio /var/etc/rsa_key .
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-pair /var/etc/rsa_key
(Opcional) Configure una marca de tiempo para asegurarse de que los mensajes de solicitud y redirección no se reproducen.
[edit protocols neighbor-discovery secure] user@host# set timestamp
Resultados
Desde el modo de configuración, confirme la configuración introduciendo el show protocols
comando. Si el resultado no muestra la configuración deseada, repita las instrucciones de configuración en este ejemplo para corregirla.
user@host# show protocols
neighbor-discovery {
secure {
security-level {
secure-messages-only;
}
cryptographic-address {
key-length 1024;
key-pair /var/etc/rsa_key;
}
timestamp;
}
}
Cuando haya terminado de configurar el dispositivo, escriba confirmar desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
Comprobación de la caché de vecinos IPv6
Propósito
Muestra información sobre los vecinos IPv6.
Acción
Desde el modo operativo, ingrese el show ipv6 neighbors
comando.
Significado
En IPv6, el Protocolo de resolución de direcciones (ARP) ha sido reemplazado por el NDP. El comando show arp
IPv4 se sustituye por el comando show ipv6 neighbors
IPv6 . Los elementos clave de información que muestra este comando son la dirección IP, la dirección MAC (capa de vínculo) y la interfaz.
Rastrear eventos de Neighbor Discovery
Propósito
Realice una validación adicional mediante el seguimiento de SEND.
Acción
Configurar operaciones de seguimiento.
[edit protocols neighbor-discovery secure] user@host# set traceoptions file send-log user@host# set traceoptions flag all
Ejecute el
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
El resultado muestra que, dado que el paquete no tiene una dirección generada criptográficamente, el paquete se descarta.