Você está na página 1de 4

ADMINISTRACIN Radius y 802.

1X

Acceso Seguro a Redes con 802.1X, Radius y LDAP

PROHIBIDO EL PASO
Normalmente, el protocolo Radius se utiliza para autenticar usuarios en escenarios dial-up. Pero Radius tambin es til en entornos LAN: en combinacin con 802.1X, Radius fuerza a los usuarios a autenticarse a bajo nivel antes de que el switch abra el puerto. BY MICHAEL SCHWARTZKOPFF BY MICHAEL SCHWARTZKOPFF

original photo: www.sxc.hu

os ataques desde la red interna son peligrosos y ms difciles de prevenir que los ataques externos. Un atacante que se conecte en una red interna con un porttil se beneficia de nuestro ancho de banda para el acceso a la red de datos. Una forma de prevenir un ataque es implementar una funcin de autenticacin en la Capa 2 del modelo OSI usando el protocolo 802.1X [1]. Un switch habilitado con 802.1X y un servidor Freeradius es todo lo que necesitamos para implementar la autenticacin en la Capa 2. Ya que la autenticacin de la Capa 2 opera en el nivel local, la red fsica, se evita que los intrusos utilicen la red fsica sin autenticarse. Las respuestas Radius (Remote Authentication Dial-in-User Service Protocol) desde un servidor Linux suelen incluir la direccin IP y el gateway estndar para el usuario, pero el protocolo tiene ms potencial. Puede usar un servidor Radius para asignar una VLAN al

puerto del switch del usuario. Esta tcnica evita la necesidad de una infraestructura compleja de router, pero sigue restringiendo el tamao del dominio de broadcast. Adems, las VLANs se pueden usar para separar departamentos de una compaa de manera lgica, mejorando la seguridad al mismo tiempo. Aunque los usuarios pueden conectarse desde cualquier sitio en el que se encuentren (desde el bar por ejemplo), siempre vern su propio entorno de red. El protocolo estndar 802.1X maneja la autenticacin y el servidor Freeradius se proporcionan los servicios AAA (Autenticacin, Autorizacin y Arqueo). El servidor Freeradius accede al directorio del servidor OpenLDAP para obtener informacin de las cuentas. El sistema completo est disponible tanto para clientes Linux como Windows. Soporta capas redundantes para alta-disponibilidad utilizando proxies para Radius y

replicacin de directorios para la base de datos LDAP. La solucin completa tambin puede aplicarse a la seguridad de la WLAN, y los administradores pueden beneficiarse de las opciones de contabilidad (arqueo, estadsticas.) del servidor Radius.

802.1X y EAP
El protocolo IEEE 802.1X proporciona control de acceso en la Capa 2 de OSI (la Capa MAC). IEEE 802.1X soporta la autenticacin de clientes mientras se establece la conexin a la red, antes de que al cliente se le asigne una direccin IP va DHCP (Dynamic Host Configuration Protocol). Entre otras cosas, el estndar especifica como el protocolo de autenticacin (EAP, Extensible Authentication Protocol) se encapsula en marcos Ethernet. EAP proporciona un marco de trabajo para varios mtodos de autenticacin que soportan ms que la combinacin

60

Nmero 05

WWW.LINUX- MAGAZINE.ES

Radius y 802.1X ADMINISTRACIN

normal de nombre de usuario y clave. EAP utiliza el Network Access Server (Autenticador) para abrir un tnel para la autenticacin del servidor a travs de la red. 802.1X define un nmero trminos especiales: Un cliente que pide autenticarse se conoce como Suplicante. El servidor que autentifica al cliente se conoce como Servidor de Autenticacin. El dispositivo intermediario entre estas dos entidades es el Network Authentication Server (NAS) o Autenticador. Este sistema funcionar en cualquier red que entregue paquetes Ethernet. El Interopnet Labs white paper proporciona una ayuda bastante til [1].

Figura 1: El protocolo 802.1X cubre varias capas. EAP maneja cambios entre el suplicante y el autenticador. Radius es el responsable de la ruta entre el autenticador y el servidor de autenticacin.

Variantes de EAP
EAP define una variedad de mtodos de autenticacin. EAP/MD5 transfiere un hash con el nombre del usuario, su contrasea y una cadena arbitraria. El servidor utiliza la clave en texto claro y la cadena arbitraria para generar su propio hash, el cual se compara con la hash entrante. Este mtodo es simple, pero no es seguro contra ataques tipo diccionario. Adems, en una wireless LAN, es imposible crear claves WEP dinmicas utilizando EAP/MD5. Por tanto, este mtodo slo est indicado para las pequeas redes cableadas. Con la segunda variante, EAP/TLS, tanto el servidor como el cliente necesitan certificados X.509. Este mtodo es muy seguro, pero implica tener un PKI (Public Key Infrastructure) en funcionamiento. Un tercer mtodo es PEAP, Protected Extensible Autentication Protocol. Con PEAP, slo el servidor necesita un certificado para establecer una conexin TLS y enviar el nombre de usuario y la contrasea encriptados (MSCHAPv2, Microsoft Challenge Handshake Authentication Protocol). Los administradores slo necesitan instalar el certificado del servidor en cada cliente. Cuando los clientes salen del sistema o cierran la conexin, PEAP detecta el cambio y finaliza la autorizacin, cerrando las conexiones por ambos lados.

que se necesita para asignar dinmicamente VLANs y, a diferencia de PEAP, es un protocolo soportado por una gran variedad de switches. Adems de esto, el complicado esfuerzo administrativo es mucho menor que con PEAP o EAP/ MD5. Un switch normalmente proporciona funcionalidad NAS, traduciendo el protocolo EAPOL (EAP sobre LAN) desde el suplicante a Radius, que es lo que el servidor de acceso espera. La mayora de los dispositivos le dan esta opcin cuando se configura 802.1X. Necesitamos introducir la direccin y la clave para el servidor Radius. En muchos casos, los administradores pueden configurar mltiples servidores para proporcionar altos niveles de disponibilidad y ofrecer una solucin alternativa en caso de que el servidor principal caiga.

tro caso, NAS). El fichero clients.conf se encarga de esto. La configuracin para un switch con direccin esttica 192.168.200.20 podra ser como sta, por ejemplo:
client 192.168.200.20 { secret = probando123 shortname = switch }

Cuando estemos configurando el servidor Radius, el administrador necesita introducir la clave en el switch (esto es, probando123 en nuestro caso). Freeradius aceptar la notacin CIDR (Classless Inter-Domain Routing) para redes completas: 192.168.200.0/24.

Autenticacin de Usuarios
El fichero users especifica el tipo de autenticacin del usuario. La siguiente entrada debera ser vlida para las pruebas iniciales:
usuarioprueba Auth-Type := Local, U User-Password == "contprueba" Reply-Message = "Hola, %u"

Freeradius
Freeradius [4] es una buena opcin a la hora de escoger un servidor Radius. La versin 1.0 aade soporte para un gran nmero de EAPs y muy especialmente para PEAP. Los desarrolladores han introducido una opcin para autenticarse en los dominios de Windows. Y Freeradius puede recuperar datos de cuenta desde fuentes tpicas /etc/passwd, LDAP, MySQL, PostgreSQL o bases de datos Oracle. La instalacin es muy simple y sigue los tres pasos de siempre: configure && make && make install. Si todo va bien, debera poner los ficheros de configuracin del servidor en /usr/local/etc/raddb. La primera cosa que Freeradius necesita hacer es permitir el acceso a los clientes Radius (en nues-

Distribucin de Carga
En redes slo cableadas, EAP/MD5 es a menudo la mejor opcin. Esto es todo lo

Inicialmente querr ejecutar el servidor Radius en modo debug. radiusd -X le dice al servidor que muestre por consola los mensajes de error y las advertencias. El programa de la lnea de comandos radtest proporciona una herramienta til de comprobacin de clientes que puede ayudarle a probar su configuracin. Suponiendo la configuracin mencionada, la lnea de comandos para comprobar clientes es la siguiente: radtest usuarioprueba contprueba localhost 0 probando123. Los tres ltimos parme-

WWW.LINUX-MAGAZINE.COM

Nmero 05

61

ADMINISTRACIN Radius y 802.1X

Figura 2: Los clientes nuevos primero tienen que autenticarse contra el NAS (esto es: el switch). El switch acta como un proxy al servidor Radius, el cual en devuelve el acceso al directorio LDAP para comprobar las credenciales del usuario.

tros hacen referencia al servidor Radius. Para permitir que esto funcione, necesita aadir localhost como un cliente Radius vlido a clients.conf. Freeradius responder con la salida Access-Accept.

nistradores pueden aadir manualmente la configuracin para el resto de los usuarios. Lgicamente, este mtodo es impracticable en grandes redes.

OpenLDAP
OpenLDAP [5] es una buena opcin como respaldo para Freeradius (ver Figura 2). Encontrar un buen HOWTO con la combinacin Freeradius y OpenLDAP por Dustin Doris en [6]. La documentacin de Freeradius tambin tiene un ejemplo en un documento de texto denominado doc/rlm_ldap. Sin embargo, hay un problema con la configuracin conjunta con LDAP: RadiusLDAPv3.schema (que tambin est situado bajo el directorio de doc) no es estructural, esto es, slo funciona en conjuncin con algn otro esquema, por ejemplo, inetorgperson.schema. En contraste a esto, el esquema de [6] est diseado especficamente para usarlo con Radius, pero no entiende el tipo de extensiones necesarias para las operaciones diarias. Para permitir a Freeradius que entienda las respuesta relacionadas con lo que devuelve la VLAN por la base de datos LDAP, tenemos que aadir

VLAN en la Respuesta
Por supuesto que el protocolo Radius puede dar ms que un simple mensaje como respuesta. Puede darle el nmero de una VLAN, por ejemplo, permitiendo al switch evaluar el nmero y aceptar los clientes en la VLAN requerida. Para permitir que esto ocurra, necesitaremos aadir la respuesta de Radius a la configuracin de prueba del usuario. Ntese que el valor que devuelve necesita estar separado por comas y sangrado con caracteres de espacios.
usuarioprueba Auth-Type := Local, U User-Password == "contprueba" Reply-Message = "Hola, %u", Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 1, Tunnel-Type = VLAN

mapeado (ldap.attrmap) a nuestra configuracin de Radius (Listado 1). La Figura 3 muestra la estructura del directorio LDAP. El perfil (ou = profiles) contiene las configuraciones de la VLAN. El Listado 2 nos da el fichero LDIF para uid = vlan_02 (ver lnea 1). Para la configuracin de usuario (ou = users), simplemente necesitaremos una referencia al perfil con el que se corresponde en la VLAN (Listado 3, lnea 6). Ahora, el servidor Radius slo necesitar saber que puede acceder a LDAP para la gestin de usuarios. El fichero de configuracin radiusd.conf se encarga de esto. El ejemplo del Listado 4 le dice a Radius que se registre en el servidor LDAP, ldap.domain.de, (lnea 3) con la identidad identity configurada y la contrasea password (lneas 4 y 5) y para autenticar usando el filtro filter con el atributo de contrasea password_attribute (lneas 7 y 10). Si esto funciona, el servidor LDAP devolver el parmetro en el perfil correspondiente (mapeado como radiusProfileDn para el usuario). Una nueva entrada DEFAULT en la gestin de usuario de Radius (fichero:users) se asegura de que se intente la autenticacin utilizando EAP:
DEFAULT Auth-Type == EAP Fall-Through = yes

An necesitaremos preparar a los clientes para la autenticacin 802.1X. El Proyecto Open 1X de [7] ha desarrollado software para Linux para manejar esto. Windows 2000 SP4 y WinXP SP1 tienen funciones de autenticacin nativas para este propsito. Adems Windows 2000 necesita lanzar el servicio Wireless Configuration.

Esto le dice al switch que asigne la VLAN 1 al usuarioprueba despus de autenticar al usuario. Los admi-

Clientes Windows
Hay un campo de Autenticacin en las propiedades de conexin a la red. Introduciendo EAP con el tipo requerido (MD5, PEAP o TLS) en este campo. Los usuarios pueden especificar cmo el sistema responder si las credenciales de un usuario no estn disponibles, que es el caso de antes de hacer login. Si selecciona esta opcin, el ordenador intentar registrarse en la red utilizando su nombre de cliente. En contraste a la opcin EAP/MD5, PEAP y TLS proporcionan opciones adi-

Listado 3: Referencia VLAN Listado 1: Mapeando Atributos


01 r e p l y I t e m T u n n e l - T y p e radiusTunnelType 02 replyItem Tunnel-Medium-Type radiusTunnelMediumType 03 replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId 01 dn:uid=testuser2,ou=users, ou=radius,dc=domain,dc=de 02 uid: testuser2 03 userPassword: password 04 objectClass: radiusprofile 05 objectClass: top 06 radiusProfileDn: uid=vlan_02,ou=profiles,ou=rad ius,dc=domain,dc=de

62

Nmero 05

WWW.LINUX- MAGAZINE.ES

Radius y 802.1X ADMINISTRACIN

Listado 2: LDIF para VLAN 2


01 dn:uid=vlan_02,ou=profiles, ou=radius,dc=domain,dc=de 02 uid: vlan_02 03 radiusTunnelMediumType:IEEE-80 2 04 radiusTunnelType: VLAN 05 radiusTunnelPrivateGroupId: 2 06 objectClass: radiusprofile 07 objectClass: top

Listado 4: Configuracin de Radius


01 modules { 02 ldap { 03 server = "ldap.domain.de" 04 identity = "cn=freeradius,ou=admins,ou=ra dius,dc=domain,dc=de" 05 password = secret 06 basedn = "ou=users,ou=radius,dc=domain, dc=de" 07 filter = "(&(uid=%{Stripped-User-Name:%{User-Name}})(objectclass = radiusprofile))" 08 start_tls = no 09 dictionary_mapping =${raddbdir}/ldap.attrmap password_attribute = userPassword 11 } 12 } 13 14 authorize { 15 preprocess 16 ldap 17 eap 18 suffix 19 files 20 } 21 authenticate { 22 eap 23 } 10

intenten registrarse en el dominio. Esto ocasiona el fallo del intento de registro. El servidor de dominio necesitar estar en una VLAN abierta y estndar para permitir a los suplicantes de Windows funcionar, pero esto contraviene los principios bsicos de seguridad. Hay unos cuantas herramientas que resuelven este problema proporcionando suplicantes 802.1X propios. Estos clientes apoyan una configuracin mucho ms granular - permitiendo que los clientes se integren en el proceso de registro del dominio. El proceso de registro entonces comienza con la Figura 3: Esta estructura de directorios LDAP contiene la autenticacin del usuario administracin de usuarios y otros perfiles para la configucontra la red basada en racin de la VLAN. En cada perfil de usuario hay una entrada 802.1X y llega a manejar el a radiusProfileDn que indica la correspondencia con el perfil login normal de Windows. de la VLAN. Sin embargo, algunos programas tienen una bsqueda intervariante exacta se registrar en los minable, as que hay probarlos antes de ficheros de log del servidor Radius comprarlos. despus del primer intento de registro. Para entender este formato, Radius neceClientes y Servidores sita unos cuantos retoques. Para aprenbasados en Linux der ms sobre este asunto, recomendamos el libro sobre Radius disponible Encontrar una herramienta software en [8]. 802.1X madura para clientes Linux en [7]. Esta herramienta debera hacer ms Recin Llegados fcil el acceso a ordenadores Linux a su red. Los clientes de Microsoft 802.1X tienen El servidor Freeradius tiene una gran un problema bsico. Primero se registran variedad de opciones para la autentien su propio dominio y luego se autenticacin de usuarios y la configuracin de can en la red. Pero la red no est acceso basada en los requerimientos de disponible para los clientes mientras

cionales. Los usuarios tienen que especificar el certificado CA que los clientes deberan de aceptar. Windows tambin puede usar el nombre de la cuenta y la contrasea desde el login de Windows para la autenticacin PEAP. Esta entrada est localizada en las opciones de autenticacin avanzada. Sin embargo, en este caso el sistema utiliza una combinacin Dominio/Nombre de usuario. Si no estamos seguros, la

su red. El ejemplo que hemos visto en este artculo es tan slo una de muchas posibles configuraciones. Ya que esta configuracin utiliza un servicio de directorio para la gestin de usuarios, los diseos de seguridad tambin estn disponibles para redes de gran escala donde el peligro de ataques internos es particularmente severo. s

RECURSOS
[1] Interopnet Labs, Qu es 802.1X?: http://www.ilabs.interop.net/ WLANSec/What_is_8021x-lv03.pdf [2] Freeradius y Windows XP: http://text. broadbandreports.com/forum/ remark,9286052~mode=flat [3] TinyCA: http://tinyca.sm-zone.net [4] Freeradius: http://www.freeradius.org [5] OpenLDAP: http://www.openldap.org [6] Freeradius y OpenLDAP:http://doris. cc/radius/ [7] Cdigo abierto de la implementacin de 802.1X: http://www.open1x.org [8] Radius - Securing Public Access to Private Resources, by Jonathan Hassell; OReilly, 2002.

Michael Schwartzkopff trabaja para Multinet Services GmbH como consultor de seguridad y redes (especializado en SNMP). Se enganch a Linux en 1994 despus de trabajar con la distribucin de Yggdrasil.

EL AUTOR

WWW.LINUX- MAGAZINE.ES

Nmero 05

63