sábado, 22 de noviembre de 2008

RADIUS surgió inicialmente con una solución para la administración en el control de acceso para usuarios que soportaban su conexión mediante enlaces seriales y módems, facilitando el control y supervisión de la seguridad, la autorización, la auditoria, verificación de nombres de usuarios y contraseñas, así como una detallada información de configuración sobre el tipo de servicio que se pretendía entregar al usuario.


RADIUS es un protocolo estándar de seguridad para Internet, desarrollado por Livingston Enterprises y que la IETF (Internet Engineering Task Force) ha recogido en los RFCs 2865 y 2866. Fue diseñado como un protocolo de servicio para TCP/IP con funcionalidad de autenticación de acceso a servidores para autentificar usuarios.


Los elementos característicos que posee RADIUS le han permitido guardar un alto grado de compatibilidad con la arquitectura dispuesta por las redes inalámbricas IEEE 802.11, una razón primordial por la cual es éste el servidor recomendado, según la norma, para prestar los servicios de autenticación en redes inalámbricas.


El protocolo RADIUS sigue un modelo cliente/servidor, donde el papel de servidor es desempeñado por RADIUS que contiene información de los usuarios, almacenando sus contraseñas y sus perfiles, y un elemento de red designado como NAS (Network Access Server), toma la función de cliente de RADIUS; el NAS tiene la responsabilidad de servir como puente o mediador entre los mensajes entrantes y salientes desde y hacia el servidor, es decir, se encarga de retransmitir las solicitudes de conexión, autenticación de usuarios y en general toda la información necesaria para el usuario.


Las transacciones realizadas entre el cliente y el servidor RADIUS son autenticas mediante la utilización de un secreto compartido, que nunca viajará por la red, además del intercambio entre estos dos puntos de una serie de contraseñas de usuarios, con el fin de minimizar la captura de la contraseña verdadera por la parte de algún intruso en la red.


En cualquier escenario donde se encuentre implementado RADIUS, todo usuario debe presentar ante el cliente o NAS una información de autenticación, dada por un nombre de usuario y una contraseña.


RADIUS se trata de un protocolo ampliamente usado en ambientes de red, especialmente en dispositivos como routers, módems, servers, switches, etc.


Es utilizado para proveer autenticación centralizada, autorización y manejo de cuentas para redes de acceso dial-up, redes privadas virtuales (VPN) y, recientemente, para redes de acceso inalámbrico.




El servicio RADIUS comprende tres componentes:

· Protocolo: Sobre la base de la UDP, RFC 2865 y 2866 define el formato de trama RADIUS y el mecanismo de transferencia de mensajes, y usa 1812 como el puerto de autenticación y 1813 como el puerto de auditoria.

· Servidor: El servidor RADIUS se ejecuta en el ordenador o estación de trabajo en el centro, y mantiene la información para la autenticación de usuarios y servicio de de acceso red.

· Cliente: El cliente RADIUS se ejecuta en el NASS situado en toda la red.



En el modelo cliente / servidor de RADIUS, el cliente, un router o un conmutador, pasa la información del usuario a la designada servidor RADIUS y los actos de la respuesta del servidor (como la conexión / desconexión de usuarios). The RADIUS server receives user connection requests, authenticates users, and returns the required information to the client. El servidor RADIUS recibe las solicitudes de conexión del usuario, autentica a los usuarios, y devuelve la información requerida al cliente.

En general, el servidor RADIUS mantiene tres bases de datos: usuarios, clientes, y Diccionario, como se muestra en la Figura.


· Usuarios: Almacena la información del usuario, tales como el nombre de usuario, contraseña, aplica los protocolos, y la dirección IP.

· Clientes: Almacena la información acerca de los clientes RADIUS como la clave compartida.

· Diccionario: Almacena la información para la interpretación de los atributos del protocolo RADIUS y sus valores.


Los perfiles de usuarios son almacenados en el servidor RADIUS. Los clientes RADIUS se comunican con el servidor RADIUS para autentificar usuarios. El servidor especifica al cliente que el usuario autentificado es autorizado. Si bien el termino RADIUS es referente a el protocolo de red que el cliente y el servidor usan para comunicarse, esto es frecuentemente usado para referirse al sistema cliente/servidor completo.



En el nivel intermedio de seguridad se encuentran los servidores de autentificación, como RADIUS (Servicio de usuario de acceso telefónico de autenticación remota). Para ello se requiere la instalación y configuración de un servidor de autentificación, el cual implica un gasto extra por la contratación de una persona calificada que lo instale, configure y administre. El acceso al AP (Punto de acceso) se hace mediante un login y password más personalizado para cada usuario. El servidor de autentificación validará ésta información antes de darle acceso al AP.



Puntos importantes:





  • Los sistemas embebidos generalmente no pueden manejar un gran número de usuarios con información diferente de autenticación. Requiere una gran cantidad de almacenamiento.

  • RADIUS facilita una administración centralizada de usuarios. Si se maneja una enorme cantidad de usuarios, continuamente cientos de ellos son agregados o eliminados a lo largo del día y la información de autenticación cambia continuamente. En este sentido, la administración centralizada de usuarios es un requerimiento operacional. Además, RADIUS proporciona, consistentemente, cierto nivel de protección contra ataques activos y pasivos, y se ha convertido, de hecho, en el estándar para administración remota.

  • Debido a que las plataformas en las cuales RADIUS es implementado son frecuentemente sistemas embebidos, hay oportunidades limitadas para soportar protocolos adicionales. Algún cambio al protocolo RADIUS deberá ser compatible con clientes y servidores RADIUS pre-existentes.




RADIUS usa UDP como su protocolo de transporte. Generalmente, el protocolo se considera un servicio sin conexión. Los temas de disponibilidad del servicio, retransmisión y timeouts son manejados por el habilitador del servicio RADIUS que por el mismo protocolo RADIUS. El cliente RADIUS es típicamente un NAS; el servidor RADIUS es un proceso daemon corriendo en Linux o WNT.


Un cliente RADIUS envía credenciales de usuario e información de parámetros de conexión en forma de un mensaje RADIUS al servidor. Éste autentica y autoriza la solicitud del cliente y envía de regreso un mensaje de respuesta. Los clientes RADIUS también envían mensajes de cuentas a servidores RADIUS.



Los mensajes RADIUS son enviados como mensajes UDP. El puerto UDP 1812 es usado para mensaje de autenticación RADIUS y, el puerto UDP 1813, es usado para mensajes de cuentas RADIUS. Algunos servidores usan el puerto UDP 1645 para mensajes de autenticación y, el puerto 1646, para mensajes de cuentas. Esto último debido a que son los puertos que se usaron inicialmente para este tipo de servicio.


El servidor contiene información de los usuarios, almacenando sus contraseñas y sus perfiles, y el cliente es el encargado de pasar las peticiones de conexión de los usuarios al servidor para que éste las autentifique y responda al cliente diciéndole si ese usuario está o no registrado.













Formato de Paquetes



RADIUS reside en la capa de aplicación en el protocolo TCP / IP. Se define el camino para el intercambio de información del usuario entre el dispositivo y el servidor RADIUS del ISP.

RADIUS utiliza UDP para transmitir mensajes. Se garantiza el buen intercambio de mensajes entre el servidor RADIUS y el cliente a través de una serie de mecanismos, incluyendo el mecanismo de gestión del temporizador, mecanismo de retransmisión, y el mecanismo de servidor esclavo.



Cada paquete contiene la siguiente información:






Los campos en un paquete RADIUS son:

Code (Código). Un octeto, es para indicar el tipo de paquetes RADIUS.


Principales valores del campo Código







Identifier (Identificador). Un octeto que permite al cliente RADIUS relacionar una respuesta RADIUS con la solicitud adecuada.

Length. Longitud del paquete (2 octetos) indica la duración de todo el paquete, incluido el Código, Identificador, Longitud, Autentificador, y campos de atributo. Los Bytes que van más allá de la duración se considera el relleno y se descuida la recepción. Si la longitud de un paquete es menor que el indicado por el campo de longitud, el paquete es eliminado.


Authenticator (Verificador). (16 byte de longitud) se utiliza para autenticar la respuesta del servidor RADIUS, y también se utiliza en el algoritmo de ocultar la contraseña. Existen dos tipos de Autentificadores: Solicitud y respuesta.

Attributes (Atributos). El campo atributo lleva la información acerca de los detalles de la configuración de una petición o respuesta. Este campo está representado por: tipo, longitud, y el valor.


· Tipo: Un byte, en el rango de 1 a 255. Es para indicar el tipo de atributo. Comúnmente se utilizan atributos para la autenticación y autorización del RADIUS.

· Duración: Un byte para indicar la longitud del atributo en bytes, incluyendo el tipo, longitud, y el campo de valor.

· Valor: valor del atributo, hasta a 253 bytes. Su formato y contenido dependen del tipo y campos de longitud.





Atributos RADIUS



Tipos de mensajes RADIUS definidos por los RFC 2865 y 2866:


El siguiente diagrama muestra la secuencia seguida cuando un cliente accede a la red y se desconecta de la misma.




1- El cliente envía su usuario/contraseña, esta información es encriptada con una llave secreta y enviada en un Access-Request al servidor RADIUS (Fase de Autenticación).

2- Cuando la relación usuario/contraseña es correcta, entonces el servidor envía un mensaje de aceptación, Access-Accept, con información extra (Por ejemplo: dirección IP, máscara de red, tiempo de sesión permitido, etc.) (Fase de Autorización).

3- El cliente ahora envía un mensaje de Accounting-Request (Start) con la información correspondiente a su cuenta y para indicar que el usuario está reconocido dentro de la red (Fase de Accounting).

4- El servidor RADIUS responde con un mensaje Accounting-Response, cuando la información de la cuenta es almacenada.

5- Cuando el usuario ha sido identificado, éste puede acceder a los servicios proporcionados. Finalmente, cuando desee desconectarse, enviará un mensaje de Accounting-Request (Stop) con la siguiente información:




· Delay Time. Tiempo que el cliente lleva tratando de enviar el mensaje.
· Input Octets. Número de octetos recibido por el usuario.
· Output Octets. Número de octetos enviados por el usuario.
· Session Time. Número de segundos que el usuario ha estado conectado.
· Input Packets. Cantidad de paquetes recibidos por el usuario.
· Output Packets. Cantidad de paquetes enviados por el usuario.
· Reason. Razón por la que el usuario se desconecta de la red.



6- El servidor RADIUS responde con un mensaje de Accounting-Response cuando la información de cuenta es almacenada.



Cuando un servidor de acceso a la red envía una petición a un servidor RADIUS, el servidor RADIUS comprueba primero la dirección IP del servidor de acceso a la red que hace la solicitud. Si esta dirección IP no pertenece a uno de los servidores de acceso a la red con la que el servidor RADIUS se ha configurado para comunicarse, el servidor RADIUS no responde a la solicitud.



Según la IETF de la solicitud de comentarios (RFC) 2138, si un servidor RADIUS recibe una solicitud de acceso a la red un servidor que no está en el servidor RADIUS de la lista de configurar servidores de acceso a la red, el servidor RADIUS debe registrar el intento de acceso y, a continuación, descartar silenciosamente la solicitud. Cuando en silencio descartar una petición, el servidor RADIUS simplemente no responde a la solicitud de acceso a la red del servidor.



La siguiente figura presenta una vista simple de la topología de red asumida al establecer una conexión RADIUS autenticada con un router.









Generalidades del protocolo RADIUS


Características


El protocolo RADIUS tiene las siguientes características:


a) Seguridad

Las transacciones entre el cliente y el servidor RADIUS son autentificadas mediante el uso de un secreto compartido, el cual nunca es enviado por la red. En suma, algunos usuarios envían contraseñas encriptadas entre el cliente y el servidor RADIUS, para eliminar la posibilidad de que alguien se entrometa en una red insegura y pueda determinar la contraseña de los usuarios.


b) Flexibilidad

El servidor RADIUS puede soportar una variedad de métodos para autentificar un usuario. Cuando este es proveído con el nombre de usuario y la contraseña original dada por el usuario, puede soportar PPP PAP o CHAP, acceso UNIX, y otros mecanismos de autentificación.


c) Administración simple

El servidor RADIUS provee seguridad a la información en archivos de textos en una locación central; se pueden agregar nuevos usuarios a la base de datos o modificar información de usuario existente editando estos archivos existentes.


d) Capacidad extensiva de auditoria

RADIUS provee una extensiva capacidad de contabilidad, referida como contabilidad RADIUS. La información colectada en un archivo bitácora puede ser analizada para proyectar seguridad o usada para facturar.






Como trabaja RADIUS



RADIUS desempeña tres funciones primarias, éstas son: Autentificación, Autorización y Contabilidad (Auditoría).



Autenticación: Verifica si alguien o algo es quien dice ser.

Autorización: Indica si un usuario puede o no acceder a cierto recurso.

Accounting (Auditoría): Almacena datos sobre cuando y como se realizan peticiones (tanto las aceptadas como las rechazadas)




a). Autentificación

Un protocolo de autenticación es el intercambio programado de mensajes entre un objeto usuario y un objeto servidor teniendo como finalidad la autenticación, autorización de uso de recursos informáticos a los que tiene derecho y contabilización del uso de los mismos (AAA) para propósitos de rendimiento o facturación

RADIUS determina si los usuarios son elegidos para recibir los servicios solicitados. La información de autentificación es almacenada en un archivo de usuario local o base de datos oculta, o se puede acceder desde un mecanismo de autentificación externo como una tarjeta de activación.






b). Autorización

Autorización es el proceso de garantizar acceso a usuarios o grupos de ellos, o a un sistema especifico a los recursos de la red.

Controla la autorización de accesos para servicios específicos en la red configurando la sesión de usuarios. Una vez autentificado el usuario, RADIUS reporta que el usuario es autorizado para el acceso al servicio.

En el RADIUS, se acoplan la autenticación y funcionalidades de la autorización y van juntos. Si el nombre de usuario es encontrado y la contraseña es correcta, el servidor del RADIUS devuelve un “Acces-Accept” como contestación, incluyendo una la lista de pares de atributo-valor que describen los parámetros a ser usados para esta sesión. Los parámetros típicos incluyen el tipo de servicio (shell,framed), el tipo de protocolo , modo de asignación de la dirección IP (estática o dinámica), si aplica a lista de acceso, o una ruta estática para instalar en el RAS. La información de la configuración en el servidor del RADIUS define lo que se instalará en el RAS.



c). Contabilidad (Auditoría)

RADIUS contabiliza la información almacenada para los usuarios de marcado. Esta información es a menudo usada para propósitos de cobro. Cuando el usuario es autentificado y la sesión es configurada de acuerdo a la información de autorización, se inicia la creación de un registro de contabilidad y cuando se termina la sesión de usuario, se detiene el registro de contabilidad.

La contabilidad que ofrece del protocolo RADIUS puede usarse independientemente de la autenticación del RADIUS o aun de la autorización. Las funciones de contabilidad de RADIUS permiten enviar los datos a la salida y fin de las sesiones, indicando la cantidad de recursos (como tiempo, paquetes, los bytes, y así sucesivamente) que se usó durante la sesión. Un proveedor de Internet (ISP) podría usar RADIUS para controlar el acceso y la contabilidad de RADIUS para entregar al software de contabilidad estos datos para cargar a la cuenta del usuario.




Servidor Radius en Ambiente Corporativo


Las Empresas de mayor tamaño suelen tener los usuarios remotos que se conectan a la red en una variedad de maneras. Si nos fijamos en el diagrama, los usuarios remotos pueden conectarse a una red corporativa a través de Dial Up, Red Privada Virtual (VPN), redes inalámbricas y enlaces.



En la primera fila un usuario marca en un banco de módem que se conecta a un servidor RRAS. El servidor RRAS espera que el servidor RADIUS para la autenticación, y el servidor RADIUS, a su vez, espera los controles de las credenciales del usuario contra un controlador de dominio. Suponiendo que las credenciales que el usuario haya introducido son válidas, el controlador de dominio valida las credenciales y, a continuación, el servidor RADIUS se ve en la política de acceso remoto para el usuario y aprueba la conexión. Esta aprobación se pasa al servidor RRAS, y el usuario remoto tiene permiso para el acceso a los recursos de la red.

En la segunda fila de ordenadores, se puede ver que el mismo servidor RADIUS puede también entregar servicio a clientes VPN. En un entorno de VPN, el usuario remoto a través de los túneles de Internet puede llegar al servidor VPN corporativo. Antes de que el servidor VPN permita que el usuario remoto para acceder a cualquier red de recursos, la identidad del usuario remoto debe ser validado.

El usuario introduce sus credenciales, que luego se pasa al servidor RADIUS. El servidor RADIUS, chequea las credenciales del usuario contra un controlador de dominio. Suponiendo que las credenciales que el usuario haya introducido son válidas, el controlador de dominio valida las credenciales y, a continuación, el servidor RADIUS se ve en la politica de acceso remoto para el usuario y aprueba la conexión. Esta aprobación se pasa de nuevo con el servidor VPN, y el usuario remoto está permitido el acceso a los recursos de la red.


En la tercera fila del diagrama se muestra una autenticación de usuarios inalámbricos a través de un servidor RADIUS. En este diagrama, el punto de acceso inalámbrico está actuando como una pasarela inalámbrica y está conectado directamente al servidor RADIUS. No es raro, aunque para un punto de acceso inalámbrico que se conecta a un servidor VPN y los clientes inalámbricos a ser tratados como clientes VPN.


Conclusión

En general, RADIUS es bueno para los proveedores de servicios de Internet, así como a las empresas para identificar a sus clientes o trabajadores con facilidad. Se puede ayudar a los usuarios a conectar sus equipos de telecomunicaciones son molestias.


El principal uso del RADIUS es para proveedores de servicios de Internet, ya que puede ser utilizada en cualquier red, que requiere un servicio centralizado de contabilidad y verificación de servicios para su trabajo.


RADIUS es una opción excepcional para llevar a cabo la contabilidad sin ningún tipo de molestia.


EL protocolo RADIUS es un protocolo hecho por y para las necesidades: Autenticar, Autorizar, Mantener una contabilidad de uso.