Descubrimiento seguro de vecino de IPv6
RESUMEN El protocolo Secure Neighbor Discovery (SEND) para el tráfico IPv6 impide 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 al atacante tráfico destinado a otra persona, una técnica conocida como envenenamiento de ARP.
Descripción del descubrimiento seguro de vecino de IPv6
Una de las funciones del protocolo de descubrimiento de vecinos (NDP) IPv6 es resolver direcciones de capa de red (IP) a direcciones de capa de vínculo (por ejemplo, Ethernet), una función que realiza en IPv4 el Protocolo de resolución de direcciones (ARP). El protocolo Secure Neighbor Discovery (SEND) impide que un atacante que tenga 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 de ARP.
Para protegerse contra el envenenamiento por ARP y otros ataques contra las funciones de NDP, se debe implementar SEND donde evitar el acceso al segmento de difusión podría no ser posible.
SEND usa pares de claves RSA para producir direcciones generadas criptográficamente, como se define en RFC 3972, Direcciones generadas criptográficamente (CGA). Esto garantiza que el origen declarado de un mensaje NDP sea el propietario de la dirección reclamada.
Ejemplo: Configuración del descubrimiento de vecinos IPv6 seguro
En este ejemplo, se muestra cómo configurar la detección de vecino seguro (SEND) de IPv6.
Requisitos
En este ejemplo, se cumplen los siguientes requisitos:
Junos OS versión 9.3 o posterior
IPv6 implementado 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 seguros y no seguros del Protocolo de descubrimiento de vecinos (NDP). Para configurar SEND para aceptar solo mensajes NDP protegidos y para soltar los no seguros. especifique solo mensajes seguros.
Todos los nodos del segmento deben configurarse con SEND si se utiliza la opción secure-messages-only , que 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, es posible que se pierda 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, luego, copie y pegue los comandos en la CLI en el [edit]
nivel de 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
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en el modo de configuración en la Guía del usuario de CLI.
Para configurar un descubrimiento seguro de vecino de IPv6:
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 predeterminada de la clave es 1024.
[edit protocols neighbor-discovery secure] user@host# set cryptographic-address key-length 1024
(Opcional) Especifique la ruta de directorio del archivo de clave público-privado 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 hora para garantizar que no se vuelvan a reproducir las solicitudes y los mensajes de redirección.
[edit protocols neighbor-discovery secure] user@host# set timestamp
Resultados
Desde el modo de configuración, ingrese el comando para confirmar la show protocols
configuración. 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;
}
}
Si ha terminado de configurar el dispositivo , ingrese confirmación desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
Comprobar 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 . Las piezas clave de información que se muestran por este comando son la dirección IP, la dirección MAC (capa de vínculo) y la interfaz.
Rastreo de eventos de descubrimiento de vecinos
Propósito
Realice una validación adicional mediante el seguimiento de SEND.
Acción
Configure 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 pierde.