60 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 au- tenticacin 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 Configura- tion Protocol). Entre otras cosas, el estndar especifica como el protocolo de autenticacin (EAP, Extensible Authenti- cation Protocol) se encapsula en marcos Ethernet. EAP proporciona un marco de trabajo para varios mtodos de autenticacin que soportan ms que la combinacin puerto del switch del usuario. Esta tc- nica 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 (Au- tenticacin, 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-disponibili- dad utilizando proxies para Radius y L 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 servi- dor Freeradius es todo lo que necesita- mos 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 Pro- tocol) desde un servidor Linux suelen incluir la direccin IP y el gateway estn- dar para el usuario, pero el protocolo tiene ms potencial. Puede usar un servi- dor Radius para asignar una VLAN al 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 PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO PROHIBIDO EL PASO ADMINISTRACIN Radius y 802.1X 60 WWW. L I NUX- MAGAZI NE. ES o r i g i n a l
p h o t o :
w w w . s x c . h u Nmero 05 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 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 trmi- nos especiales: Un cliente que pide autenti- carse se conoce como Supli- cante. 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]. Variantes de EAP EAP define una variedad de mtodos de autenticacin. EAP/MD5 transfiere un hash con el nombre del usuario, su con- trasea y una cadena arbitraria. El servi- dor 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 dic- cionario. 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 necesi- tan certificados X.509. Este mtodo es muy seguro, pero implica tener un PKI (Public Key Infrastructure) en fun- cionamiento. Un tercer mtodo es PEAP, Protected Extensible Autentication Proto- col. Con PEAP, slo el servidor necesita un certificado para establecer una cone- xin TLS y enviar el nombre de usuario y la contrasea encriptados (MSCHAPv2, Microsoft Challenge Handshake Authen- tication 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, cerran- do las conexiones por ambos lados. Distribucin de Carga En redes slo cableadas, EAP/MD5 es a menudo la mejor opcin. Esto es todo lo que se necesita para asignar dinmica- mente 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 proto- colo 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. Necesita- mos introducir la direccin y la clave para el servidor Radius. En muchos casos, los administradores pueden con- figurar mltiples servidores para propor- cionar altos niveles de disponibilidad y ofrecer una solucin alternativa en caso de que el servidor principal caiga. 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 Freera- dius 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 configu- racin del servidor en /usr/local/etc/raddb. La primera cosa que Freeradius necesita hacer es permitir el acceso a los clientes Radius (en nues- 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 servi- dor Radius, el administrador necesita introducir la clave en el switch (esto es, probando123 en nuestro caso). Freera- dius aceptar la notacin CIDR (Class- less 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 prue- bas iniciales: usuarioprueba Auth-Type := Local, U User-Password == "contprueba" Reply-Message = "Hola, %u" 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 men- cionada, la lnea de comandos para com- probar clientes es la siguiente: radtest usuarioprueba contprueba localhost 0 probando123. Los tres ltimos parme- 61 WWW. L I NUX- MAGAZI NE. COM Radius y 802.1X ADMINISTRACIN 61 Nmero 05 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 auten- ticacin. 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 Open- LDAP por Dustin Doris en [6]. La docu- mentacin 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: Radius- LDAPv3.schema (que tambin est situa- do bajo el directorio de doc) no es estruc- tural, esto es, slo funciona en conjuncin con algn otro esquema, por ejemplo, inetorgperson.schema. En contraste a esto, el esquema de [6] est diseado especfi- camente 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 mapeado (ldap.attrmap) a nuestra con- figuracin 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 con- figuracin de usuario (ou = users), sim- plemente 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 confi- guracin 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 con- trasea 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 radius- ProfileDn 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 Con- figuration. Clientes Windows Hay un campo de Autenticacin en las propiedades de conexin a la red. Intro- duciendo EAP con el tipo requerido (MD5, PEAP o TLS) en este campo. Los usuarios pueden especificar cmo el sis- tema 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- tros hacen referencia al servidor Radius. Para permitir que esto funcione, necesita aadir localhost como un cliente Radius vlido a clients.conf. Freeradius respon- der con la salida Access-Accept. 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 per- mitir que esto ocurra, necesitaremos aadir la respuesta de Radius a la confi- guracin de prueba del usuario. Ntese que el valor que devuelve necesita estar separado por comas y sangrado con ca- racteres 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 Esto le dice al switch que asigne la VLAN 1 al usuarioprueba despus de autenticar al usuario. Los admi- ADMINISTRACIN Radius y 802.1X 62 Nmero 05 WWW. L I NUX- MAGAZI NE. ES 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. 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 Listado 1: Mapeando Atributos 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 Listado 3: Referencia VLAN cionales. Los usuarios tienen que especi- ficar 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 auten- ticacin avanzada. Sin embargo, en este caso el sistema utiliza una combinacin Dominio/Nom- bre de usuario. Si no estamos seguros, la variante exacta se registrar en los ficheros de log del servidor Radius despus del primer intento de registro. Para entender este formato, Radius nece- sita unos cuantos retoques. Para apren- der ms sobre este asunto, recomen- damos el libro sobre Radius disponible en [8]. Recin Llegados Los clientes de Microsoft 802.1X tienen un problema bsico. Primero se registran en su propio dominio y luego se autenti- can en la red. Pero la red no est disponible para los clientes mientras 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 con- traviene los principios bsicos de seguridad. Hay unos cuantas herra- mientas que resuelven este problema proporcionando suplicantes 802.1X pro- pios. Estos clientes apoyan una configuracin mucho ms granular - permi- tiendo que los clientes se integren en el proceso de registro del dominio. El proceso de registro entonces comienza con la autenticacin del usuario contra la red basada en 802.1X y llega a manejar el login normal de Windows. Sin embargo, algunos pro- gramas tienen una bsqueda inter- minable, as que hay probarlos antes de comprarlos. Clientes y Servidores basados en Linux Encontrar una herramienta software 802.1X madura para clientes Linux en [7]. Esta herramienta debera hacer ms fcil el acceso a ordenadores Linux a su red. El servidor Freeradius tiene una gran variedad de opciones para la autenti- cacin de usuarios y la configuracin de acceso basada en los requerimientos de 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. I Radius y 802.1X ADMINISTRACIN 63 Nmero 05 WWW. L I NUX- MAGAZI NE. ES Figura 3: Esta estructura de directorios LDAP contiene la administracin de usuarios y otros perfiles para la configu- racin de la VLAN. En cada perfil de usuario hay una entrada a radiusProfileDn que indica la correspondencia con el perfil de la VLAN. 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 2: LDIF para VLAN 2 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 10 password_attribute = userPassword 11 } 12 } 13 14 authorize { 15 preprocess 16 ldap 17 eap 18 suffix 19 files 20 } 21 authenticate { 22 eap 23 } Listado 4: Configuracin de Radius [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 Pri- vate Resources, by Jonathan Hassell; OReilly, 2002. RECURSOS Michael Schwartzkopff tra- baja para Multinet Services GmbH como consultor de seguridad y redes (especializado en SNMP). Se enganch a Linux en 1994 despus de trabajar con la dis- tribucin de Yggdrasil. E L A U T O R