Se puede configurar cuántas y cuáles direcciones mac son permitidas para que entren en el puerto y se añadan a la tabla mac.
Cuando limitamos el número máximo de macs que puede recibir por ese puerto, si se supera este límite, el tráfico de esa mac que ya supera el límite será descartado. Esto se hace para evitar el flooding o ataque por inundación. Dependiendo del entorno, nos interesará limitar un número u otro. Por ejemplo, en entornos donde hay VoIP tendremos que limitar a dos direcciones mac por puerto.
El otro método es configurar manualmente las direcciones mac que son permitidas. Esto deshabilita el aprendizaje dinámico. Deniega todo el tráfico que no tenga esa fuente de origen.
También se puede monitorizar la mac y decirle el número de veces que esa dirección mac se ha movido de un puerto a otro en la misma vlan. Esto también previene el "mac spoofing" y los bucles.
Sin embargo, aquí se configura por VLAN y no por interfaz. Una vez habilitado, el switch comprueba las veces que se ha movido la mac a una interfaz nueva y, si el número de veces en un segundo es superior a lo configurado, llevará a cabo la acción que nosotros definamos.
Tenemos 4 acciones a la hora de aplicar cualquier tipo de protección:
None: no hace nada.
Drop: descarta las tramas y genera una alarma, un log o un aviso SNMP. Es la opción por defecto.
Log: no descarta la trama pero genera un log.
Shutdown: deshabilita el puerto, bloquea el tráfico y genera un log.
AUTORECOVERY
Cuando un puerto se queda en "port-error-disable" por una acción de seguridad, ese puerto no volverá a estar activo a no ser que limpiemos el error.
Para hacerlo manualmente:
#clear ethernet-switching port-error interface X
También tenemos la opción para que nos limpie el error pasado un intervalo de tiempo configurable. Esto es el "Autorecovery". Está deshabilitado por defecto. El intervalo de tiempo que podemos configurar va de 10 a 3600 segundos.
Para que el switch lo haga automáticamente:
#set ethernet-switching-options port-error-disable disable-timeout X
CONFIGURACIÓN DEL LÍMITE DE MACS
Podemos usar la opción "none" para habilitar interfaces individuales cuando hemos aplicado la configuración para todas las interfaces (interface all):
Juniper siempre va a dar preferencia a la configuración de las interfaces individuales sobre las configuraciones globales cuando haya conflicto.
Para comprobar y limpiar:
También podemos usar la opción "Persistent Mac Learning". Se trata de configurar un número máximo de direcciones mac que vamos a permitir que envíen y reciban tráfico desde el momento que conectamos el o los dispositivos en el puerto del switch. Una vez llegado al número máximo que hemos configurado, el switch no aprenderá más direcciones mac por ese puerto.
Esta opción viene deshabilitada por defecto.
Incluso si reiniciamos el switch o deshabilitamos la interfaz, las direcciones aprendidas se quedan grabadas.
Si queremos conectar otro dispositivo o si desconectamos el que tenemos y lo conectamos a otro puerto, tendremos que hacer una limpieza de la tabla mac porque si no, no nos daría conectividad.
#clear ethernet-switching table persistent-mac
Existen una serie de reglas para configurar esta opción:
- Las interfaces tienen que estar en modo acceso
- No se puede habilitar en interfaces que pertenezcan a un troncal redundante
- No se puede habilitar en interfaces que tengan configurado autenticación 802.1x
- No se puede habilitar en interfaces que tengan habilitado el "no-mac-learning"
Para configurarlo:
#set ethernet-switching-options secure-access-port interface X persistent-learning
Comprobamos la tabla:
Aprendizaje Estático de Direcciones Mac (static learning o sticky)
Otra manera de aportar seguridad a través de las direcciones mac es configurar manualmente la dirección o direcciones mac que vamos a permitir que envíen y reciban tráfico en ese puerto del switch.
Antes de configurarlo debemos asegurarnos que la VLAN está creada:
#set ethernet-switching-options static vlan X mac X next-hop interface X
DHCP (DYNAMIC HOST CONFIGURATION PROTOCOL)
Este protocolo asigna direcciones ip (y se le pueden añadir más campos como DNS, Puerta de Enlace, etc) a los clientes que lo soliciten, normalmente pc's.
El proceso de comunicación del protocolo es el siguiente:
Como vemos son 4 pasos que siempre inicia el cliente.
DHCP expone nuestra red a riesgos de seguridad puesto que si alguien conecta un servidor DHCP a nuestra red, podría reemplazar al corporativo y tomar el control de las asignaciones o lanzar ataques DoS. A este equipo se le llamaría "Rogue DHCP".
Para evitar este compromiso de la red utilizamos "DHCP Snooping". Con esta opción lo que hacemos es mantener una base de datos de las asignaciones que ha hecho el servidor (mac-dirección ip-vlan). También inspecciona los paquetes que vienen de los "puertos no confiables", es decir, los puertos de acceso. A los troncales no les inspecciona. Esto es el comportamiento por defecto.
Cuando un cliente envía un DHCPRELEASE, el servidor DHCP desasocia la ip, la mac y la vlan de las asignaciones. También el servidor controla los intervalos de tiempo de la concesión de la dirección ip, la purga y la caducidad de las entradas. El snooping solo ocurre cuando hay entradas asociadas a la interfaz. Si no hay asociación no se ejecuta, al igual que si el dispositivo tiene una ip fija configurada.
OPCIÓN 82 DEL DHCP
El dhcp snooping también incluye soporte a la opción 82, el "Relay Agent". Esta característica ayuda a evitar ataques de "spoofing" y de "exhaustion" (cuando se llena la base de datos de entradas y tiene que forzar una limpia).
Cuando un cliente está conectado a un puerto no confiable (untrusted), el switch reenvía el "dhcprequest" con información del cliente insertada en la cabecera. Cuando la petición llega al Servidor DHCP, usa estos datos de la opción 82 para asignar y devuelve la trama con la misma opción 82. Cuando llega al switch, este quita la opción 82 y le envía la trama al cliente. Se puede configurar para vlan, interfaces normales y también para RVI's (Vlan Interfaces).
Hay que asegurarse que el Servidor DHCP soporta la opción 82. Si no, el servidor no la usará y cuando vuelve la petición desde el servidor DHCP al switch, este último la descartaría.
En los equipos EX la implementación de la opción 82 añade 3 campos:
- Circuit-Id
- Remote-Id
- Vendor-Id
Con el Relay Agent los flujos cambian un poco |
Para configurar DHCP Snooping:
Cuando reiniciamos el switch se pierden las asociaciones (binding) que tenga. Si queremos que no suceda esto, hay que configurarlo:
#set ethernet-switching-options secure-access-port dhcp-snooping-file location /.....
#set ethernet-switching-options secure-access-port dhcp-snooping-file write-interval X
Monitorizamos:
Para ver las asociaciones:
> show dhcp snooping binding
Para limpiar las asociaciones:
> clear dhcp snooping binding - limpia todas las entradas
> clear dhcp snooping binding vlan X - limpia todas las entradas para la Vlan que sea
> clear dhcp snooping binding vlan X mac X - limpia una entrada específica
Vemos como desaparece la entrada de la base de datos |
Cuando añadimos una entrada estática y comprobamos la tabla |
ARP - ADDRESS RESOLUTION PROTOCOL
Este protocolo hace asociaciones entre direcciones ip y direcciones mac, por lo tanto, es un protocolo de capa 3. Los equipos de comunicaciones mantienen una tabla de estas asociaciones, la tabla ARP.
"show arp" para mostrar la tabla |
ARP Spoofing:
También llamado ARP Poisoning. Este ataque de seguridad es usado por "the man in the middle" (el hombre de en medio). El atacante sustituye la dirección mac de un dispositivo de comunicaciones como un Gateway (Puerta de enlace) o un servidor. El resultado es que el tráfico se dirige hacia el equipo del atacante que ha sustituido la mac.
El tráfico es desviado hacia el atacante |
DAI - Dynamic ARP Inspection:
Sirve para protegernos de ataques ARP Spoofing. El DAI inspecciona todos los paquetes que entren en un puerto no confiable (untrusted port) y los valida comparando con la base de datos del DHCP Snooping. Si no existe la asociación mac-ip en la base de datos o si la dirección ip no coincide, el equipo descartará los paquetes.
Al depender de la base de datos del DHCP Snooping, este tiene que estar habilitado, obviamente.
Los puertos de acceso son no confiables por defecto. Los trunk son confiables y el DAI no inspecciona en los puertos confiables (trusted ports).
Para hacer un puerto confiable:
#set ethernet-switching-options secure-access-port interface ge-0/0/0.0 dhcp-trusted
En los switches EX, el DAI viene deshabilitado por defecto. Para habilitar DAI, lo hacemos por VLAN y no por puertos.
Los paquetes a inspeccionar son enviados a la RE, por lo que para prevenir una sobrecarga de la CPU, JunOS limita el número de paquetes destinados a la RE.
Para configurar DAI:
DAI se configura por VLAN. En el ejemplo todos los puertos están en la de por defecto |
Si quisiéramos habilitar DAI para dispositivos que no soportan DHCP, tenemos que definir una entrada estática en la base de datos del DHCP Snooping. Por ejemplo:
Para monitorizar el DAI:
IP ADDRESS SPOOFING
Un usuario puede cambiar su ip y crear problemas de seguridad. Es difícil encontrar al atacante. Para ello tenemos una opción de seguridad en los switches que podemos habilitar:
Ip Source Guard:
Cuando tenemos habilitado el "ip source guard", el switch inspecciona los paquetes y si no coincide con la información de la base de datos del DHCP Snooping, descartará los paquetes.
Ip Source Guard construye su porpia tabla y la compara con la de la base de datos del DHCP Snooping.
Ip Source Guard se configura por VLAN |
Si quisiéramos habilitar Ip Source Guard para dispositivos que no soportan DHCP, tenemos que definir una entrada estática en la base de datos del DHCP Snooping. Por ejemplo:
Usar "no-ip-source-guard" y "no-examine-dhcp" para deshabilitarlo |
Para monitorizar:
Capítulo 5: Device Security and Firewall Filters
No hay comentarios:
Publicar un comentario