1 Diseño e implementación de arquitectura de conectividad y seguridad AAA en UDNET (Authentication, Authorization and Accounting) Jorge Alberto González Güiza 20101273035 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 of different technologies and protocols that underpin this project, also provides a short guide implementation of AAA . Through the state of the art we have an overview of how this technology is being implemented today, and in this article 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 NTRODUCCION Ste proyecto consiste en el analisis, diseño e implementación de una arquitectura de conexión y seguridad denominado AAA. Para que AAA funcione necesita configurar un protocolo base, el cual puede ser TACACS+ o RADIUS. TACACS+ es un protocolo de CISCO, por lo cual requiere dos caracteristicas especificas: que todos los equipos sean CISCO y pagar el precio que exigen para permitir la utilización de este protocolo. Por otra parte RADIUS es de libre uso y no tiene ninguna limitante con respecto a el fabricante de los equipos donde se vaya a implementar[1]. Al hacer una breve comparación entre estos dos protocolos encontramos los siguientes resultados: E Transporte Encriptación Autorización y Autenticación ARA, NetBios,NASI, X25 Requerimiento de equipos Precio TACACS+ RADIUS TCP Todo Por separado Si Alto Alto UDP Password Combinado No Medio Gratis Cuadro I C OMPARACIÓN TACAS+ Y RADIUS AAA es una arquitectura de sistema, la cual sirve para configurar un conjunto de tres funciones de seguridad (Authentication, Authorization and Accountig): 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 Your name is with xyz Department. . . protocolo de seguridad que seleccione, puede ofrecer cifrado[2]. 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[2]. 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[2]. 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. II. O BJETIVOS A. Objetivo General Diseño e implementación de arquitectura de conectividad y seguridad en la red UDNET, mediante AAA (Auhtorization, Authentication and Accounting), utilizando el protocolo de libre uso RADIUS. B. Objetivos Especificos Modificar proxy que solicite usuario y contraseñapara cada conexión desde la red. Generar grupos de ususarios 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. III. M ARCO T EÓRICO A. AAA AAA es una arquitectura de sistema, la cual sirve para configurar un conjunto de tres funciones de seguridad (Authentication, Authorization and Accountig, por sus siglas en ingles) de una forma coherente. AAA ofrece una forma modular de proveer los siguientes servicios: 2 • 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 servicios que esta ofrece. Configurar 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[2]. • 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. AAA 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[2]. • 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. Contabilidad 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 AAA contabilidad 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 contabilidad deben ser definidos a través de AAA. Al igual que con la autenticación y autorización, se configura la contabilidad AAA mediante la definición de una lista llamada métodos de contabilidad, y luego la aplicación de esa lista a varios interfaces[2]. 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. Figura 1. Local-Based Dial Access Environment Figura 2. Local-Based Router Environment Configurar AAA es relativamente simple después de com- 3 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. Requirimientos[3]: RFC 2194 Review of Roaming Implementations RFC 2477 Criteria for Evaluating Roaming Protocols RFC 2881 Network Access Server Requirements Next Generation (NASREQNG) NAS Model RFC 2903 Generic AAA Architecture RFC 2904 AAA Authorization Framework RFC 2905 AAA Authorization Application Examples RFC 2906 AAA Authorization Requirements RFC 3169 Criteria for Evaluating Network Access Server Protocols RFC 3539 AAA Transport Profile * RFC 1234 AAA Transport Profile Lista de protocolos AAA[3]: RADIUS Diameter TACACS TACACS+ 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[4]. EAP: Extensible Authentication Protocol (EAP) es una autenticación framework usada 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, EAP-SIM, 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[4], [5]. 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[5]. 4 B. RADIUS RADIUS es un protocolo para la realización de autenticación, autorización e información de configuración entre un servidor de acceso a la red que desea autenticar sus vínculos y un servidor de autenticación compartida[6]. RADIUS es sinónimo de autenticación remota telefónica de servicio de usuario. RADIUS es un protocolo de AAA para aplicaciones tales como acceso a la red o movilidad IP. Obra en ambas situaciones (a) Local (b) móvil. Utiliza PAP, CHAP o protocolos EAP para autenticar a los usuarios. Busca en archivo de texto, servidores LDAP, bases de datos para la autenticación. Después de los servicios de autenticación parámetros que se pasan de nuevo a la NAS. Recibe notificación cuando se inicia el período de sesiones y la parte superior. Estos datos se utilizarán con fines de facturación o estadísticas. SNMP se utiliza para el control remoto. Puede ser utilizado como un proxy. Figura 3. 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 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. RADIUS Network Diagram V. 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". R ESULTADOS E SPERADOS 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. R EFERENCIAS [3] Academic dictionaries and encyclopedias, “AAA Protocol,” March 2008. Available: http://en.academic.ru/dic.nsf/enwiki/1033751, AAA Protocol [6] Tutorials Point, A self learning center, “Radius Overview,” January 2010. Available: http://www.tutorialspoint.com/radius/what_is_radius.htm [4] Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, “Address Allocation for Private Internets.” RFC 1918, September 2006. [5] R.T. Morris, 1985. A Weakness in the 4.2BSD Unix TCP/IP Software. Computing Science Technical Report No. 117, AT&T Bell Laboratories, Murray Hill, New Jersey. 5 [1] Cisco Systems technical support and documentation, TACACS+ and RADIUS comparison, Document ID: 13838, Jan 2008. [2] Cisco Systems technical support and documentation, Cisco IOS security configuration guide, 2008. Jorge Alberto González Güiza Tecnólogo en Electrónica Universidad Distrital Estudiante Ingenieria Telecomunicaciones Universidad Distrital Técnico Electricista ESINCO S.A