1 Diseño e implementación de arquitectura de conectividad y seguridad AAA en UDNET (Authentication, Authorization and Accounting) Oscar Mauricio Muñoz Ortiz Cód: 20091273019 [email protected] Resumen—This document is a summary about the project named “Diseño e implementación de arquitectura de conectividad y seguridad AAA en UDNET (Authentication, Authorization and Accounting)”. In the theoretical framework will find information off different technologies and protocols that underpin this project, also provides a short guide implementation of AAA. Through the state of the art it has an overview of how this technology is being implemented today, and in this articule you can read about an example of implementation of AAA with RADIUS on Windows. Index Terms—Accounting, Authentication, Authorization, Firewall, Proxy, RADIUS, Server, TACACS+. I. I NTRODUCCIÓN STE proyecto consiste en el análisis, diseño e implementación de una arquitectura de conexión y seguridad denominada AAA. Para que AAA funcione necesita configurar un protocolo base, el cual puede ser TACACS+ o RADIUS. TACACS+ es un protocolo patentado por CISCO, por lo cual requiere: que todos los equipos sena CISCO y pagar el precio que exigen para permitir la utilización de este protocolo. RADIUS es de libre uso y no tiene ninguna limitante con respecto al fabricante de los equipos donde se vaya a instalar. Al hacer una breve comparación entre estos dos protocolos encontramos los siguientes resultados: E Características TACACS+ RADIUS Encriptación Todo Password Transporte TCP UDP Autorización y Autenticación Por separado Combinado ARA, NetBios, NASI, X25 Si No Requerimientos de equipo Alto Medio Precio Alto No Autorización: Provee el método de control de acceso remoto, incluyendo autorización total o para cada servicio, liste de cuentas y perfil por usuario, soporte para grupos de usuarios, y soporte para IP, IPX, ARA y Telnet. Contabilización: Posee un método de recolección y envió de información al servidor de seguridad, el cual es usado para facturar, auditar y reportar: nombres de usuario, tiempo de inicio y final, comandos ejecutados (como PPP), cantidad de paquetes enviados, y número de bytes. AAA provee los siguientes beneficios: Incremento de flexibilidad y control de configuración de acceso. Métodos de autorización estandarizados, como RADIUS, TACACS+ o Kerberos. Múltiples sistemas de backup. II. OBJETIVOS A. Objetivo General Diseño e implementación de arquitectura de conectividad y seguridad en la red UDNET, mediante AAA (Authorization, Authentication and Accounting), utilizando el protocolo de libre uso RADIUS. B. Objetivos Específicos Modificar proxy que solicite usuario y contraseña para cada conexión desde la red. Generar grupos de usuarios con diferentes niveles de accesibilidad. Implementación de sistema que permita conexión a los diferentes servicios de la red con una misma contraseña por usuario. Cuadro I C OMPARACIÓN TACACS+ Y RADIUS III. M ARCO TEÓRICO A. AAA AAA es una arquitectura de seguridad, la cual esta dividida en tres módulos (Authentication, Authorization and Accountig, por sus siglas en ingles), los cuales trabajan en conjunto, creando una forma eficiente y segura de conectarse a una red. Sus funcionalidades son: Autenticación: Proporciona el método de identificación de usuarios, incluyendo nombre de usuario y contraseña, desafío y respuesta, soporte de mensajería, y, según el protocolo de seguridad que seleccione, puede ofrecer cifrado. AAA es una arquitectura de sistema que sirve para configurar un conjunto de tres funciones de seguridad (Authentication, Authorization and Accounting, por sus siglas en ingles) de una forma coherente. AAA brinda los siguientes servicios: Autenticación: Proporciona el método de identificación de usuarios, incluyendo nombre de usuario y contraseña, desafío y respuesta, soporte de mensajería, y, según el protocolo de seguridad que seleccione, puede ofrecer cifrado. La autenticación es la forma en que un usuario se identifica antes de poder acceder a la red y los 2 servicios que esta ofrece. Se configura la autenticación AAA mediante la definición de una lista llamada métodos de autenticación, y luego aplicando esa lista a varias interfaces. En la lista de métodos se definen los tipos de autenticación a realizar y la secuencia en la que se llevará a cabo, esto debe ser aplicado a una interfaz específica antes de que cualquiera de los métodos de autenticación definidos se utilicen. La única excepción es la lista método por defecto (que se denomina "default"). La lista método por defecto es aplica automáticamente a todas las interfaces si ninguna lista de otro método está definida. Una lista de método definida reemplaza automáticamente la lista de método por defecto. Todos los métodos de autenticación, excepto local, line de contraseña y habilitación de la autenticación, deben ser definidas a través de AAA. Autorización: Provee el método de control de acceso remoto, incluyendo autorización total o autorización para cada servicio, lista de cuentas y perfil por usuario, soporte para grupos de usuarios, y soporte para IP, IPX, ARA y Telnet. El módulo de autorización trabaja agrupando un grupo de atributos que describen lo que el usuario está habilitado a usar o acceder. Estos atributos son comparados con la información contenida en una base de datos de un usuario determinado y el resultado se devuelve a AAA para determinar las capacidades reales de los usuarios y las restricciones. La base de datos se puede localizar de forma local en el servidor de acceso o Router o puede ser alojado de forma remota en un servidor de seguridad RADIUS o TACACS+. Los servidores remotos de seguridad, tales como RADIUS y TACACS+, autorizan a los usuarios de los derechos específicos mediante la asociación de atributos de valor (AV) pares, que definen los derechos con el usuario apropiado. Todos los métodos de autorización deben ser definidos a través de AAA. Así como en la autenticación, configurar AAA Autorización es definida por una lista llamada métodos de autorización, y luego aplicando esa lista a varias interfaces. Contabilización: Posee un método de recolección y envió de información al servidor de seguridad, el cual es usado para facturar, auditar y reportar: nombres de usuario, tiempo de inicio y final, comandos ejecutados (como PPP), cantidad de paquetes enviados, y número de bytes. Contabilización permite realizar el seguimiento de los usuarios que tienen acceso a los servicios, así como la cantidad de recursos de red que están consumiendo. Cuando ésta se activa, el acceso a la red del servidor informa la actividad del usuario a el servidor de seguridad de RADIUS o TACACS+ (según el método de seguridad que se haya implementado) en la forma de los registros contables. Cada registro contable se compone de la contabilidad de pares AV y se almacena en el servidor de control de acceso. Estos datos pueden ser analizados para la gestión de la red, la facturación del cliente, y / o auditoría. Todos los métodos de contabilización deben ser definidos a través de AAA. Al igual que con la autenticación y autorización, este método se configura mediante la definición de una lista llamada métodos de contabilización, y luego la aplicación de esa lista a varias interfaces. AAA provee los siguientes beneficios: • Incrementación de flexibilidad y control de configuración de acceso. • Escalabilidad. • Métodos de autorización estandarizados, como RADIUS, TACACS+ o Kerberos. • Múltiples sistemas de backup. AAA está diseñado para que el administrador de la red pueda configurar dinámicamente el tipo de autenticación y autorización que se quiera, puede ser por línea (por usuario) o por servicio (por ejemplo, IP, IPX, o VPDN) base. Para definir el tipo de autenticación y autorización que se desee, se hace mediante la creación de listas de método, a continuación, la aplicación de esas listas de método para determinados servicios o interfaces. Una lista de método es una lista secuencial que define los métodos de autenticación usados para autenticar usuarios. Las listas de método le permiten designar uno o varios protocolos de seguridad que se utilizarán para la autenticación, lo que garantiza un sistema de copia de seguridad para la autenticación en caso de que el método inicial falla. El software utiliza el primer método la lista para autenticar a los usuarios, y si ese método no responde, el software selecciona el método de autenticación siguiente en la lista de métodos. Este proceso continúa hasta que haya una comunicación exitosa con un método de autenticación de la lista o la lista de método de autenticación se ha agotado, en los que la autenticación caso de falla. La aplicación de AAA se usa tanto en usuarios que se conectan de forma remota, como en los que hacen uso dentro de la red. Figura 1. Acceso remoto Figura 2. Acceso dentro de la red 3 B. Configuración AAA Configurar AAA es relativamente simple después de com3 prender el proceso básico. Para configurar la seguridad en un servidor de acceso o enrutador usando AAA, se deben seguir los siguientes pasos: 1. Habilitar AAA utilizando el comando de configuración global AAA New Model. 2. Si decide utilizar un servidor de seguridad independiente, configurar los parámetros de protocolo de seguridad, tales como RADIUS, TACACS+, o Kerberos. 3. Definir las listas método para la autenticación mediante el uso de un comando de autenticación AAA. 4. Aplicar el método de listas para una interfaz específica o una línea, si es necesario. 5. (Opcional) Configure la autorización con el comando Autorización AAA. 6. (Opcional) Configurar la contabilidad mediante el comando Contabilidad AAA. C. Requerimientos: RFC 2194 Review of Roaming Implementations: Este documento resume el diseño y la funcionalidad de una implementación de itinerancia existente. Comprende la posibilidad de utilizar cualquiera de los múltiples proveedores de servicios de Internet (ISP), mientras que mantiene una relación formal, cliente-proveedor con sólo una. http://www.ietf.org/rfc/rfc2194.txt RFC 2477 Criteria for Evaluating Roaming Protocols: Describe los requerimientos para el aprovisionamiento de capacidad de itinerancia para usuarios de internet de acceso telefónico. http://www.ietf.org/rfc/rfc2477.txt RFC 2881 Network Access Server Requirements Next Generation (NASREQNG) NAS Model: Describe la terminología y brinda un modelo de un servidor de acceso a datos (NAS) típico. Describe los protocolos de servicio NAS, como el RADIUS (RFCs 2865, 2866). http://www.ietf.org/rfc/rfc2881.txt RFC 2903 Generic AAA Architecture: Propone la arquitectura del protocolo AAA que será incorporada en un servidor genérico con una interfaz de aplicación la cual contiene un grupo de módulos específicos de aplicación que pueden mejorar las funciones específicas de AAA. http://www.ietf.org/rfc/rfc2903.txt RFC 2904 AAA Authorization Framework: Sirve como base de los requerimientos para la autorización de fuentes de internet y servicios (AIRS). Presenta un marco arquitectural para el entendimiento de la autorización de las fuentes de internet y servicios y requerimientos derivados para los protocolos de internet. http://www.ietf.org/rfc/rfc2904.txt RFC 2905 AAA Authorization Application Examples: Describe algunos ejemplos de aplicaciones que requieren autorización. Cada aplicación es descrita en términos de un marco consistente, y requerimientos específicos de autorización. http://www.ietf.org/rfc/rfc2905.txt RFC 2906 AAA Authorization Requirements: este documento especifica los requerimientos que los pro- tocolos de AAA deben reunir con el fin de soportar los servicios de autorización en internet. http://www.ietf.org/rfc/rfc2906.txt RFC 3169 Criteria for Evaluating Network Access Server Protocols: Define los requerimientos para protocolos usados por los servidores de acceso a la red (NAS). http://www.ietf.org/rfc/rfc3169.txt RFC 3539 AAA Transport Profile * RFC 1234 AAA: Este documento discute acerca de aspectos de transporte que surgen en los protocolos AAA. También provee recomendaciones en el uso de protocolos AAA. http://www.ietf.org/rfc/rfc3539.txt D. Protocolos a. RADIUS: El protocolo RADIUS fue desarrollado por Livingston Enterprises, como un acceso a la autenticación del servidor y protocolo de contabilización. La especificación RADIUS (RFC 2138) es una propuesta de protocolo estándar y el de contabilización (RFC 2139) es informativo. Aunque TACACS+ es considerado por ser el más versátil, RADIUS es el protocolo AAA de mayor elección para las empresas ISP porque este usa menores ciclos de CPU y es menos intensivo con la memoria. La comunicación un servidor de acceso a la red (NAS) y un servidor RADIUS está basada en el Protocolo de Datagrama de usuario (UDP). Por lo general, el protocolo RADIUS es considerado como un servicio sin conexión. Aspectos relacionados con la disponibilidad del servidor, retransmisión, y tiempos de espera son manejados por los dispositivos RADIUS habilitados en lugar del protocolo de transmisión. RADIUS es un protocolo cliente/servidor. El cliente RADIUS es por lo general un NAS y el servidor es usualmente un proceso que se ejecuta en una maquina con UNIX o Windows NT. El cliente pasa la información del usuario a los servidores RADIUS designados y actúa con la respuesta que es devuelta. Los servidores RADIUS reciben las peticiones de conexión del usuario, lo autentican, y luego devuelven la información de configuración necesaria al cliente para entregar los servicios al mismo. Un servidor RADIUS puede actuar como un cliente proxy para otros servidores RADIUS u otra clase de servidores de autenticación. b. TACACS+: Características de TACACS+: - Separa AAA dentro de tres funciones diferentes (Autenticación, Autorización y Contabilización). - Soporta la integración de comandos de autorización de router con mecanismos de autenticación avanzados, como el estándar de encriptación de datos (DES) y contraseñas de una sola vez (OTP). - Soporta 16 niveles diferentes de privilegios (0-15). - Permite el control de servicios, como el protocolo punto a punto (PPP), Shell, estándar log in, enable, protocolo Apple Talk Remote Access (ARA), interfaz Novell de servicios asíncronos, comando remoto (RCMD), y proxy firewall. - Permite el bloqueo de servicios a un puerto específico, como la interfaz TTY o VTY en un router. El servicio más común soportado por TACACS+ es el PPP para IP y el acceso al router usando la consola o puertos VTY. EXEC Shell permite a los usuarios conectarse a los routers y servicios seleccionados, como el PPP, Telnet, TN3270, o administrar el router por el mismo. Muchos servidores TACACS+ están 4 disponibles hoy en el mercado; sin embargo, el servidor AAA está diseñado específicamente para ser escalable y compatible con la línea de routers de la marca CISCO, servidores de acceso y switches. Cuando se configura correctamente, el servidor AAA valida AAA y responde a las peticiones de los routers y servidores de acceso con una señal de paso o falla. El servidor AAA contiene una base de datos interna para 5000 usuarios. El servidor AAA actúa como un servidor proxy usando TACACS+ para autenticar, autorizar y contabilizar para el acceso a routers Cisco y servidores de acceso a la red. c. Otros protocolos usados en combinación con los protocolos anteriores: : PPP: Point-to-point Protocol o Protocolo punto a punto, es un protocolo de nivel de enlace estandarizado en el documento RFC 1661. Por tanto, se trata de un protocolo asociado a la pila TCP/IP de uso en Internet. EAP: Extensible Authentication Protocol (EAP) es un marco de autenticación usado habitualmente en redes WLAN Point-to-Point Protocol. Aunque el protocolo EAP no está limitado a LAN inalámbricas y puede ser usado para autenticación en redes cableadas, es más frecuentemente su uso en las primeras. Recientemente los estándares WPA y WPA2 han adoptado cinco tipos de EAP como sus mecanismos oficiales de autenticación. Es una estructura de soporte, no un mecanismo específico de autenticación. Provee algunas funciones comunes y negociaciones para el o los mecanismos de autenticación escogidos. Estos mecanismos son llamados métodos EAP, de los cuales se conocen actualmente unos 40. Además de algunos específicos de proveedores comerciales, los definidos por RFC de la IETF incluyen EAP-MD5, EAPOTP, EAP-GTC, EAP-TLS, EAP-IKEv2, EAP-SIM, y EAP-AKA. Los métodos modernos capaces de operar en ambientes inalámbricos incluyen EAP-TLS, EAPSIM, EAP-AKA, PEAP, LEAP y EAP-TTLS. Los requerimientos para métodos EAP usados en LAN inalámbricas son descritos en la RFC 4017. Cuando EAP es invocada por un dispositivo NAS (Network Access Server) capacitado para 802.1X, como por ejemplo un punto de acceso 802.11 a/b/g, los métodos modernos de EAP proveen un mecanismo seguro de autenticación y negocian un PMK (Pair-wise Master Key) entre el dispositivo cliente y el NAS. En esas circunstancias, la PMK puede ser usada para abrir una sesión inalámbrica cifrada que usa cifrado TKIP o AES. PEAP: El Protocolo de autenticación extensible protegido (PEAP) es un nuevo miembro de la familia de protocolos de Protocolo de autenticación extensible (EAP). PEAP utiliza Seguridad de nivel de transporte (TLS) para crear un canal cifrado entre un cliente de autenticación PEAP, como un equipo inalámbrico, y un autenticador PEAP, como un Servicio de autenticación de Internet (IAS) o un servidor del Servicio de usuario de acceso telefónico de autenticación remota (RADIUS). PEAP no especifica un método de autenticación, sino que proporciona seguridad adicional para otros protocolos de autenticación de EAP, como EAP-MSCHAPv2, que pueden operar a través del canal cifrado de TLS que proporciona PEAP. PEAP se utiliza como método de autenticación para los equipos cliente inalámbricos 802.11, pero no se admite en clientes de red privada virtual (VPN) u otros clientes de acceso remoto. LEAP: El LEAP es un una variante del protocolo EAP de protección de las redes wireless que fue desarrollado por Cisco Networks para cumplimentar el estándar 802.1x del IEEE (Institute of Electrical and Electronic Engineers). Otros fabricantes han desarrollado otras variantes del EAP como el EAP-TLS, el EAP-TTLS y el EAPPEAP. Aún no se ha demostrado ninguna vulnerabilidad de estos tres últimos. El LEAP es un protocolo de autenticación mutua que se "apoya" en un secreto compartido que es la clave de acceso del usuario y que como es lógico es conocida por el mismo usuario y "la red" y es utilizada para responder a los desafíos del servidor RADIUS que debe autenticar y autorizar al usuario. LDAP: LDAP (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso a Directorios) es un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas. Un directorio es un conjunto de objetos con atributos organizados en una manera lógica y jerárquica. El ejemplo más común es el directorio telefónico, que consiste en una serie de nombres (personas u organizaciones) que están ordenados alfabéticamente, con cada nombre teniendo una dirección y un número de teléfono adjuntos. IV. E STADO DEL ARTE A. RADIUS en Windows Microsoft ha implementado el protocolo RADIUS (Remote Authentication Dial In User Service) en Windows 2000/2003 en lo que ha llamado el servicio IAS (Internet Authentication Service / Servicio de Autenticación de Internet). Habitualmente este servicio nos puede ser necesario si queremos poner en marcha una red wireless segura con WPA/WPA2 + RADIUS o bien un servidor de VPN tanto autentificando contra Directorio Activo o los usuarios locales de un servidor. Para usar este servicio si colocamos nuestro servidor detrás de un firewall debemos abrir los puertos con protocolo UDP 1812 y 1813 para que funcione correctamente. Como de costumbre para poner en marcha este servicio tendremos que ir a Panel de Control -> Agregar o quitar programas -> Agregar o quitar componentes de Windows -> Servicios de Red y una vez en este apartado activar el "Servicio de autenticación de Internet". Para administrar el servicio debemos usar la consola Servicio de Autentificación de Internet (ias.msc), para añadir un nuevo cliente del servicio tenemos que hacer click con el botón derecho sobre el apartado Clientes RADIUS, donde tendremos que ir introducir la dirección IP o FQDN del cliente además de un secreto compartido (shared key). Aparte del RADIUS 5 estándar también soporta otras implementaciones RADIUS de distintos fabricantes. En el apartado Registro remoto tenemos la oportunidad de fijar el sistema almacenamiento de logs, podemos almacenarlos en local (por defecto) o bien en una base de datos SQL a través del correspondiente DSN (origen de datos OBDC). En Directivas de acceso remoto podemos configurar una serie de condiciones de acuerdo con diversos parámetros para admitir o rechazar peticiones de autentificación, estas se procesan en el orden establecido y en caso de que no se cumpla ninguna el intento de autentificación será rechazado. Aparte de las directivas que podeis ver abajo que son las personalizadas, también existen otras que vienen ya definidas de acuerdo con los escenarios mas habituales de uso de IAS. En Procesamiento de solicitud de conexión podremos crear proxies de RADIUS de forma que deleguemos la autentificación en un servidor de RADIUS remoto, esta opción esta solo soportada en Windows Server 2003. Para ciertas funcionalidades tales como implantar un servidor de VPN con RRAS donde es necesaria un integración con el Directorio Activo tenemos que registrar el servidor en el directorio, para ello debemos situarnos sobre el nodo raíz del menú y hacer click con el botón derecho sobre el o bien ir a Acciones donde también encontraremos la opción Registrar servidor en Active Directory. En Windows Server 2003 en la versión Standard del sistema operativo estamos limitados a 50 clientes y 2 grupos remotos de acceso mientras que en Enterprise el número es ilimitado, en Windows 2000 solo existe la función de servidor RADIUS y no hay limitaciones en ninguna versión. V. R ESULTADOS ESPERADOS Obtener un metodo de conexión a la red UDNET con autenticación de usuario y contraseña. Implementar grupos de diferentes usuarios, los cuales nos permitan separarlos dependiendo del uso o tipo de usuario que sean. Hacer de la red de la Universidad Distrital una red más moderna y con caracteristicas de conexión y seguridad predeterminados. Poner en funcionamiento el protocolo RADIUS, para poder implementar satisfactoriamente AAA. PLACE PHOTO HERE Oscar Mauricio Muñoz Ortiz Tecnologo en electronica Universidad Distrital "FJDC"