awnas

118
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES Y DE TELECOMUNICACIÓN Titulación : INGENIERO DE TELECOMUNICACIÓN Título del proyecto: SERVIDOR AVANZADO DE AUTENTICACIÓN Y GESTIÓN DE REDES INALÁMBRICAS Santi Baztan Ancin TUTOR: Eduardo Magaña Lizarrondo Pamplona, 24 de Septiembre de 2004

Upload: gondor34

Post on 24-Nov-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

  • ESCUELA TCNICA SUPERIOR DE INGENIEROS

    INDUSTRIALES Y DE TELECOMUNICACIN

    Titulacin :

    INGENIERO DE TELECOMUNICACIN

    Ttulo del proyecto:

    SERVIDOR AVANZADO DE AUTENTICACIN Y GESTIN

    DE REDES INALMBRICAS

    Santi Baztan Ancin

    TUTOR: Eduardo Magaa Lizarrondo

    Pamplona, 24 de Septiembre de 2004

  • Quiero dar las gracias tod@s aqull@s que me han apoyado en la realizacin de este proyecto. Especialmente a Eduardo, colegas del garito

    interior, Ainhoa, Iokin, Mariaje y Mikel.

    Ainhoa, Mariaje, Iokin eta Mikel:Mila esker nire alboan egoteagatik. Zuen laguntza

    itzela izan da.

  • Santi Baztan Anzin Universidad Pblica de Navarra

    ndice

    1 Introduccin..............................................................................................................31.1 Objetivos............................................................................................................4

    1.1.1 Origen del sistema........................................................................................41.1.2 Nuevas funcionalidades...............................................................................5

    1.2 Redes inalmbricas...........................................................................................61.2.1 Introduccin a IEEE 802.11.........................................................................61.2.2 Topologas de red.........................................................................................71.2.3 Algunos mecanismos de seguridad .............................................................8

    1.3 IEEE 802.1X......................................................................................................81.3.1 IEEE 802.1X en LANs WI-FI.....................................................................91.3.2 RADIUS.....................................................................................................111.3.3 EAP............................................................................................................121.3.4 Mtodos de autenticacin..........................................................................12

    2 Sistema AWNAS.....................................................................................................152.1 Introduccin....................................................................................................152.2 Descripcin y funcionamiento del sistema AWNAS....................................15

    2.2.1 Comunicacin entre componentes.............................................................162.2.2 Funcionamiento a alto nivel.......................................................................172.2.3 Material y componentes utilizados............................................................18

    2.3 AWNAS............................................................................................................192.3.1 Configuracin de red del Sistema AWNAS..............................................192.3.2 Cdigo del AWNAS..................................................................................202.3.3 Punto de acceso..........................................................................................312.3.4 Openssl.......................................................................................................322.3.5 Openldap....................................................................................................362.3.6 Freeradius - Proxy......................................................................................452.3.7 Freeradius - Auth.......................................................................................472.3.8 DHCP (Dynamic Host Configuration Protocol)........................................502.3.9 Apache.......................................................................................................512.3.10 FireWall - Iptables...................................................................................552.3.11 Control de trfico tc..............................................................................572.3.12 Pcap..........................................................................................................59

    2.4 Clientes del Sistema........................................................................................612.4.1 Windows XP..............................................................................................612.4.2 Xsupplicant................................................................................................612.4.3 Wire1x.......................................................................................................68

    3 Pruebas del Sistema AWNAS.................................................................................69

    1

  • Santi Baztan Anzin Universidad Pblica de Navarra

    3.1 iperf..................................................................................................................703.2 Monitorizacin de las pruebas.......................................................................703.3 Trfico UDP.....................................................................................................71

    3.3.1 Ancho de banda de la red Inalmbrica.......................................................713.3.2 Efecto del trfico en la red inalmbrica en el retardo................................723.3.3 Dos clientes: 1 profesor y 1 cliente............................................................733.3.4 Cuatro clientes: todos del mismo perfil.....................................................74

    3.4 Trfico TCP.....................................................................................................793.4.1 Trfico TCP con un nico cliente..............................................................793.4.2 Trfico TCP con varios clientes.................................................................823.4.3 Trfico TCP desde una mquina remota y lejana......................................84

    4 Conclusiones y lneas futuras................................................................................88 Bibliografa...............................................................................................................90 Anexos.......................................................................................................................92

    ANEXO I. WEP: Wired Equivalent Privacy.....................................................92ANEXO II. Extensible Authentication Protocol (EAP).....................................94ANEXO III. Punto de Acceso...........................................................................106ANEXO IV. Configuracin de Windows XP como cliente.............................111

    2

  • Santi Baztan Anzin Universidad Pblica de Navarra

    1 IntroduccinEn la actualidad, la popularidad de las redes inalmbricas est aumentando

    enormemente. As mismo, cada vez es ms habitual que las empresas implementen redes inalmbricas en sus empresas en lugar de tender las tradicionales redes cableadas, ms costosas y menos verstiles que las inalmbricas.

    Las redes inalmbricas aportan grandes mejoras con respecto a las redes cableadas, como puede ser la movilidad de los puntos de trabajo. Es obvio que es beneficioso tener la posibilidad de mover un punto de trabajo a voluntad siempre que el punto se encuentre con cobertura. En definitiva, los problemas de dotar de infraestructura de red se reducen notablemente si la red es inalmbrica.

    An as, y como casi todo en esta vida, las redes inalmbricas tienen sus inconvenientes. Para empezar, hoy por hoy ofrecen un ancho de banda notablemente menor que las redes cableadas, y esto es bastante importante si tenemos en cuenta que las aplicaciones actuales cada vez necesitan un mayor ancho de banda. Pese a esto, el mayor problema que tienen las redes inalmbricas, es el de la Seguridad. El medio de transmisin de las redes inalmbricas es el aire, y en principio, este medio es pblico, por lo que cualquiera que se encuentra en un punto con cobertura, es susceptible de interactuar en la comunicacin de un usuario de la red inalmbrica. En las redes cableadas, este fenmeno est dificultado por la necesidad de pinchar el cable para interactuar en alguna comunicacin. Por lo tanto, un posible atacante tiene bastantes ms facilidades para atacar una red inalmbrica que para atacar una cableada, aunque esto no quiere decir que las redes cableadas sean seguras. Los ataques pueden ser de muchos tipos, desde una escucha simple de la comunicacin, hasta cosas como hacerse pasar por el punto de acceso original, o introducirse en la red hacindose pasar por un cliente legtimo IEEE 802.1X].

    Por tanto se hace necesario introducir mayor inteligencia en la red que permita dar mayor seguridad a este tipo de redes.

    Otro apartado no menos importante es el de la gestin de las redes inalmbricas. Una vez tendida la red inalmbrica, la red debe gestionarse para poder obtener el mayor rendimiento del sistema. Para ello es necesario implementar una herramienta que gestione la red de acuerdo a los intereses del propietario de la red. As, es muy interesante que la red sea capaz de dar diferentes recursos a los clientes en funcin del tipo de. Esto significa que en funcin del perfil del usuario, se permite el acceso a unas redes o a otras, se asigna un mayor o menor ancho de banda, y en definitiva, se tiene un mayor o menor privilegio. Un ejemplo de esto ltimo puede ser el caso que aborda este proyecto, en el cual se implementa una herramienta para el uso de ella en la Universidad Pblica de Navarra. En esta red, los profesores tienen mayores privilegios que los alumnos. Pueden acceder a direcciones de red a las que no pueden acceder los alumnos y adems tienen un mayor ancho de banda asignado.

    Lgicamente, la monitorizacin de la red tiene una gran importancia para reaccionar ante los problemas y para verificar el funcionamiento de la red y realizar el control de la misma.

    Todos estos asuntos son los que son abordados a lo largo de este proyecto.

    3

  • Santi Baztan Anzin Universidad Pblica de Navarra

    1.1 Objetivos

    Planteado el problema de la seguridad de las redes inalmbricas, el principal objetivo de este proyecto es el desarrollo de un sistema que permita dar cierta seguridad a este tipo de redes de una manera relativamente sencilla para el usuario inalmbrico.

    Sin embargo, para la realizacin de este sistema, y viendo la necesidad de facilitar la gestin de estas redes, se ha planteado como objetivo secundario el incorporar al sistema herramientas que permitan gestionar y monitorizar la red desde un interfaz WEB.

    De esta forma se obtendr una herramienta que permita una conexin sencilla a los usuarios inalmbricos, as como una gestin de la misma segura y sencilla para los administradores de la red inalmbrica en cuestin.

    Como ltimo objetivo, se pretende desarrollar una plataforma de pruebas que permita estudiar el comportamiento del sistema, con el fin de resolver los posibles problemas que pueda tener.

    1.1.1 Origen del sistema

    Este prototipo parte de un proyecto previo que abord el problema de la seguridad de las redes inalmbricas a finales del ao 2002. Este proyecto fue realizado por Eduardo Magaa Lizarrondo.

    La idea bsica de este prototipo era la de introducir IEEE 802.1X para aportar seguridad en la red inalmbrica, introduciendo mtodos de autenticacin seguros, como es el caso de EAP-TLS (ver 1.3.4.5) y la asignacin dinmica de claves WEP.

    Con el objetivo de crear una herramienta completa y flexible, se eligi una arquitectura que permitiera alojar la mayor parte de los servidores en cualquier ISP.

    El sistema original consta de: Servidor de autenticacin: Es el que se encarga de realizar la

    autenticacin de los usuarios. Este servidor puede colocarse en cualquier punto, ya que se comunica de una manera segura con el servidor Freeradius-proxy, que es el que debe estar junto al punto de acceso. Es este servidor el que debe estar correctamente configurado para realizar el proceso de autenticacin con el usuario inalmbrico.

    Servidor Freeradius-proxy: La necesidad de tener un servidor Freeradius-proxy es debida a que es posible que en algn caso interese tener ms de un servidor de autenticacin. Esto es posible si se pone un servidor que redireccione el trfico de autenticacin al servidor de autenticacin oportuno en funcin de algn parmetro.

    Base de datos: Esta base de datos se utiliza para almacenar los datos necesarios para el funcionamiento del sistema, como son las caractersticas de los puntos de acceso, perfiles de usuario, usuarios, etc. Debido a las caractersticas del sistema se opt por utilizar LDAP (ver 2.3.5).

    Servidor WWW + apache: En este servidor se aloja la herramienta de Gestin Web que permite gestionar y monitorizar la red inalmbrica.

    4

  • Santi Baztan Anzin Universidad Pblica de Navarra

    En definitiva, este primer prototipo integra un sistema de autenticacin de clientes Windows XP mediante el mtodo de autenticacin EAP-TLS (ver 1.3.4.5) y permite una gestin y monitorizacin de la red inalmbrica.

    1.1.2 Nuevas funcionalidades

    El diseo del sistema se ha mantenido intacto, y lo que se ha hecho ha sido incorporar nuevas funcionalidades al sistema.

    Se han realizado as mismo algunas pruebas del sistema para comprobar el funcionamiento de la red inalmbrica.

    Actualizacin de software y servidores: se han actualizado todos los servidores y paquetes necesarios para el sistema. As, se han incorporado nuevas versiones de Openssl, Openldap, Apache, Php y Freeradius.

    Depuracin del software original: se ha dotado de nuevas funcionalidades al sistema para realizar ciertas operaciones.

    Una de las mejoras ms importantes ha sido el desarrollo de funciones que permiten que el sistema realice la bsqueda de la direccin IP de los clientes mediante la captura del primer paquete que los usuarios envan a la red. Esto le da flexibilidad al sistema ya que independiza el sistema del modelo de punto de acceso.

    Tambin se ha variado la manera en la que se introducen las reglas de Firewall. Ahora se realiza un filtrado MAC para introducir las reglas del trfico proveniente del cliente inalmbrico, con lo que se consigue que el primer paquete recibido del cliente no sea desechado por tener denegado el acceso. Una vez capturado el primer paquete y conseguida la direccin IP del cliente, se introducen el resto de las reglas Firewall a nivel IP.

    Mejora del interfaz Web: se han realizado algunos cambios en el interfaz Web que controla el sistema.

    Incorporacin de Xsupplicant al sistema: Xsupplicant es el programa cliente que permite que clientes Linux se conecten a la red mediante cualquier mtodo de autenticacin. Esto es de gran importancia, ya que permite que se conecten a la red tanto clientes con sistema operativo Windows XP, como clientes que utilizan Linux.

    Servidor DHCP: Se ha introducido DHCP al sistema con el objetivo de automatizar la asignacin de los parmetros de red a los clientes conectados. De esta manera se evita la operacin de tener que configurar el cliente manualmente. Cuando un cliente se autentica, el sistema le asigna dinmicamente todos los parmetros necesarios (IP, mscara, router por defecto, etc).

    Plataforma de pruebas: se ha incorporado una herramienta para poder realizar pruebas con el objetivo de ver el comportamiento del sistema.

    5

  • Santi Baztan Anzin Universidad Pblica de Navarra

    1.2 Redes inalmbricas

    Las redes inalmbricas han evolucionado hacia varios tipos de tecnologas en funcin de los requerimientos de las diferentes redes. En el caso de las redes inalmbricas de rea local WLAN, coexisten tecnologas como hiperlan o IEEE 802.11, aunque es esta ltima la que est ms extendida actualmente.

    1.2.1 Introduccin a IEEE 802.11

    Es un estndar de IEEE desarrollado en 1997, que en su versin original ofreca un ancho de banda de 2 Mbps, velocidad bastante reducida para dar cobertura a un nmero elevado de clientes.

    Con el tiempo han ido surgiendo variantes de este primer estndar que han dado solucin a diversos problemas de las redes inalmbricas.

    Estndar Descripcin802.11 Estndar WLAN original. Soporta de 1 a 2 Mbps.

    802.11a Estndar WLAN de alta velocidad en la banda de los 5 GHz. Soporta hasta 54 Mbps.

    802.11b Estndar WLAN para la banda de 2.4 GHz. Soporta 11 Mbps.

    802.11e Est dirigido a los requerimientos de calidad de servicio para todas las interfaces IEEE WLAN de radio.

    802.11f Define la comunicacin entre puntos de acceso para facilitar redes WLAN de diferentes proveedores.

    802.11gEstablece una tcnica de modulacin adicional para la banda de los 2.4 GHz. Dirigido a proporcionar velocidades de hasta 54 Mbps.

    802.11h Define la administracin del espectro de la banda de los 5 GHz para su uso en Europa y en Asia Pacfico.

    802.11i

    Est dirigido a superar la vulnerabilidad actual en la seguridad para protocolos de autenticacin y de codificacin. El estndar abarca los protocolos 802.1X, TKIP (Protocolo de Llaves Integras Seguras Temporales), y AES (Estndar de Encriptacin Avanzado). Es un estndar que an est en proceso de desarrollo, pero parece que el futuro de las WLAN pasa por IEEE 802.11i

    Tabla 1: Estndares IEEE 802.11.

    En la Tabla 1, se muestran los diferentes estndares existentes dentro del complejo IEEE 802.11.

    6

  • Santi Baztan Anzin Universidad Pblica de Navarra

    La especificacin 802.11b fue ratificada por el IEEE en julio de 1999, y opera en un ancho de banda que abarca las frecuencias dentro del rango de 2.4 a 2.497 GHz del espectro de radio. IEEE 802.11b permite una velocidad mxima de 11 Mbps.

    Las redes de rea local inalmbricas utilizan esta especificacin de una manera mayoritaria. Este es el tipo de red inalmbrica con el que se ha trabajado.

    1.2.2 Topologas de red

    Existen dos topologas de red diferentes.

    1.2.2.1 Red ad-hocUna red ad hoc (peer to peer) es una red de rea local independiente que no est

    conectada a una infraestructura cableada y donde todas las estaciones se encuentran conectadas directamente unas con otras (en una topologa mallada). La configuracin de una red de rea local inalmbrica en modo ad hoc, se utiliza para establecer una red donde no existe la infraestructura inalmbrica o donde no se requieran servicios avanzados de valor aadido.

    Figura 1: Red ad-hoc.

    1.2.2.2 Red de infraestructuraEn una red de infraestructura, los clientes WLAN se conectan a una red corporativa a

    travs de un punto de acceso inalmbrico. La mayora de las redes de rea local inalmbricas corporativas opera en modo de infraestructura.

    El sistema desarrollado utiliza una topologa de red de este tipo.

    7

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 2: Topologa en modo Infraestructura.

    1.2.3 Algunos mecanismos de seguridad

    En los inicios de la tecnologa inalmbrica, los procedimientos y mecanismos de seguridad eran tan dbiles que se poda acceder con gran facilidad a redes de este tipo sin tener permiso para ello. Existe el trmino wardriving, que se refiere a la accin de recorrer una ciudad para buscar la existencia de redes y conectarse a ellas.

    Existen sin embargo, algunos mecanismos que aportan diferentes grados de seguridad a las redes inalmbricas. A continuacin se muestran algunos de ellos:

    1.2.3.1 SSID (Identificador de servicio)Es una contrasea simple que identifica la WLAN. Los clientes deben tener

    configurado el SSID correcto para acceder a la red inalmbrica. El uso del SSID como mtodo nico de control de acceso a la infraestructura es peligroso, porque tpicamente no est bien asegurado. De hecho, comnmente el punto de acceso est configurado para distribuir este parmetro en su seal gua (beacon).

    1.2.3.2 Filtrado con direccin MAC (Control de acceso al medio): Restringe el acceso a computadoras cuya direccin MAC de su adaptador est

    presente en una lista creada para cada punto de acceso en la WLAN. Este esquema de seguridad se rompe cuando se comparte o cuando se cambia la MAC de un interfaz.

    1.2.3.3 WEP (Privacidad equivalente a cable)Es un esquema de encriptacin que protege los datos transmitidos entre clientes y

    puntos de acceso como se especifica en el estndar 802.11. Aunque el soporte para WEP es opcional, la certificacin Wi-Fi exige WEP con llaves de 40 bits (ver 4).

    Existen herramientas capaces de descifrar estas claves en un tiempo reducido, por lo que no es un mtodo seguro por si solo.

    En el prototipo propuesto, se utilizan claves WEP de 128 bits que son asignadas dinmicamente, aumentando notablemente la seguridad de la red.

    1.3 IEEE 802.1XA la vista de la falta de seguridad de las redes, IEEE decidi desarrollar un estndar

    que consiguiera aportar mecanismos de seguridad de una manera integral, naciendo de esta manera el estndar IEEE 802.1X. En un principio, IEEE 802.1X no se desarroll para su utilizacin en redes inalmbricas, sino para redes cableadas convencionales. Su propsito era controlar el acceso a la red en un entorno en el que el medio fsico es compartido. Este medio compartido se refera a redes locales tradicionales en las que el medio es compartido, pero perfectamente aplicable a entornos inalmbricos, ya que el entorno inalmbrico se puede asemejar a una red tradicional en el que todo el trfico pasa por el

    8

  • Santi Baztan Anzin Universidad Pblica de Navarra

    mismo cable. De esta manera, IEEE 802.1X ha encontrado su entorno de aplicacin ms importante en este tipo de redes, las inalmbricas.

    Para realizar el control de acceso, IEEE 802.1X separa el sistema en 3 elementos:

    - Suplicante: que es el cliente que pretende conectarse a la red.- Punto de acceso o autenticador: es el que realiza el control de acceso

    propiamente dicho.- Servidor de autenticacin: es el que se encarga de tomar las decisiones de

    autenticacin y autorizacin.

    Al punto al que se conecta el cliente se le denomina puerto. La red puede tener varios puertos. En una LAN ethernet por ejemplo, cada conector de un switch es un posible puerto.

    Figura 3: Modelo IEEE 802.1X segn el Estndar IEEE.

    El esquema del funcionamiento de IEEE 802.1X es el que se puede observar en la Figura 3.

    1.3.1 IEEE 802.1X en LANs WI-FI

    9

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 4: Esquema de autenticacin.

    1.3.1.1 FuncionamientoCuando un nuevo cliente se intenta conectar a la red inalmbrica, solo se le permite

    intercambiar informacin de autenticacin (ver Figura 4). Este trfico de autenticacin lo reenva el punto de acceso al servidor de autenticacin va RADIUS. En este servidor de autenticacin, muchas veces denominado servidor RADIUS, es donde se realiza la autenticacin propiamente dicha. La autenticacin se realiza extremo a extremo (ver Figura5) entre el servidor de autenticacin y el cliente inalmbrico mediante el protocolo de autenticacin EAP (Protocolo de Autenticacin Extensible), con el que se puede utilizar cualquier mtodo de autenticacin compatible con EAP.

    Figura 5: Capas en IEEE 802.1X

    10

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Una vez efectuada la autenticacin entre cliente y servidor de autenticacin, y en caso de que esta haya sido satisfactoria, el servidor de autenticacin enva un mensaje de Autenticacin exitosa al punto de acceso o autenticador, que procede a permitir el acceso a los servicios de la red al usuario correctamente autenticado.

    Otro problema que intenta solucionar IEEE 802.1X es el de la confidencialidad e integridad de la informacin. Para ello posibilita la asignacin de claves WEP de una manera dinmica. Esto aporta un nivel importante de seguridad a la red inalmbrica, ya que, aunque es posible descifrar las claves WEP, no ser de gran utilidad si para cuando se consigue descifrar una clave, esta ya ha cambiado. En el 4 se describe el proceso seguido para que los dos extremos conozcan las claves a utilizar en la comunicacin.

    Est muy extendida la idea de que IEEE 802.1X solo es necesario para grandes redes, las cuales tienen servidores de autenticacin dedicados. Sin embargo, un servidor de autenticacin puede ser un pequeo proceso dentro del punto de acceso (una simple lista de usuarios y passwords por ejemplo). En consecuencia, tambin puede ser adecuada la implementacin de IEEE 802.1X en pequeas redes como puede ser una red domstica, en la que no es necesaria la utilizacin de RADIUS, ya que el autenticador y el servidor de autenticacin no tienen que entablar un dilogo a travs de la red. Estn en la misma caja que es el punto de acceso.

    1.3.2 RADIUS

    RADIUS o Remote Authentication Dial In User Service. Especificar exactamente qu es RADIUS suele llevar a confusin en muchas ocasiones. Pero a lo que nos solemos referir cuando se habla de RADIUS es al protocolo que se utiliza para que el Punto de Acceso se comunique con el Servidor de Autenticacin.

    Lo que hace RADIUS es definir una serie de funcionalidades muy comunes en los servidores de autenticacin y define un protocolo que permite acceder a esas funcionalidades.

    RADIUS fue especificado por la IETF y fue diseado para ser utilizado en redes TCP/IP.

    RADIUS fue diseado para realizar la comunicacin entre el servidor de autenticacin y puntos de acceso que solan ser modems dial-in. Un ISP pretende dar servicio al mayor nmero de clientes posible dando servicio dial-up, pero para poder dar ese acceso a un precio razonable, los modems se deben colocar razonablemente cerca. Estos modems se colocan en estaciones locales. Para dar el acceso a la red se debe realizar una serie de operaciones como la autenticacin. RADIUS viene a dar solucin al problema de la gestin de la autenticacin permitiendo crear un servidor central de autenticacin que gestiona todo lo concerniente a la autenticacin. A este servidor de autenticacin se le suele denominar servidor RADIUS.

    Esta misma estrategia es vlida para las redes inalmbricas.RADIUS fue diseado pensando en dos escenarios distintos de autenticacin PPP,

    que eran PAP y CHAP (ver 1.3.4.2), los dos bastante inseguros por cierto. Es necesario ampliar los escenarios de autenticacin, ya que se quieren implementar distintos tipos de

    11

  • Santi Baztan Anzin Universidad Pblica de Navarra

    autenticacin mediante EAP. Para poder soportar EAP, RADIUS utiliza los mensajes access-challenge para enviar los mensajes EAP, tanto los request como los responses. RADIUS es lo suficientemente flexible como para poder realizar estas adaptaciones.

    Aunque solo hay cuatro mensajes distintos, el significado de los mismos puede variar ostensiblemente gracias a unos parmetros de los mensajes.

    1.3.2.1 Servidor RADIUSEl servidor RADIUS es un servidor de AAA (authentication, autorisation and

    accounting). Es el servidor de autenticacin que como su nombre indica, realiza las labores de autenticacin de usuarios cuando el punto de acceso le enva una peticin de autenticacin. Adems de autenticar, puede realizar otras operaciones en funcin del mtodo de autenticacin que est utilizando.

    Estor servidores se comunican con el access point mediante el protocolo RADIUS.

    1.3.2.1.1 FreeradiusEl servidor Freeradius es un servidor RADIUS de libre distribucin. Es el servidor de

    autenticacin que se va a utilizar en el desarrollo de este proyecto. Este servidor tambin puede realizar las labores de proxy del trfico IEEE 802.1X. Esto es muy interesante ya que permite colocar el servidor de autenticacin-proxy, que reenve el trfico de autenticacin a uno, o a varios servidores de autenticacin.

    1.3.3 EAP

    El Protocolo de Autenticacin Extensible (EAP) es el protocolo que se utiliza para realizar el proceso de autenticacin entre el servidor de autenticacin y el cliente inalmbrico. Normalmente, el servidor de autenticacin ser un servidor RADIUS, o Freeradius en el caso del prototipo que aqu se desarrolla (ver 4).

    Bsicamente, EAP es un protocolo que inicia y cierra el proceso de autenticacin, dejando entre medio que los mtodos de autenticacin especficos realicen la autenticacin. Estos mtodos utilizan mensajes EAP para realizar sus funciones. Esta caracterstica es la que hace que se denomine extensible, pues es posible implementar cualquier mtodo de autenticacin, siempre que sea compatible con EAP.

    La forma en la que deben ser enviados los mensajes EAP no est especificada. Para remediar esto, los mensajes EAP se transportan utilizando EAPol (EAP over LAN) entre el cliente y el punto de acceso, y utilizando RADIUS entre el punto de acceso y el servidor de autenticacin RADIUS.

    1.3.4 Mtodos de autenticacin

    En este apartado se realiza una descripcin de los mtodos especficos de autenticacin ms extendidos. Estos mtodos de autenticacin se utilizan junto con EAP. Los mtodos se suelen denominar como EAP-mtodo especfico (EAP-TLS, EAP-TTLS, EAP-MD5...).

    12

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Estos mtodos son los que utiliza el protocolo EAP para realizar la autenticacin. Como se explica en el 4, EAP es un protocolo que permite la utilizacin por encima de cualquier mtodo de autenticacin (Cualquiera de nosotros puede disear un mtodo de autenticacin para EAP). Por eso se denomina extensible.

    1.3.4.1 EAP-MD5Este mtodo consiste en realizar un hash con el login y la password en el cual, el

    nombre se transmite sin proteccin. Este mtodo slo sirve para autenticar al cliente ante el servidor, pero no para autenticar al sistema frente al cliente.

    No soporta asignacin de clave WEP dinmica. Esto es un grave problema ya que actualmente hay herramientas que descifran estas claves en muy poco tiempo, por lo que si esta no vara, es una medida bastante deficiente para aportar seguridad a la red.

    Es un mtodo de autenticacin no aporta seguridad. Es susceptible de ser atacado de una manera bastante sencilla.

    Por lo tanto, es un mtodo de autenticacin no recomendable y bastante desfasado. Sin embargo, puede ser una buena alternativa para realizar la segunda fase de la autenticacin en el mtodo EAP-TTLS.

    El nombre se enva sin proteccin. Sujeto a ataques de diccionario, man-in-the-midle.

    1.3.4.2 CHAPEste mtodo es muy similar al anterior. Se basa tambin en login y password, y

    aunque no es un mtodo bueno por s solo, es interesante su utilizacin como segunda fase de autenticacin del mtodo EAP-TTLS. Este es el mtodo utilizado en este prototipo para realizar la segunda fase de la autenticacin EAP-TTLS.

    1.3.4.3 LEAPEs un protocolo propiedad de Cisco que se basa en el envo de un nombre de usuario

    y contrasea por parte del cliente.

    1.3.4.4 PEAPDe las siglas en ingls Protected EAP. Se plante como una alternativa a EAP-TLS,

    aunque realmente es ms parecido a EAP-TTLS.Es un mtodo desarrollado por Microsoft y Cisco. Soporta asignacin de claves WEP dinmicas y proporciona autenticacin mutua

    entre sistema y cliente, pero solo necesita certificado del servidor, ya que para la autenticacin del cliente se utiliza MS-CHAP v2 que es la versin de miscrosoft del mtodo CHAP.

    1.3.4.5 EAP-TLSDesarrollada por Microsoft. Es el mtodo que ms se esta utilizando en estos ltimos

    tiempos debido a que Windows utiliza este mtodo en gran cantidad de ocasiones. Este mtodo realiza la autenticacin mediante certificados creados por una Autoridad

    de Certificacin de confianza. La autenticacin es mutua, es decir, se autentica tanto el cliente como el servidor. Adems, permite la asignacin dinmica de claves WEP, aumentando enormemente la seguridad.

    13

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Otra caracterstica de este mtodo, es que no es necesario acceder a bases de datos. Esto puede suponer un problema en algunos casos en los que interese tener un control de acceso basado en bases de datos.

    Este es uno de los mtodos con los que se trabajar en este proyecto.

    1.3.4.6 EAP-TTLSSe basa en el mtodo anterior EAP-TLS. En este caso, solo es necesario el

    certificado del sistema o del servidor. Una vez realizada la autenticacin del servidor, se realiza un tnel TLS por donde se realiza el resto de la autenticacin, que consiste en una autenticacin de segundo orden que se utiliza para autenticar al cliente. En esta segunda fase de la autenticacin se puede utilizar un amplio abanico de mtodos de autenticacin, que utilicen login y password, como pueden ser md5, chap, ms-chap, etc.

    El hecho de utilizar una autenticacin del cliente basada en login y password, permite utilizar este mtodo con las infraestructuras de bases de datos existentes actualmente. Adems, simplifica el proceso ya que no hay que obtener certificados para el cliente, por lo que no es necesario que haya un servidor de certificados.

    Soporta tambin asignacin dinmica de claves WEP.En conclusin, es un mtodo bastante seguro que a su vez, permite la autenticacin

    basada en login y password de una manera bastante sencilla.Este mtodo tambin se ha implementado en este proyecto, aunque nicamente para

    clientes con sistema operativo Linux. Windows XP por si solo no soporta este mtodo de autenticacin.

    1.3.4.7 Comparativa de los mtodos de autenticacinDespus de ver el funcionamiento de los mtodos especficos de autenticacin, se

    puede concluir que los mtodos ms convenientes para aportar seguridad a la red, son aquellos que aportan autenticacin mutua (cliente servidor), por lo que los mtodos a priori ms interesantes son EAP-TLS, EAP-TTLS y PEAP. A partir de aqu, la eleccin del mtodo vendr determinada por el tipo de credenciales cliente. Si se quiere realizar una autenticacin utilizando certificado cliente, se utilizar EAP-TLS. Sin embargo, si se quiere utilizar login y password, se deber utilizar alguno de los otros dos, que a su vez, utilizan otro mtodo secundario. Desde aqu se aconseja la utilizacin de EAP-TTLS.

    En este prototipo se utilizan los mtodos EAP-TLS, y EAP-TTLS con CHAP como mtodo secundario.

    EAP-MD5 LEAP EAP-TLS EAP-TTLS EAP-PEAPSolucin de seguridad Estndar Propietario Estndar Estndar Estndar

    Certificados-Cliente No - Si

    No(opcional)

    No(opcional)

    Certificados-Servidor No - Si Si Si

    Seguridad Ninguna Deficiente Buena Buena Buena

    14

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Autenticacin por base de

    datosSi Si No Si Si

    Intercambio de llaves

    WEP dinmico

    No Si Si Si Si

    Autenticacin mutua No Si Si Si Si

    Tabla 2: Comparativa de mtodos de Autenticacin EAP .

    2 Sistema AWNAS2.1 Introduccin

    El sistema AWNAS que se desarrolla en este proyecto es un sistema que se basa en IEEE 802.1X para realizar la autenticacin mediante EAP y utilizando un mtodo especfico de autenticacin seguro. Este mtodo de autenticacin permite la asignacin dinmica de claves WEP, por lo que la seguridad ser bastante elevada, tanto a la hora de realizar la autenticacin, como a la hora de mantener la privacidad de los datos enviados por la red, una vez efectuada la autenticacin.

    El sistema tambin incorpora una serie de herramientas que permiten una gestin eficiente de la red, permitiendo la asignacin de recursos a los clientes en funcin del tipo de cliente.

    A lo largo de este captulo se analiza el sistema AWNAS en su globalidad. El captulo se separa en dos partes, que son las dos partes diferenciadas del sistema completo. Primero se estudia el sistema AWNAS, y posteriormente se hace lo mismo con los clientes de este sistema.

    Durante el captulo se exponen las herramientas utilizadas, sus instalaciones, configuraciones y funcionamiento del prototipo desarrollado.

    2.2 Descripcin y funcionamiento del sistema AWNAS

    El sistema AWNAS consta de varias partes que forman dicho sistema. En la siguiente figura se puede observar un esquema del sistema AWNAS y del escenario con el que se va a trabajar.

    15

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 6: Esquema del sistema AWNAS.

    El sistema propiamente dicho, es el que se puede observar dentro del recuadro externo, y est compuesto por un servidor LDAP, un servidor de Autenticacin Freeradius, un servidor Freeradius-Proxy, un servidor DHCP y el AWNAS. En este prototipo, todos estos servidores estn instalados en el mismo PC, pero podran estar en cualquier otro punto de la red, o en un ISP.

    El escenario se completa con un punto de acceso y con un conjunto de clientes inalmbricos que pueden ser tanto clientes Linux como Windows XP. Como se ha comentado en la introduccin, esta es una de las novedades ms importantes de este prototipo.

    2.2.1 Comunicacin entre componentes

    Tan importante como conocer la estructura del prototipo, es conocer la manera en la que se comunican estos componentes. Esto es lo que se puede observar en la siguiente figura.

    Figura 7: Comunicacin entre los diversos componentes del sistema.

    16

  • Santi Baztan Anzin Universidad Pblica de Navarra

    El servidor LDAP o mejor dicho, el servidor Openldap (ver 2.3.5), se comunica mediante LDAP con todos los componentes que necesitan acceder a la informacin almacenada en el directorio LDAP, que es la informacin de todos los puntos de acceso, ISPs, perfiles y usuarios. A excepcin del servidor DHCP, todos los dems se comunican con este servidor. El servidor de autenticacin accede a LDAP para obtener los nombres de usuario y contraseas para realizar la autenticacin de un usuario. AWNAS accede al directorio LDAP para configurar el sistema, y el servidor WWW accede a LDAP ya que los datos almacenados en este directorio se manipulan desde la herramienta de gestin WEB.

    La comunicacin de autenticacin se realiza de dos maneras diferentes. Del cliente inalmbrico al punto de acceso se realiza en modo EAPol (ver anexo II), y desde el punto de acceso al Freeradius-Proxy, y de este al servidor de autenticacin Freeradius-auth en modo Radius-EAP (ver anexo II).

    DHCP se comunica directamente con el cliente una vez realizada la autenticacin.

    2.2.2 Funcionamiento a alto nivel

    Cuando se inicia el sistema, se deniega todo el trfico a excepcin del trfico IEEE 802.1X que es redireccionado por el punto de acceso al servidor Freeradius-Proxy. Cuando un cliente se incorpora a la red inalmbrica y pretende conectarse a ella, realiza la peticin al punto de acceso, y este a su vez, lo reenva al Freeradius-Proxy, ya que es trfico IEEE 802.1X. Freeradius-Proxy captura la identidad del cliente, y contrasta el dominio de esta identidad con los dominios que tiene en el archivo proxy.conf (ver 2.3.6). Si la identidad coincide con alguna entrada, este trfico es redireccionado a la direccin IP y puerto adecuado donde se encuentra el servidor de autenticacin Freeradius-auth. Este es el que se encargar de realizar la autenticacin del cliente.

    El servidor de autenticacin efecta la autenticacin con el cliente, y si es necesario, consulta los datos del directorio LDAP, donde se almacenan los datos del sistema y de los clientes. En el caso de utilizar el mtodo de autenticacin EAP-TLS, no ser necesaria ninguna consulta. Si se utiliza EAP-TTLS sin embargo, s que habr que consultar el login y password del cliente para realizar la autenticacin.

    Una vez realizada la autenticacin, y si esta ha sido satisfactoria, se le permite la conexin al cliente y se realiza la configuracin de la conexin en funcin de los datos almacenados en el directorio LDAP para este usuario.

    As, el usuario quedar conectado a la red, pero estar limitado por un firewall, el cual le permitir nicamente acceder a aquellas direcciones para las que tenga permiso, y por un controlador de trfico que le asignar ms o menos ancho de banda en funcin de los permisos del cliente. Por lo que, una vez autenticado, esta ser la estructura de red para el cliente inalmbrico recin autenticado.

    17

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 8: Esquema del sistema una vez realizada la autenticacin.

    2.2.3 Material y componentes utilizados

    El diseo del sistema est pensado tal y como se ve en la Figura 6, para que cada servidor pueda estar en un lugar fsico de la red cualquiera, es decir, los servidores pueden situarse en cualquier ISP. De hecho, en muchos casos ser conveniente que esto sea as. Sin embargo, para realizar el proyecto, se ha instalado todo en un mismo PC, debido a que la infraestructura para realizar esta implementacin del sistema es menos costosa.

    A continuacin se detalla el material utilizado para el desarrollo de este proyecto:

    PC con sistema operativo Linux Red Hat 7.2. Este es el PC que se ha utilizado para albergar a todo el sistema. Este PC est dentro de la red del laboratorio de Telemtica, mostrada en parte en la Figura 9.

    Figura 9: Esquema de la red en la que se encuentra el sistema AWNAS.

    Punto de Acceso Aironet 350 series (vase 4) [0]. Este es el punto de acceso que da cobertura de la red inalmbrica.

    18

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Cliente Windows XP. Se ha trabajado con un cliente Windows XP. Clientes Linux Red Hat 9.0. Se ha trabajado con cuatro clientes con

    sistema operativo Linux. Tarjetas Wireless Compaq WL110. Se han utilizado cuatro

    tarjetas en la realizacin del prototipo con adaptadores PCMCIA a PCI [ 0].

    Figura 10: Tarjeta Wireless utilizada.

    Posteriormente se explica de manera exhaustiva la manera en la que se han configurado todos estos componentes para que el sistema funcione correctamente.

    2.3 AWNAS

    En este punto se expone todo el proceso de instalacin, configuracin y funcionamiento de todas las herramientas utilizadas para implementar el AWNAS.

    Todo el sistema se ha instalado en la direccin /Dir_Base/open1x, pero esto puede cambiarse en funcin de las necesidades o intereses del instalador.

    2.3.1 Configuracin de red del Sistema AWNAS

    La mquina en la que esta alojado todo el sistema debe enrutar el trfico entre la red inalmbrica y la red cableada, por lo que habr que configurar esta mquina con el fin de que se comporte como un router.

    2.3.1.1 InterfacesComo se ha comentado en el apartado 2.2.3, el sistema est colocado en un nico PC.

    Este PC tiene dos interfaces de red, uno el que est conectado a la red del laboratorio (eth1), y otro el que est conectado con el punto de acceso (eth0).

    19

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 11: Interfaces de red del sistema.

    eth0: access point eth1: red del laboratorioIP 10.0.0.1 1.1.1.155Mscara 255.255.255.0 255.255.255.0

    Tabla 3: Configuracin IP de los interfaces de red.

    2.3.1.2 RouterEsta mquina, es decir, el PC donde est instalado todo el sistema se debe comportar

    como un router, por lo que es necesario habilitar el enrutado en esta mquina. Para conseguir esto, se ejecuta el siguiente script.

    Reglas-router#!/bin/bash#script que activa la mquina Linux como routerecho 1 > /proa/sys/net/ipv4/ip_forwardiptables --policy FORWARD ACCEPT

    Una vez ejecutado este script, esta mquina enrutar el trfico entre la red del laboratorio y la red inalmbrica.

    Sin embargo, debido a los dominios de red elegidos para ambas redes, las mquinas del laboratorio y de fuera del laboratorio no sabrn llegar hasta los clientes. Por lo tanto, a la hora de realizar las pruebas, se deber tener en cuenta que se deben configurar las rutas del PC en el que se va a colocar el servidor iperf (ver 3.1) que se va a utilizar.

    Si se quiere realizar conexiones con el exterior desde los equipos mviles, se debe habilitar el NAT, permitiendo as conectarse a otras mquinas como si lo estuviera haciendo pfc05 que es el nombre del PC que alberga al sistema.

    Para habilitar el NAT, y a modo de prueba se ha utilizado el siguiente script, aunque el que se ha utilizado es el que se ha puesto en primer lugar.

    Reglas-router-NAT:#!/bin/bash#script que activa la mquina Linux como NATecho 1 > /proa/sys/net/ipv4/ip_forwardiptables --flushiptables --table nat --append POSTROUTING --out-interface eth1 j MASQUERADEiptables --append FORWARD --in-interface eth0 j ACCEPT

    2.3.2 Cdigo del AWNAS

    El programa AWNAS es el encargado de gestionar todo el sistema. Es el que se encarga de comunicarse con los servidores Freeradius y Openldap, y de realizar la configuracin del sistema.

    En este punto se expone el funcionamiento de este programa, as como sus funcionalidades y prestaciones.

    20

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Este nas, que es el programa principal del AWNAS, utiliza varias libreras secundarias para realizar todas las tareas que tiene que realizar, que van desde la comunicacin con los servidores Freeradius, hasta realizar consultas al directorio LDAP para realizar la configuracin del Firewall y del controlador de trfico. No menos importante es la labor que realiza para monitorizar el sistema.

    2.3.2.1 Programa principal NasEste es el programa principal del AWNAS. Bsicamente, lo que hace este programa

    es realizar la configuracin inicial del sistema en funcin de las caractersticas almacenadas en el archivo de configuracin y el directorio LDAP, para luego dedicarse a realizar pequeas configuraciones en funcin de los mensajes recibidos y generar los datos de la monitorizacin. En el Esquema 1 se puede ver las diferentes tareas que realiza el programa y que se detallan a continuacin.

    Esquema 1: Estructura del programa principal nas.

    2.3.2.1.1 Carga del archivo de configuracinConsiste en cargar algunas variables de acuerdo con el archivo de configuracin

    nas.conf. A continuacin se presenta un ejemplo de este archivo:

    nas.conf:21

  • Santi Baztan Anzin Universidad Pblica de Navarra

    # nas.conf - NAS configuration file

    # LDAP server IP addressLDAP_IP 127.0.0.1# LDAP login userLDAP_LOGIN_USER cn=root,dc=tlm,dc=com# LDAP login passwordLDAP_LOGIN_PASSWORD tlm# ldapsearch executable pathLDAP_LDAPSEARCH_PATH ldapsearch# snmpget executable pathSNMPGET_PATH snmpget# iptables executable pathIPTABLES_PATH /sbin/iptables# tc executable pathTC_PATH /sbin/tc# Clients side interface, interface in the NAS server connected to the access points

    (downlink)CLIENTS_INTERFACE eth0# Bits per second of that interfaceCLIENTS_INTERFACE_RATE 6000000# Interface connected to internet (uplink)INTERNET_INTERFACE eth1# Bits per second of that uplink interfaceINTERNET_INTERFACE_RATE 10000000# Directory where all monitoring information is storedNASMONITORINGDATAPATH /root/open1x/prueba2/data

    Aqu se le indican cosas como los interfaces de red que debe utilizar el sistema y sus anchos de banda, parmetros para realizar las conexiones con el directorio LDAP, lugar de almacenamiento de los datos de monitorizacin, e incluso el lugar donde se encuentran las herramientas iptables y tc.

    Estos parmetros son utilizados por el programa principal para configurar el sistema.

    2.3.2.1.2 Carga de puntos de acceso y perfiles de usuarioDespus de cargar el archivo de configuracin, el programa carga en memoria los

    puntos de acceso y perfiles de usuario almacenados en el directorio LDAP. Para realizarlo, utiliza funciones de la librera libldap (ver 2.3.2.7).

    2.3.2.1.3 Inicializacin del firewall y control de trficoUna vez cargados estos datos, se inicializa el firewall (ver 2.3.10) y el control de

    trfico (ver 2.3.11) del sistema. Esto consiste en denegar el enrutamiento del trfico de todas las direcciones IP menos las de los puntos de acceso, y en crear la estructura base del rbol de control de trfico en los dos interfaces de red (ver 2.3.11).

    2.3.2.1.4 BucleUna vez realizado esto, el sistema queda configurado correctamente y entra en el

    bucle principal, donde permanecer hasta que el sistema sea finalizado.En este bucle, el sistema espera posibles llegadas de mensajes cliente, en los que por

    ejemplo se puede anunciar la reciente autenticacin de un cliente, buscar posibles cambios 22

  • Santi Baztan Anzin Universidad Pblica de Navarra

    de las direcciones IP de los clientes conectados a la red y realizar el procesado de las estadsticas de monitorizacin.

    2.3.2.2 Funciones del programa principalEn este mismo programa principal se encuentran varias funciones de inters que se

    comentan a continuacin.

    2.3.2.2.1 Funcin SearchNewIPsEsta funcin es la encargada de buscar las direcciones IP de los usuarios

    inalmbricos conectados a la red inalmbrica.Esta funcin realiza un recorrido sobre todos los clientes de todos los puntos de

    acceso. En caso de que no tenga en memoria su direccin IP, intenta averiguarla, y si lo consigue procede a configurar la conexin del cliente mediante la funcin ConfigureProfile. Es importante comentar, que no solo intenta averiguar la direccin IP de aquellos usuarios de los que no tenga esa informacin, sino que tambin intenta detectar posibles cambios de IP que se hayan producido en el transcurso de la conexin. Est funcionalidad fue aadida debido a que al realizar las pruebas del sistema, haba clientes que se conectaban y desconectaban con mucha rapidez, y en algn caso, el servidor DHCP les asignaba una direccin IP distinta en cada conexin. Esto era un problema porque el sistema no se haba percatado an de la desconexin del usuario y tena almacenada una direccin IP que ya haba variado. El sistema no era capaz de actualizar la direccin IP (ver 2.3.2.5.1).

    23

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Esquema 2: Estructura por bloques de la funcin SearchNewIps.

    2.3.2.2.2 Funcin ConfigureProfileEsta funcin realiza la configuracin de la conexin de cada cliente inalmbrico que

    se conecta a la red.Despus de cargar el perfil del usuario a configurar, la funcin procede a la

    configuracin del Firewall y del Control de Trfico. Una caracterstica importante de esta funcin es que separa los casos en los que el usuario dispone de direccin IP de los que no. En cada caso realiza acciones diferentes.

    En el caso de que no se conozca la direccin IP del usuario inalmbrico, nicamente se configuran las reglas de Firewall a nivel ethernet, es decir, las reglas que se ponen con iptables solo son las pertenecientes al trfico proveniente de la direccin MAC origen del cliente inalmbrico. Se leen las direcciones de las redes a las que puede y a las que no puede acceder el cliente y se ejecuta la regla pertinente. En cuanto al control de trfico, no se configura de momento ya que an no se dispone de la direccin IP (ver 2.3.2.5.1).

    En el caso de conocer la direccin IP del cliente inalmbrico, se introduce el resto de reglas del Firewall y todas las reglas de control de trfico.

    24

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Esquema 3: Estructura por bloques de la funcin ConfigureProfile.

    2.3.2.2.3 Funcin ReceiveClientMessagesEsta es la funcin que se ejecuta cuando en programa nas recibe un mensaje.

    Esquema 4: Estructura por bloques de la funcin ReceiveClientMessages

    Existen 4 tipos de mensaje:

    25

  • Santi Baztan Anzin Universidad Pblica de Navarra

    El primero se utiliza cuando se desconecta un cliente. Cuando sucede esto, se elimina el usuario de la memoria y se desconfigura el perfil (iptables y tc).

    Luego estn los mensajes de listado. Uno realiza un listado de los puntos de acceso configurados en el sistema, y el otro realiza un listado de los usuarios.

    Por ltimo est el mensaje de autenticacin, que es el mensaje que se recibe cuando se realiza una nueva autenticacin. Esto puede ser por varios motivos, el primero es que un nuevo usuario se acabe de conectar a la red inalmbrica, en cuyo caso se debe proceder a aadir este usuario en la lista de usuarios conectados y a introducir las reglas Firewall del trfico ascendente. Si el usuario ya estaba en memoria, puede ser que haya cambiado de direccin IP o MAC. Si ha cambiado de MAC, tambin se deber realizar la configuracin del firewall del trfico ascendente. En cualquier caso, se deber intentar hallar la direccin IP y se deber proceder a configurar el firewall del trfico descendente y el control de trfico.

    2.3.2.3 Librera globalLibrera en la que se definen variables, constantes y estructuras que se utilizan en el

    resto de libreras y programa principal.

    A continuacin se detallan algunas de las estructuras utilizadas:

    typedef struct tap Tap;typedef struct tuser Tuser;typedef struct tnetwork Tnetwork;typedef struct tprofile Tprofile;typedef struct tmonitoring Tmonitoring;

    Estructura tmonitoringstruct tmonitoring {struct timeval timestamp; //tiempo de monitorizacinunsigned long long bytes_in_accept; //B aceptados en enlace descendenteunsigned long long bytes_in_drop; //B desechados en enlace descendenteunsigned long long bytes_out_accept; //B aceptados en enlace ascendenteunsigned long long bytes_out_drop; //B desechados en enlace ascendente};

    Es la estructura utilizada para guardar datos de monitorizacin.

    Estructura tapstruct tap {in_addr_t apip;char apcommunityname[APCOMMUNITYSIZE]; //nombre de comunidad SNMPint apmodel; //tipo de punto de accesoTlist users; //lista de usuarios conectados al punto de accesoTmonitoring monitoring; // Informacin del trfico enrutado y del desechado };

    Es la estructura utilizada para los puntos de acceso.

    26

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Estructura tuserstruct tuser {int apport;char username[USERNAMESIZE]; //nombre de usuariounsigned char usermac[MACSIZE]; //direccin MACin_addr_t userip; //direccin IPTprofile *profile; //perfil del usuarioint subclassid; // Id o subclasse del usuario( TC QoS)time_t logintime; // Tiempo de inicio de conexinTmonitoring iptablesmonitoring; // Monitorizacin FirewallTmonitoring tcmonitoring; // Monitorizacin del control de trfico QoSpcap_t *pcap; //descriptor de conexin pcap. Permite saber si se est intentando

    averiguar la direccin IP del ususario.};

    Es la estructura usuario. Con ella se gestionan todos los parmetros necesarios concernientes a los usuarios inalmbricos.

    Estructura tnetworkstruct tnetwork {in_addr_t net; //direccin IP de la redin_addr_t netmask; //mscara de la redint allow; //1 si el trfico est permitido, 0 si est denegado };

    Con esta estructura se manipulan las redes a las que se permite o a las que no se permite acceder.

    Estructura tprofilestruct tprofile {char uprofile[UPROFILESIZE];int minbw; // Mnimo BW garantizado (encolamiento final CBQ)int maxbw; // Mximo BW permitido (Limitador)int priority; // Prioridad de la clase del perfil (CBQ)int reservedpercentage; // BW reservado de la clase (CBQ)Tlist networks; // List of networks allowed or not to the userint classid; // Id de la clase utilizada por tc en el control de trficoint maxusersubclassid; // Keeps count of the subclassid assigned to users};

    Esta es la estructura que se utiliza para trabajar con los diferentes perfiles de usuario que hay en el sistema.

    2.3.2.4 Librera libcomEn esta librera se encuentran todas las funciones necesarias para realizar la

    comunicacin entre los servidores Freeradius, el AWNAS y el punto de acceso.

    2.3.2.5 Librera libapEn esta librera estn todas las funciones relacionada con crear y borrar usuarios,

    puntos de acceso, estructuras network, etc. Tambin se pueden encontrar funciones para

    27

  • Santi Baztan Anzin Universidad Pblica de Navarra

    comparar, copiar o pasar direcciones MAC de un formato a otro. Pero la funcin ms importante de esta librera es la de buscar la direccin IP de un cliente inalmbrico.

    2.3.2.5.1 Funcin AP_IPfromMacEsta funcin busca la direccin de un cliente inalmbrico realizando la captura del

    primer paquete que el cliente enva a la red. Para ello, se ha utilizado la librera pcap , sus utilidades y funciones (ver 2.3.12).

    Esquema 5: Estructura por bloques de la funcin AP_IPfromMac.

    Esta funcin realiza la captura del primer paquete proveniente de la direccin MAC del usuario que se le introduce como parmetro de entrada a la funcin. Para hacer esto y utilizando la librera pcap, se obtiene el primer paquete que proviene de esa direccin MAC y que no tenga la direccin IP origen 0.0.0.0. Es necesario esto ltimo debido a que siempre aparece un primer paquete enviado en el proceso de obtencin de los parmetros de red por DHCP.

    La captura del trfico se realiza en modo no bloqueante para que no quede el proceso bloqueado debido a que no aparezca ningn paquete. No es un problema que no se encuentre la direccin IP la primera vez que se ejecuta esta funcin, ya que se ejecuta peridicamente hasta que el primer paquete con la direccin correcta es capturado.

    El desarrollo de este mtodo de obtencin de la direccin IP de los clientes inalmbricos es bastante importante. Hasta ahora, esto se realizaba mediante SNMP y era necesaria una funcin especfica para cada tipo de punto de acceso, ya que estos mensajes varan de uno a otro. Con esta nueva funcin, el sistema obtendr las direcciones IP de los clientes correctamente, con independencia del punto de acceso que se utilice, dando as, mayor flexibilidad al sistema.

    El problema de este mtodo radicaba en que las reglas Firewall se introducan una vez que el paquete era capturado, por lo que este primer paquete era desechado. Esto tambin ha sido arreglado al introducir las reglas Firewall en dos pasos (ver 2.3.2.6.3 y 2.3.2.6.4). En primer lugar, se introducen las reglas del trfico ascendente o procedente de los clientes inalmbricos a nivel MAC, y posteriormente se introduce el resto tras conocerse la direccin IP del cliente. As se evita la prdida del primer paquete enviado por el cliente inalmbrico una vez autenticado.

    28

  • Santi Baztan Anzin Universidad Pblica de Navarra

    2.3.2.6 Librera libfirewallqosEsta librera contiene todas las funciones relacionadas con el Firewall y control de

    trfico. Tambin se pueden encontrar las funciones que generan los datos de monitorizacin y datos estadsticos.

    2.3.2.6.1 Funcin FirewallMachineOpen Esta es la funcin que introduce las reglas Firewall al iniciarse el sistema. Esto

    consiste en denegar el trfico que no provenga del punto de acceso. Al autenticarse los clientes se introducirn otras reglas que permitirn que el trfico a las redes que tengan acceso permitido sea habilitado.

    2.3.2.6.2 Funcin FirewallMachineRule Esta es la funcin que se utilizaba antes de disear las dos funciones siguientes. Esta

    funcin se encarga de introducir todas las reglas de Firewall cuando se conecta un cliente inalmbrico a la red. Para esto, es necesario conocer la direccin IP del cliente. En el sistema actual, las reglas de Firewall del trfico proveniente de los clientes se ponen a nivel MAC antes de conocer siquiera la direccin IP del cliente, y una vez conocida la direccin IP, se introducen el resto de las reglas Firewall a nivel IP. As se soluciona el problema de prdida del primer paquete procedente de los clientes. Antes, cuando se implement la funcin de obtencin de la direccin IP mediante la captura del primer paquete del cliente, todas las reglas se introducas tras obtener la direccin IP, por lo que el primer paquete, del cual se obtena la direccin IP, era desechado. Por esta razn se ha separado en dos funciones diferentes.

    2.3.2.6.3 Funcin FirewallMachineRule_mac Esta funcin simplemente pone reglas Firewall del trfico ascendente o proveniente

    de los clientes inalmbricos a nivel MAC. As, ningn paquete proveniente de estos clientes podr alcanzar las redes a las que tiene el acceso denegado aunque no se conozca su direccin IP. Pero cuando el cliente intente acceder a una red permitida, tendr el acceso permitido.

    2.3.2.6.4 Funcin FirewallMachineRule_ip Introduce las reglas Firewall una vez que se conoce la direccin IP del cliente

    inalmbrico. Estas reglas se introducen a nivel IP.

    2.3.2.6.5 Funcin QoSGlobalInit Introduce las reglas tc de calidad de servicio o control de trfico iniciales, que

    consisten en reservar un ancho de banda para cada perfil, y dar una prioridad determinada a cada perfil.

    2.3.2.6.6 Funcin QoSMachineRule Introduce las reglas de control de trfico cuando se conecta el cliente inalmbrico.

    Crea la subclase del usuario y limita el mximo ancho de banda del cliente mediante police rate.

    29

  • Santi Baztan Anzin Universidad Pblica de Navarra

    2.3.2.6.7 Funcin ProcessStatisticsIptables Es la funcin que se encarga de contabilizar los bytes que atraviesan el Firewall y los

    que son desechados por este. Para esto, la funcin lee los datos almacenados en el archivo iptables.tmp que es donde iptables almacena los datos de los paquetes que pasan por este Firewall. Uno de los parmetros que se guardan es si el paquete es desechado, o no.

    2.3.2.6.8 Funcin ProcessStatisticsTc Esta funcin se encarga de contabilizar los bytes que atraviesan y los que no el filtro

    de control de trfico, o QoS. Estos datos se leen del archivo tc.tmp para cada interfaz.

    2.3.2.6.9 Funcin ProcessStatisticsSe puede decir que es la funcin principal que se encarga de procesar las estadsticas

    del sistema. Primeramente realiza un filtrado de los datos provenientes tanto de iptables como de tc y los enva a sendos ficheros temporales de los que posteriormente obtiene los datos de monitorizacin del sistema. Cada vez que se ejecuta esta funcin, se realiza un recorrido sobre todos los clientes inalmbricos conectados a la red inalmbrica y se procesan sus datos de Firewall y los datos de control de trfico sobre los dos interfaces. En los dos casos se contabilizan los bytes aceptados y los desechados y son procesados.

    Esquema 6: Estructura por bloques de la funcin processStatistics.

    30

  • Santi Baztan Anzin Universidad Pblica de Navarra

    2.3.2.7 Librera libldapEsta librera contiene todas las funciones relacionadas con LDAP. Todas las

    consultas al directorio LDAP se realizan con funciones de esta librera.

    2.3.2.7.1 Funcin LDAPListAPsCarga en memoria todos los puntos de acceso con sus caractersticas asociadas.

    2.3.2.7.2 Funcin LDAPListProfilesCarga en memoria los perfiles almacenados en el directorio LDAP con todas sus

    caractersticas.

    2.3.3 Punto de acceso

    El punto de acceso debe estar correctamente configurado para que funcione como se desea en este prototipo. La configuracin del punto de acceso se realiza de forma muy sencilla desde el interfaz WEB que tiene habilitado a tal efecto (ver 4). A continuacin se muestra la configuracin del punto de acceso utilizada.

    Direccin IP: 10.0.0.1 Mscara: 255.255.255.0 Autenticacin 802.1X-2001

    o Servidor de Autenticacin: Direccin IP: 10.0.0.10 Puerto: 1812. En este puerto es en el que est escuchando el servidor

    Freeradius-proxy (ver 2.3.6.2.2). Encriptacin de los datos:

    o Se puede trabajar tanto con encriptacin opcional, como con encriptacin obligatoria. En principio se ha configurado como Full Encryption o encriptacin obligatoria.

    o Se deben habilitar las casillas de tipo de autenticacin open y la de Network-EAP para que el punto de acceso sepa que las claves son proporcionadas por la red, y ms concretamente por el servidor de autenticacin.

    Configuracin Radio:o ssid: tlm.unavarra.com o Se deshabilita la publicacin del ssid para aportar un mayor grado de

    seguridad a la red inalmbrica.

    Una vez realizado esto, el punto de acceso estar configurado adecuadamente.

    31

  • Santi Baztan Anzin Universidad Pblica de Navarra

    2.3.4 Openssl

    2.3.4.1 IntroduccinEsta es la herramienta que proporciona las herramientas necesarias para crear los

    certificados y claves que aportan seguridad al sistema IEEE 802.1X]. Estos certificados y claves son utilizados para realizar la autenticacin de los clientes inalmbricos, pero tambin se utiliza para aportar seguridad a los servidores Openldap y Apache.

    2.3.4.2 InstalacinSe ha conseguido la ltima versin disponible de openssl que es openssl-0.9.7c [ 0].

    La instalacin es bastante sencilla. A continuacin se muestra la instalacin que se ha utilizado:

    [root@pfc05 open1x]# ./config --prefix=/Dir_Base/open1x/openssl --shared[root@pfc05 open1x]# make clean[root@pfc05 open1x]# make[root@pfc05 open1x]# make install

    En la versin anterior de este sistema eran necesarias tres versiones diferentes de openssl, pero ahora es suficiente con instalar esta nica versin.

    2.3.4.3 Generacin de Certificados y conversionesSe deben generar varios certificados para poner en funcionamiento el sistema. Estos

    certificados se utilizan fundamentalmente en algunos mtodos de autenticacin como pueden ser EAP-TLS y EAP-TTLS. A continuacin se muestra como se pueden generar certificados de una manera sencilla:

    Peticin de Generacin de Certificado:[root@pfc05 open1x]# openssl req -new -outform pem -out certificado-req.pem -newkey

    rsa:1024 -keyout certificado-key.pem -keyform pem -passin pass: contrasea -passout pass: contrasea

    Generacin de certificado:[root@pfc05 open1x]# openssl x509 -req -in certificado-req.pem -out certificado-

    cert.pem -outform pem -days 365 -CA ca-cert-pem -extfile /../openssl.cnf -extensions usr_cert -CAkey ca-key.pem

    Conversin de PEM a p12 (formato de Windows):[root@pfc05 open1x]# openssl pkcs12 -export -out certificado-cert.p12 -inkey

    certificado-key.pem -in certificado-cert.pem

    Conversin de DER a PEM:[root@pfc05 open1x] # openssl x509 -inform DER -outform PEM -in certificado.der -out

    certificado.pem

    32

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Conversin de PEM a DER:[root@pfc05 open1x]# openssl x509 -inform PEM -outform DER -in certificado.pem -out

    certificado.der

    Conversin de p12 a PEM:[root@pfc05 open1x]# openssl pkcs12 -des3 in certificado.p12 out certificado.pem

    Para observar los campos de un certificado:[root@pfc05 open1x]# openssl x509 -in certificado.pem -text

    2.3.4.4 Certificados en AWNASEl funcionamiento de los sistemas de autenticacin utilizados en este prototipo, como

    es el caso de EAP-TLS, requieren generar certificados para la autenticacin, tanto del cliente inalmbrico como del servidor. Estos certificados deben estar firmados por una Autoridad de Certificacin. A continuacin se muestra el proceso de creacin de la Autoridad de Certificacin y los certificados necesarios en el proceso de autenticacin.

    2.3.4.4.1 Generacin de la Autoridad de CertificacinEl siguiente script es el encargando de crear una Autoridad de Certificacin. Esta

    Autoridad es la que posteriormente se encargar de firmar los certificados de los clientes y el del servidor de autenticacin.

    CA.root#!/bin/sh. ./CA.commonexport PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}export LD_LIBRARY_PATH=${SSL}/librm -rf demoCA#borra el directorio donde poda estar otra autoridad de certificacinecho "*********************************************************************************"echo "Creating self-signed private key and certificate"echo "When prompted override the default value for the Common Name field"echo "*********************************************************************************"# Generate a new self-signed certificate.# After invocation, newreq.pem will contain a private key and certificate# newreq.pem will be used in the next stepopenssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365 -passin pass:

    $PASSWORD -passout pass:$PASSWORDecho "*********************************************************************************"echo "Creating a new CA hierarchy (used later by the "ca" command) with the certificate"echo "and private key created in the last step"echo "*********************************************************************************"echoecho "newreq.pem" | CA.pl -newca >/dev/nullecho "*********************************************************************************"echo "Creating ROOT CA"echo "*********************************************************************************"echo# Create a PKCS#12 file, using the previously created CA certificate/key

    33

  • Santi Baztan Anzin Universidad Pblica de Navarra

    # The certificate in demoCA/cacert.pem is the same as in newreq.pem. Instead of# using "-in demoCA/cacert.pem" we could have used "-in newreq.pem" and then omitted# the "-inkey newreq.pem" because newreq.pem contains both the private key and

    certificateopenssl pkcs12 -export -in demoCA/cacert.pem -inkey newreq.pem -out root.p12 -cacerts

    -passin pass:$PASSWORD -passout pass:$PASSWORD# parse the PKCS#12 file just created and produce a PEM format certificate and key in

    root.pemopenssl pkcs12 -in root.p12 -out root.pem -passin pass:$PASSWORD -passout pass:

    $PASSWORD# Convert root certificate from PEM format to DER formatopenssl x509 -inform PEM -outform DER -in root.pem -out root.der#Clean Uprm -rf newreq.pemchmod 777 demoCAchmod 777 demoCA/*

    Este script genera, como se ha comentado previamente, una Autoridad de Certificacin. Primero borra el directorio en el que pudiera haber otra Autoridad de Certificacin anterior. Posteriormente crea un certificado auto firmado con el que se genera la Autoridad de Certificacin. Finalmente crea los certificados root en los formatos der, pem y p12.

    El certificado root es necesario tanto para el servidor de autenticacin, como para los clientes inalmbricos.

    CA.common#!/bin/shSSL=/Dir_Base/opensslPASSWORD=client

    En este archivo se guardan la direccin en la que est instalado el paquete openssl, as como la contrasea que se utiliza a modo de ejemplo en la creacin de los certificados.

    2.3.4.4.2 Generacin del certificado del servidor de autenticacin

    El servidor de autenticacin necesita un certificado firmado por la Autoridad de certificacin para realizar la autenticacin. Este es el certificado que se enviar a los clientes para que puedan autenticar al servidor.

    CA.srv#!/bin/sh. ./CA.commonexport PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}export LD_LIBRARY_PATH=${SSL}/libopenssl req -new -keyout newreq.pem -out newreq.pem -passin pass:$PASSWORD

    -passout pass:$PASSWORD# Sign the certificate request. The policy is defined in the openssl.cnf file.# The request generated in the previous step is specified with the -infiles option and# the output is in newcert.pem

    34

  • Santi Baztan Anzin Universidad Pblica de Navarra

    # The -extensions option is necessary to add the OID for the extended key for server authentication

    openssl ca -policy policy_anything -out newcert.pem -passin pass:$PASSWORD -key $PASSWORD -extensions xpserver_ext -extfile xpextensions -infiles newreq.pem

    openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out $1.p12 -clcerts -passin pass:$PASSWORD -passout pass:$PASSWORD

    openssl pkcs12 -in $1.p12 -out $1.pem -passin pass:$PASSWORD -passout pass:$PASSWORD

    openssl x509 -inform PEM -outform DER -in $1.pem -out $1.deropenssl pkcs12 -des3 -in $1.p12 -out $1-key.pem -passin pass:$PASSWORD -passout

    pass:$PASSWORD# Clean Uprm -rf newcert.pem newreq.pem

    Este script crea los certificados der, pem y p12 del servidor cuyo nombre ser introducido por lnea de la siguiente manera:

    CA.srv

    2.3.4.4.3 Generacin de los certificados de los clientes inalmbricos

    Los certificados de los clientes inalmbricos slo son necesarios en caso de conectarse utilizando el mtodo de autenticacin EAP-TLS, que necesita la posesin de certificados por las dos partes involucradas en la autenticacin. Si se utiliza EAP-TTLS sin embargo, no ser necesaria la creacin de certificados cliente. En cualquier caso, el siguiente script es el que se utiliza para generar los certificados cliente.

    CA.clt#!/bin/sh. ./CA.commonexport PATH=${SSL}/bin/:${SSL}/ssl/misc:${PATH}export LD_LIBRARY_PATH=${SSL}/libecho "*********************************************************************************"echo "Creating client private key and certificate"echo "When prompted enter the client name in the Common Name field. This is the same"echo " used as the Username in FreeRADIUS"# Request a new PKCS#10 certificate.# First, newreq.pem will be overwritten with the new certificate requestopenssl req -new -keyout newreq.pem -out newreq.pem -passin pass:$PASSWORD

    -passout pass:$PASSWORD# Sign the certificate request. The policy is defined in the openssl.cnf file.# The request generated in the previous step is specified with the -infiles option and# the output is in newcert.pem# The -extensions option is necessary to add the OID for the extended key for client

    authenticationopenssl ca -policy policy_anything -out newcert.pem -passin pass:$PASSWORD -key

    $PASSWORD -extensions xpclient_ext -extfile xpextensions -infiles newreq.pemopenssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out $1.p12 -clcerts -passin

    pass:$PASSWORD -passout pass:$PASSWORD

    35

  • Santi Baztan Anzin Universidad Pblica de Navarra

    openssl pkcs12 -in $1.p12 -out $1.pem -passin pass:$PASSWORD -passout pass:$PASSWORD

    openssl x509 -inform PEM -outform DER -in $1.pem -out $1.deropenssl pkcs12 -des3 -in $1.p12 -out $1-key.pem -passin pass:$PASSWORD -passout

    pass:$PASSWORD# clean uprm -rf newcert.pem newreq.pem

    Al igual que en el caso de CA.srv, el nombre del certificado se introduce por lnea de comando:

    CA.clt

    Para poder generar los certificados cliente desde el interfaz WEB, se utiliza otro script similar a este. As, mediante el interfaz WEB se crea el certificado cliente y la cuenta de usuario en el directorio LDAP simultneamente.

    2.3.4.5 Formatos de los certificadosExisten varios formatos de certificado. En este prototipo se utilizan 3 formatos que

    son der, pem y p12. En equipos con sistemas operativos Linux se utiliza el formato pem. De hecho, tanto

    el servidor de autenticacin del sistema, como los clientes inalmbricos Linux utilizan este formato.

    Sin embargo, los clientes inalmbricos Windows XP utilizan el formato der para el certificado de la Autoridad de certificacin (root.der), y p12 para el certificado cliente.

    Por esta razn, cada vez que se debe generar un certificado, se crean los tres tipos de certificado.

    2.3.5 Openldap

    2.3.5.1 IntroduccinEl Protocolo de Acceso Ligero a Directorio, ms conocido como LDAP es un

    protocolo que permite acceder a un directorio de informacin, muchas veces denominado directorio LDAP.

    Las caractersticas ms importantes de LDAP son: Soporta TCP/IP. Muy importante para poder acceder desde cualquier punto,

    como por ejemplo Internet. Basado en estndares. Funciona bajo cualquier plataforma de computacin. Estos directorios estn optimizados para procedimientos de lectura y no tanto

    para los de escritura, por lo que habr que tenerlo en cuenta a la hora de tomar la decisin de implantar este protocolo, o no.

    Almacenamiento de datos jerrquico. Estructuras en rbol.

    36

  • Santi Baztan Anzin Universidad Pblica de Navarra

    En este prototipo se ha utilizado LDAP para acceder al directorio de informacin LDAP, que es donde se almacenan todos los datos necesarios para la configuracin del sistema, como pueden ser los puntos de acceso, usuarios, perfiles, ISPs, etc. Todos estos datos son actualizados en reducidas ocasiones, pero el nmero de veces en que son consultados es elevado, por lo que la utilizacin de LDAP en este caso parece ser bastante conveniente.

    Concretamente, en este proyecto se utiliza Openldap, que es servidor LDAP libre [ 0].

    A continuacin se detalla la instalacin, configuracin y arquitectura del directorio LDAP utilizada en este prototipo.

    2.3.5.2 Instalacin de OpenldapSe ha conseguido la ltima versin estable de Openldap [ 0]. Esta ltima versin es

    openldap-stable20040504.tgz.En el proceso de instalacin se tuvieron algunos problemas porque era necesaria

    alguna actualizacin de varias libreras, concretamente de la librera BerkeleyDB o DB. As que se ha conseguido la ltima versin disponible de esta librera, que es db-4.2.53.tar.gz [ 0], y se ha instalado antes de instalar openldap. El proceso de instalacin ha sido el siguiente:

    [root@pfc05 open1x]# tar zxvf db-4.2.52.tar.gz[root@pfc05 open1x]# cd db-4.2.52/build_unix[root@pfc05 open1x]# ../dist/configure --prefix=/Dir_Base/open1x/berkeleyDB[root@pfc05 open1x]# make[root@pfc05 open1x]# make install

    Aqu apareci otro problema. Openldap no era capaz de saber el lugar donde tena que buscar la librera db.h, es decir, el configure no da la opcin de buscar la librera db.h en un directorio concreto. Para conseguirlo haba dos opciones, una era hacer un link a la direccin de la librera, y otra posibilidad era la de realizar un configure en el que se le informa a openldap de donde tiene que buscar las libreras necesarias. Para conseguir esto se ha utilizado CPPFLAGS y LDFLAGS. Esta es la opcin que se ha utilizado finalmente.

    [root@pfc05 open1x]# tar zxvf openldap-stable-20031217.tgz[root@pfc05 open1x]# cd openldap-2.1.25[root@pfc05 open1x]# env CPPFLAGS=-I/Dir_Base/open1x/openssl/include

    -I/Dir_Base/open1x/berkeleyDB/include LDFLAGS=-L/Dir_Base/open1x/openssl/lib -L/Dir_Base/open1x/berkeleyDB/lib ./configure --prefix=/Dir_Base/open1x/openldap --with-tls --enable-slurpd --enable-ldbm

    [root@pfc05 open1x]# make depend[root@pfc05 open1x]# make[root@pfc05 open1x]# make install

    Certificado:[root@pfc05 open1x]# cd /usr/share/ssl/certs[root@pfc05 open1x]# make slapd.pem[root@pfc05 open1x]# cp usr/share/ssl/certs/slapd.pem /Dir_Base/open1x/openldap/

    37

  • Santi Baztan Anzin Universidad Pblica de Navarra

    2.3.5.3 Configuracin de OpenldapEs necesario configurar LDAP adecuadamente para obtener el comportamiento

    deseado. Para ello, se deben modificar los archivos de configuracin que se muestran a continuacin:

    2.3.5.3.1 slapd.confEste archivo se encuentra en /Dir_Base/openldap/etc/openldap/slapd.conf. Se debe

    aadir lo siguiente:

    slapd.confinclude /Dir_Base/open1x/openldap/etc/openldap/schema/cosine.schemainclude /Dir_Base/open1x/openldap/etc/openldap/schema/nis.schemainclude /Dir_Base/open1x/openldap/etc/openldap/schema/RADIUS-LDAPv3.schemainclude /Dir_Base/open1x/openldap/etc/openldap/schema/tlm.schema# tlm.schema es el que se utiliza para introducir nuestro schema.

    # Permisos de lectura y escrituraaccess to *by self writeby dn= uid=root,ou=users,dc=tlm,dc=com write by * auth\par\par

    # Directorio LDAPdatabase ldbmsuffix dc=tlm,dc=comrootdn cn=root,dc=tlm,dc=comdirectory /Dir_Base/open1x/openldap/var/openldap-data

    En este ltimo directorio es donde se crear la base de datos automticamente.

    2.3.5.3.2 ldap.conf: Se encuentra en el mismo directorio que el anterior.

    ldap.confHOST 127.0.0.1BASE dc=tlm,dc=comURI ldap://127.0.0.1

    En este archivo se le indica la direccin IP en la que estar escuchando el servidor Openldap y la base del dominio del directorio.

    En este caso, el Openldap est en 127.0.0.1, pero podra estar en cualquier otro sitio.

    Finalmente, se ha creado un script para ejecutar el servidor LDAP que se ha llamado run-ldap:

    run-ldap#!bin/shecho "IMPORTANT:--------------------"echo "--------- Run as ROOT --------"echo "------------------------------"

    38

  • Santi Baztan Anzin Universidad Pblica de Navarra

    OPENLDAP=/Dir_Base/open1x/openldapexport PATH= $ {OPENLDAP }/bin: $ {OPENLDAP }/sbin: $ {OPENLDAP}/libexec:$PATHexport LD_LIBRARY_PATH=/Dir_Base/open1x/openssl/lib

    ${OPENLDAP}/libexec/slapd -d 1

    Ahora, el servidor ya est configurado y se puede proceder a insertar los datos que se quiera en la base de datos. Para esto se utilizan archivos .ldif, en los que se introduce los datos.

    2.3.5.4 Ejemplos de funciones LDAP

    2.3.5.4.1 ldapaddFuncin para agregar datos al directorio LDAP.

    -v: modo verboso.-W: peticin de contrasea.-D: usuario que ejecuta la funcin.-f: fichero-x:

    openldap/bin/ldapadd -x -D cn=root, dc=tlm,dc=com f ../data.ldif -v W

    2.3.5.4.2 ldapsearchEsta funcin permite realizar bsquedas en el directorio LDAP.

    ldapsearch -x D cn=root, dc=tlm,dc=com u b ou=users,dc=tlm,dc=com 'cn=*' cn uprofile v -W

    Este ejemplo devolvera el campo cn y el campo perfil de todos los usuarios almacenados en el directorio LDAP.

    2.3.5.4.3 ldapdelPermite eliminar entradas del directorio LDAP.

    openldap/bin/ldapadd -x -D cn=root, dc=tlm,dc=com ipAddress=10.0.0.1,ou=aps, dc=tlm ,dc=com -v W

    Este ejemplo eliminara el punto de acceso con IP 10.0.0.1 del directorio LDAP

    2.3.5.4.4 ldapmodifyEsta funcin se utiliza en caso de querer modificar una entrada del directorio LDAP.

    La siguiente es una de las maneras en las que se puede utilizar esta funcin.Se crea un fichero del tipo siguiente:

    39

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Fichero_cambiodn: [email protected],ou=users,dc=tlm,dc=comchangetype: modify replace: mail mail: [email protected] - add: title title: Grand Poobah - add: jpegPhoto jpegPhoto: /tmp/modme.jpeg - delete: description

    La orden: ldapmodify -x -D cn=root, dc=tlm,dc=com -b -r -f Fichero_cambio v -W

    Esto cambiara el mail del usuario student1, le aadira la foto y eliminara la descripcin de la entrada del directorio LDAP.

    En realidad, el mayor nmero de accesos al directorio LDAP, se realizan desde el interfaz WEB. Por lo tanto, se utilizan las funciones de las que dispone php para realizar estas operaciones. Estas funciones simplifican enormemente la interactuacin con el servidor LDAP.

    2.3.5.5 Arquitectura del directorio LDAP utilizado

    Los datos almacenados en el directorio LDAP son los correspondientes a los puntos de acceso, usuarios, perfiles de usuario e ISPs. Como se ha comentado en el apartado de introduccin, los datos del directorio se organizan en forma de rbol de una manera jerrquica, caracterstica muy recomendable para el tipo de datos que se deben almacenar en este caso. En la Figura 12 se se muestra la arquitectura del directorio LDAP que se ha utilizado en este prototipo para almacenar todos los datos necesarios para el funcionamiento de todo el sistema.

    De la raz del rbol parten cuatro ramas que son los puntos de acceso, perfiles de usuario, ISPs y usuarios. De ellos parten las propiedades almacenadas de cada uno de ellos. En algn caso se ha utilizado alguna propiedad o caracterstica ms, pero no se ha introducido en la figura porque reduca la claridad de la misma.

    40

  • Santi Baztan Anzin Universidad Pblica de Navarra

    Figura 12:Estructura en forma de rbol del directorio LDAP

    2.3.5.5.1 tlm.schemaEste archivo se utiliza para agregar al servidor Openldap las caractersticas de los

    nuevos atributos de los datos que van a ser almacenados en el directorio.

    tlm.schema############ Nuevos Atributos Definidos

    attributetype ( 9.2.1 NAME 'uProfile'DESC 'Profile identifier, for example, student'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.2 NAME 'minBw'DESC 'Minimum bandwidth guaranteed in bps'EQUALITY integerMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

    attributetype ( 9.2.3 NAME 'maxBw'DESC 'Maximum bandwidth limited in bps'EQUALITY integerMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

    attributetype ( 9.2.4 NAME 'priority'DESC 'Prority assigned: 1 best, 7 worst. Delay control?'EQUALITY integerMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

    41

  • Santi Baztan Anzin Universidad Pblica de Navarra

    attributetype ( 9.2.5 NAME 'reservedPercentage'DESC 'Percentage of bandwidth to reserve to this profile'EQUALITY integerMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

    attributetype ( 9.2.6 NAME 'networkAllowed'DESC 'IP network as a dotted decimal, eg. 10.2.0.0/255.255.0.0 Indicates allowed

    networks for these user.'EQUALITY caseIgnoreIA5MatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )

    attributetype ( 9.2.7 NAME 'networkDenied'DESC 'IP network as a dotted decimal, eg. 10.2.0.0/255.255.0.0 Indicates denied

    networks for these user.'EQUALITY caseIgnoreIA5MatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )

    attributetype ( 9.2.8 NAME 'ipAddress'DESC 'IP address as a dotted decimal, eg. 192.168.1.1, omitting leading zeros'EQUALITY caseIgnoreIA5MatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} SINGLE-VALUE )

    attributetype ( 9.2.9 NAME 'snmpCommunityName'DESC 'Community name for accesing the access point using SNMP'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.10 NAME 'apModel'DESC 'Access Point model (eg. Aironet350)'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.11 NAME 'realm'DESC 'Domain this ISP is serving (ex. tlm.unavarra.com)'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.12 NAME 'url'DESC 'URL where this ISP has its Certification Authoritie (ex. http://ca.tlm.unavarra.com)'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.13 NAME 'correo'DESC 'email (ex. [email protected])'EQUALITY caseIgnoreMatchSUBSTR caseIgnoreSubstringsMatchSYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE )

    attributetype ( 9.2.14 NAME 'telephone'DESC 'telephone number (ex. 948236874)'EQUALITY caseIgnoreIA5Match

    42

  • Santi Baztan Anzin Universidad Pblica de Navarra

    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} SINGLE-VALUE )

    ############ NEW OBJECTS DEFINED

    # USERS: # uid= user identifier# gidNumber= group id (type of profile)# Optional attributes:# cn= common name# userPassword= for MD5 authentication# userCertificate= for EAP/TLS authentication# email# telephone# description

    objectclass ( 9.1.1 NAME 'user' SUP top STRUCTURALMUST ( uid $ uProfile )MAY ( cn $ description $ userPassword $ userCertificate ) )

    # PROFILESobjectclass ( 9.1.2 NAME 'profile' SUP top STRUCTURAL MUST ( uProfile $ minBw $ maxBw $ priority $ reservedPercentage)MAY ( cn $ description $ networkAllowed $ networkDenied ) )

    # ACESS POINTSobjectclass ( 9.1.3 NAME 'ap' SUP top STRUCTURALMUST ( ipAddress $ apModel $ snmpCommunityName)MAY ( cn $ description ) )

    # ISPsobjectclass ( 9.1.4 NAME 'isp' SUP top STRUCTURALMUST ( realm $ url)MAY ( cn $ description ) )

    Con este archivo, se intro