Hace algo más de dos años que vimos como evolucionar nuestro VPMS inicial para el control de acceso a red, a un sistema basado en una asignación dinámica de VLANs en función del usuario. No obstante, no siempre es posible este tipo de autenticación ya que, por ejemplo, podemos encontrar dispositivos conectados a nuestra red como controles de acceso, teléfonos o impresoras que no dispongan de funcionalidad para su autenticación mediante 802.1x y, por lo tanto, debemos garantizar otro tipo de autenticación, siendo lo más habitual usar la autenticación MAB (MAC Authentication Bypass).
Al igual que vimos en la configuración inicial de nuestro VPMS, mediante la autenticación MAB nos volvemos a basar en la dirección MAC del cliente para proporcionar el acceso a la red (no en el usuario final) aunque, al estar integrado en un servidor Radius, nos da más potencia que la versión inicial de VPMS. No obstante, como todo, tiene sus ventajas e inconvenientes.
Para llevar a cabo nuestra configuración hacemos uso de los mismos dispositivos vistos en las entradas anteriores:
- Switch de acceso a la red (Cisco 2960) como Authenticator (172.18.0.200).
- Servidor Radius (Freeradius) como Authentication Server (172.17.2.23).
- Equipo de usuario (Microsoft Windows 10) como Supplicant.
Además de hacer uso de un teléfono IP Snom 300 para el cual habilitaremos la autenticación MAB (aunque el terminal disponga de soporte 802.1x).
Una vez tenemos claros los dispositivos, lo primero que vamos a hacer es preparar nuestro servidor Radius para que valide las dirección MAC de los dispositivos (Calling-Station-Id), concretamente del terminal IP. Para ellos realizamos las siguientes acciones, aunque es posible configurar la autenticación MAB de otras formas:
Configuramos el módulo que nos permitirá buscar las direcciones MAC, indicando el fichero donde vamos a guardar las direcciones y la clave de búsqueda:
files authorized_macs { key = "%{Calling-Station-Id}" usersfile = ${confdir}/authorized_macs compat = no }
Creamos el fichero de direcciones MAC autorizadas:
98-0c-82-b5-00-f2 Reply-Message = "Direccion MAC %{Calling-Station-Id} AUTORIZADA" 00-04-13-37-8d-cf
Como se puede ver, podemos configurar opciones independientes por dirección MAC, por ejemplo múltiples VLANs.
A continuación, indicamos en la configuración de autorización (recordemos la arquitectura AAA) que use ese módulo, por ejemplo, si no hay mensajes de autenticación EAP:
# If cleaning up the Calling-Station-Id... rewrite.calling_station_id if (!EAP-Message) { authorized_macs if (!ok) { reject } else { # accept update control { Auth-Type := Accept } } }
Dado que cada dispositivo puede enviar el Calling-Station-Id en un formato distinto (separación y agrupación), lo primero es hacer uso del método existente para reescribir el Calling-Station-Id.
Viendo el script anterior, podemos ver que no parece complicado usar ambas formas de autenticación a nivel de configuración del servidor Radius para validar tanto el dispositivo como el usuario final.
Una vez dada de alta la dirección MAC del teléfono IP, y teniendo preparada la configuración de nuestro servidor Radius, previamente a configurar el switch procedemos a validar que la dirección MAC está autorizada para conectar:
echo "Calling-Station-Id=00-04-13-37-8d-cf" | radclient 127.0.0.1:1812 auth password -x Sending Access-Request of id 104 to 127.0.0.1 port 1812 Calling-Station-Id = "00-04-13-37-8d-cf" rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=104, length=20
Como vemos, nos devuelve el mensaje de aceptación. También podemos verlo en la consola del servidor:
++} # policy rewrite.calling_station_id = updated ++? if (!EAP-Message) ? Evaluating !(EAP-Message) -> TRUE ++? if (!EAP-Message) -> TRUE ++if (!EAP-Message) { [authorized_macs] expand: %{Calling-Station-Id} -> 00-04-13-37-8d-cf [authorized_macs] users: Matched entry 00-04-13-37-8d-cf at line 3 +++[authorized_macs] = ok +++? if (!ok) ? Evaluating !(ok) -> FALSE +++? if (!ok) -> FALSE +++else else { ++++update control { ++++} # update control = noop +++} # else else = noop ++} # if (!EAP-Message) = ok +} # group authorize = updated Found Auth-Type = Accept Auth-Type = Accept, accepting the user Login OK: [000413378dcf/000413378dcf] (from client switch port 50003 cli 00-04-13-37-8d-cf) # Executing section post-auth from file /etc/freeradius/sites-enabled/default +group post-auth { ++[exec] = noop +} # group post-auth = noop Sending Access-Accept of id 226 to 172.18.0.200 port 1645 Finished request 1. Going to the next request Waking up in 4.9 seconds. Cleaning up request 1 ID 226 with timestamp +36 Ready to process requests.
Tras validar que ‘en local funciona’, y recordando de los post anteriores que tenemos configurada autenticación 802.1x en el puerto 1 de nuestro switch, procedemos a configurar de forma básica la autenticación MAB en el puerto 3:
interface FastEthernet0/3 switchport mode access dot1x mac-auth-bypass dot1x pae authenticator dot1x port-control auto dot1x violation-mode protect
Para finalizar, conectamos nuestro teléfono IP a la interfaz 3 del switch y comprobamos que su dirección MAC se autentica correctamente:
Dot1x Info for FastEthernet0/3 ----------------------------------- PAE = AUTHENTICATOR PortControl = AUTO ControlDirection = Both HostMode = SINGLE_HOST Violation Mode = PROTECT ReAuthentication = Disabled QuietPeriod = 60 ServerTimeout = 30 SuppTimeout = 30 ReAuthPeriod = 3600 (Locally configured) ReAuthMax = 2 MaxReq = 2 TxPeriod = 30 RateLimitPeriod = 0 Mac-Auth-Bypass = Enabled Inactivity Timeout = None Dot1x Authenticator Client List ------------------------------- Domain = DATA Supplicant = 0004.1337.8dcf Auth SM State = AUTHENTICATED Auth BEND SM State = IDLE Port Status = AUTHORIZED Authentication Method = MAB Authorized By = Authentication Server Vlan Policy = N/A
Lógicamente, esta es una pequeña aproximación a una posible solución final más robusta, cómoda y fácil de gestionar, pero añade una pequeña capa de seguridad adicional en nuestra organización. No obstante, como posibles mejoras de cara a esta solución final, se podrían encontrar por ejemplo:
- Asignación a unas direcciones MAC (por ejemplo teléfonos IP) a la VLAN de voz de nuestra red mediante las opciones vistas en los post anteriores.
- La posibilidad de definir OUI completos de fabricantes en lugar de usar direcciones MACs individuales, de forma que la gestión es más rápida y sencilla.
- Hacer uso de otras medidas de seguridad adicionales como podría ser Port-Security para los puertos que solo puedan tener configurada la autenticación MAB.
- Dependiendo de la versión de nuestro sistema operativo, hacer uso de distintos métodos de autenticación mediante el uso de prioridades, por ejemplo, primero tratar de autenticar la conexión mediante credenciales de usuario y disponer de un método secundario de autenticación MAB.
- Poder notificar de cambios y violaciones de la política de seguridad.
- Integrarse con una base de datos para disponer de una interfaz cómoda de administración.
- Implementar un sistema de autenticación de usuarios/dispositivos robusto, por ejemplo, añadiendo el uso de certificados a la solución.
- Posibilidad de obtener informes y estadísticas del acceso a la red.
solicito informacion en que fecha se puede presentar el examen de certificación CISSP, y el costo. La certificacion seria para dos personas.
Quedo pendiente de esta informacion