SERVIDOR RADIUS -...

72
SERVIDOR RADIUS SERVIDOR RADIUS WPA + EAP-TTLS/PAP + FREERADIUS en Debian IEEE 802.1x IES. JACARANDÁ GRADO SUPERIOR DE A.S.I.R. 2012/13 JUAN MANUEL ROLDÁN DURÁN 1

Transcript of SERVIDOR RADIUS -...

Page 1: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

SERVIDOR RADIUS

WPA + EAP-TTLS/PAP + FREERADIUS en DebianIEEE 802.1x

IES. JACARANDÁGRADO SUPERIOR DE A.S.I.R. 2012/13

JUAN MANUEL ROLDÁN DURÁN

1

Page 2: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

INDICE

– Introducción …......….................................... 3,4– Definiciones …......….................................... 5-8– Instalación ….................................... …..... 9-14– Configuración servidor …............................................. 15-30– Configuración cliente …............................................. 31-33– Configuración usuario con ldap ..............................…............... 34-45– Certificados ….................................... …..... 46-51– Modo depuración ….................................... …..... 52-64– Problemas ….................................... …..... 65,66– Futuro próximo ........................................ …..... 67,68– Detalles técnicos interesante (encontrados en el desarrollo del proyecto) …..... 69– TPM: Tareas Pendientes y Mejoras ........................................ 70– Bibliografía ........................................ …...... 71,72

2

Page 3: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

INTRODUCCIÓN

Prática:

EnunciadoQueremos montar un servidor Radius que permite la autenticación de clientes

WIFIs tanto Linux como Windows en los diferentes puntos de acceso disponible en un entorno empresarial.

La autenticación:• Se hará mediante dertificados digitales creados por nuestra propia

entidad certificadora.• Como alternativa, también queremos que la conexión de los clientes a

los puntos de accesso se haga con open LDAP.

Análisis y pruebas de su implantación para su uso tanto en la red del centro como internamente en el departamento.

Por otro lado, dejaremos montado el punto WIFI del departamento.

3

Page 4: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

En esta práctica vamos a estudiar RADIUS (acrónimo en inglés de Remote Authentication Dial-In User Server), un protocolo ampliamente empleado para controlar el acceso a servicios en red, ya sea, mediante módem, adsl, ethernet o wifi, utilizando por defecto el puerto 1812 (UDP) para establecer sus conexiones. Un ejemplo muy conocido es Eduroam (EDUcation ROAMing, que es un proyecto internacional creado para facilitar el acceso a Internet a los miembros de las instituciones científico-académicas asociadas, desde cualquiera de estas instituciones).

El procedimiento de dicho servidor es el siguiente:Cuando se realiza la conexión con un ISP, se envía una información que

generalmente es un nombre de usuario y una contraseña. Esta información se transfiere a un dispositivo NAS (Network Access Server) sobre el protocolo PPP, quien redirige la petición a un servidor RADIUS sobre el protocolo RADIUS. El servidor RADIUS comprueba que la información es correcta utilizando esquemas de autenticación como PAP, CHAP o EAP. Si es aceptado, el servidor autorizará el acceso al sistema del ISP y le asigna los recursos de red como una dirección IP, y otros parámetros como L2TP, etc.

Una de las características más importantes del protocolo RADIUS es su capacidad de manejar sesiones, notificando cuando comienza y termina una conexión, así que al usuario se le podrá determinar su consumo y facturar en consecuencia; los datos se pueden utilizar con propósitos estadísticos.

4

Page 5: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

RADIUS fue desarrollado originalmente por Livingston Enterprises para la serie PortMaster de sus Servidores de Acceso a la Red (NAS), más tarde se publicó como RFC 2138 y RFC 2139. Actualmente existen muchos servidores RADIUS, tanto comerciales como de código abierto (las prestaciones pueden variar).

Dentro de esta práctica, en particular instalaremos una solución de código abierto denominada “FreeRADIUS v2”.

FreeRADIUS es un paquete de software de código abierto y libre distribución que implementa diversos elementos relacionados con RADIUS, tales como una biblioteca BSD para clientes, módulos para soporte en apache, y lo que más nos interesa en este punto, un servidor de RADIUS.

El servicio de FreeRADIUS es modular, para facilitar su extensión, y es muy escalable. Además, tiene casi todas las opciones que un usuario puede necesitar:

• Para realizar las tareas de AAA puede almacenar y acceder a la información por medio de múltiples bases de datos: LDAP (AD, OpenLDAP,…), SQL (MySQL, PostgreSQL, Oracle,…) y ficheros de texto (fichero local de usuarios, mediante acceso a otros Reales, fichero de sistema /etc/passwd,…).

• Soporta prácticamente toda clase de clientes Radius (por ejemplo, ChilliSpot, JRadius, mod_auth_radius, pam_auth_radius, Pyrad, extensiones php de RADIUS, etc).

• Se puede ejecutar en múltiples sistemas operativos: Linux (Debian, Ubuntu, Suse, Mandriva, Fedora Core, etc.), FreeBSD, MacOS, OpenBSD, Solaris, e incluso MS Windows por medio de cygwin.

• Soporta el uso de proxys y la replicación de servidores.

VUELTA AL INDICE

5

Page 6: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

DEFINICIONES

RADIUS (Remote Authentication Dial-In User Server) Es un protocolo que nos permite gestionar la “autenticación, autorización

y registro” (es más conocida como AAA, al ser éste su acrónimo de su denominación original inglesa “Authentication, Authorization, and Accounting”) de usuarios remotos sobre un determinado recurso.

AAA (autenticación , autorización y resgistro) sus definiciones a continuación.

Autenticación (authentication) Hace referencia al proceso por el cual se determina si un usuario tiene

permiso para acceder a un determinado servicio de red del que quiere hacer uso. El proceso de autenticación se realiza mediante la presentación de una identidad y unos credenciales por parte del usuario que demanda acceso.

Un tipo habitual de credencial es el uso de una contraseña (o password) que junto al nombre de usuario nos permite acceder a determinados recursos. Otros tipos más avanzados de credenciales son los certificados digitales.

Existen muchos métodos concretos que implementan el proceso de la autenticación. Algunos de ellos, soportados por RADIUS, son:

• Autenticación de sistema (system authentication).• Los protocolos PAP (Password Authentication Protocol), y su versión

segura CHAP (Challenge Handshake Authentication Protocol), que son métodos de autenticación usados por proveedores de servicios de Internet (ISPs) accesibles vía PPP.

• LDAP (Lightweight Directory Access Protocol), un protocolo a nivel de aplicación (sobre TCP/IP).

• Kerberos, el famoso método de autenticación diseñado por el MIT.• EAP (Extensible Authentication Protocol), que no es un método concreto

sino un entorno universal de autenticación empleado frecuentemente en redes inalámbricas y conexiones punto a punto.

6

Page 7: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

• Por último, también se permite la autenticación basada en ficheros locales de configuración del propio servidor RADIUS.

Autorización (authorization) Se refiere a conceder servicios específicos (entre los que se incluye la

“negación de servicio”) a un determinado usuario, basándose para ellos en su propia autenticación, los servicios que está solicitando, y el estado actual del sistema. Es posible configurar restricciones a la autorización de determinados servicios en función de aspectos como, por ejemplo, la hora del día, la localización del usuario, o incluso la posibilidad o imposibilidad de realizar múltiples “logins” de un mismo usuario.

Los métodos de autorización soportados habitualmente por un servidor de RADIUS incluyen bases de datos LDAP, bases de datos SQL (como Oracle, MySQL y PostgreSQL), o incluso el uso de ficheros de configuración locales al servidor.

*** No se debe confundir los términos autenticación con autorización. Mientras que la autenticación es el proceso de verificar un derecho reclamado por un individuo (persona o incluso ordenador), la autorización es el proceso de verificar que una persona ya autenticada tiene la autoridad para efectuar una determinada operación.

Registro (accounting, a menudo traducido también como contabilidad) Se refiere a realizar un registro del consumo de recursos que realizan los

usuarios. El registro suele incluir aspectos como la identidad del usuario, la naturaleza del servicio prestado, y cuando empezó y terminó el uso de dicho servicio.

PEAP (Protected Extensible Authentication Protocol) Es un método para transmitir de manera segura información de

autenticación, incluyendo contraseñas, sobre redes cableadas e inalámbricas. Hay que tener en cuenta que PEAP no es un protocolo de encriptación, sino que como otros tipos EAP solo autentican un cliente a una red.

NAS (Network Access Server) Es un sistema que proporciona acceso a la red. En algunos casos también

se conoce como RAS (Remote Access Server) o Terminal Server. En general, NAS es

7

Page 8: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

un elemento que controla el acceso a un recurso protegido.Cuando un cliente quiere hacer uso de uno de estos servicios se conecta a NAS,

quien a su vez se conecta a un servidor de AAA (típicamente RADIUS) preguntando si los credenciales proporcionados por el cliente son válidos. Basándose en su respuesta, NAS le permitirá acceder o no a este recurso protegido. El sistema NAS no contiene ninguna información sobre los usuarios que se pueden conectar ni sus credenciales, sino que utiliza esta información para enviarla a RADIUS, y que éste le informe sobre los permisos del cliente.

VUELTA AL INDICE

8

Page 9: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

INSTALACIÓN

REQUISITOS

Para la práctica que vamos a realizar necesitaremos lo siguiente:

Hardware:

– Una máquina, con los requisitos siguientes:– 256 MB de memoria RAM ( mínimo ).– 10 GB de disco duro (tener en cuenta el peso que pueda tener la base de datos).– 2 tarjetas de red ( 1 para WAN ).

– Dos puntos de acceso ( que soporte seguridad RADIUS ).

Software:

– Debian 6 con los siguientes paquetes:– Paquete freeradius-ldap ( contiene soporte para ldap ).– Paquetes slapd, ldap-utils.

9

Page 10: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

INSTALACIÓN DE INFRAESTRUCTURAS

La instalación de la infraestructura ya es existente. Nosotros vamos añadir a la red “192.168.5.0/24” un switch y dos puntos de acceso.

En el tema de software, pues instalaremos Freeradius y actualizaremos LDAP en la máquina virtual “Balansiya” con la “IP” 192.168.2.10. Para ello deberemos generar una serie de iptables en el FIREWALL para posibilitar el enrutamiento de los paquetes entre las diferentes redes sin provocar fallos de seguridad.

10

Page 11: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

INSTALACIÓN

Para empezar actualizaremos los repositorios con el siguiente comando para instalar las versiones más actualizadas.

“ aptitude update && aptitude upgrade -y”

Para proseguir instalaremos “ FREERADIUS ” (desde código fuente o desde los repositorios, en nuestro caso desde repositorio pues es más rápido y sencillo) con la peculariedad de que contenga soporte para LDAP, con lo cual usaremos el siguiente comando:

“ aptitude install freeradius-ldap ”

11

Page 12: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

También instalaremos los siguientes paquetes para la configuración que queremos realizar en nuestro servidor (aunque no es necesario si lo tuviéramos instalado en este servidor o en otro al que luego apuntaríamos).

“ aptitude install slapd ldap-utils”

12

Page 13: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Nos pedirá la contraseña del administrador de LDAP y su correspondiente verificación:

13

Page 14: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Una vez instalado los paquetes anteriormente nombrados, realizaremos la configuración del servidor RADIUS, que será comentado y explicado detalladamente en el siguiente punto del documento. También desarrollaremos otro punto para la configuración de LDAP.

VUELTA AL INDICE

14

Page 15: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

CONFIGURACIÓN DEL SERVIDOR

La configuración del servidor se hace mediante el fichero “radiusd.conf” del directorio /etc/freeradius/ (en versiones anteriores se hacía todo en “/etc/raddb”).

Aquí podemos seleccionar aspectos relacionados con el servidor (ficheros de log, parámetros de uso máximo, usuarios, grupos, …), bases de datos a utilizar para autenticar y autorizar (ficheros, SQL, LDAP, …), métodos de AAA.

Para evitar una excesiva longitud de este fichero “radiusd.conf” y por cuestiones de organización, se subdivide en varios ficheros mediante la directiva “$INCLUDE”:

*** imagen de la estructura que tendremos en cuenta en nuestra práctica (no se representa toda estructura de freeradius).

15

Page 16: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

• radius.conf: fichero principal, donde encontraremos muchas especificaciones y directivas del servidor, y también muchos “include” jerarquizando la información y directivas de este servidor.

• eap.conf: se utiliza para configurar el tipo de EAP (extensible authentication Protocol) a emplear.

• users: fichero donde podremos indicar usuarios a permitir acceso. En la actualidad también se puede definir múltiples entradas por defecto. Todas las entradas se procesan en el orden en que aparecen en el archivo de usuarios.

• clients.conf: tiene la lista de clientes que están autorizados para usar los servicios de AAA proporcionados.

• proxy.conf: este fichero configura directivas relacionadas con el funcionamiento en modo proxy y la lista de realms.

• sites-available: es el directorio donde se encuentran los sitios habilitados, que si queremos que estén en uso habrá que activarlos (por defecto viene activado el sitio “default”).

• sites-enabled: directorio donde estarán los enlaces a los sitios, indicando cuales están activos.

• ldap.attrmap: fichero donde es la asignación de atributos de diccionario de RADIUS a los atributos de directorio LDAP. Para ser utilizado por el módulo de autenticación y autorización LDAP (rlm_ldap).

• certs: es el directorio donde guardaremos los certificados que usemos o enlaces simbólicos de estos.

• modules: directorio donde se encuentran los diferentes módulos que puede usar este servidor.

• Otros ficheros como sql.conf (para configurar el acceso a bases de datos SQL), policy.conf, hints.conf, etc.

*** Recordar antes de realizar ninguna configuración, que haremos una copia siempre del fichero que vayamos a modificar, por seguridad y es recomendable leer completamente los archivos de configuración ya que las opciones de configuración están documentadas únicamente en estos archivos.

16

Page 17: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

La configuración que realizamos será para tener aunteticación mediante EAP-TTLS por las siguientes razones:

1. Es la configuración que queremos realizar.2. Permite usar certificado de cliente.3. Permite usar base de datos LDAP (que implementaremos en esta

práctica) para autenticar usuarios.4. No es vulnerable actualmente a ataques MITM ni de diccionario.

• Empezaremos con el fichero principal “radiusd.conf”:

1. Si queremos que se guarden logs de las solicitudes de autenticación, lo activamos en la siguiente sección del fichero:

17

Page 18: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

modificaremos las siguientes líneas:auth = no → yesauth_badpass = no → yesauth_goodpass = no → yes

Esto hará que los logs de freeradius (ruta: /var/log/freeradius/radius.log) tenga más detalles.

2. Aunque podríamos trabajar con más de un servidor en el que tendríamos que usar el proxy, en nuestra práctica lo haremos solo con un servidor al cual llamaremos “iesjacaranda”. Por tanto desactivaremos el proxy (que por defecto viene activado) en el siguiente apartado de este mismo fichero:

modificaremos las siguientes líneas:proxy_request = yes → no$INCLUDE proxy.conf (la comentaremos añadiendo delante “#”)

18

Page 19: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

3. Como vamos a usar LDAP para los usuarios y no MYSQL dejamos comentadas las siguientes líneas en este fichero:

#$INCLUDE sql.conf#$INCLUDE sql/mysql/counter.conf#$INCLUDE sqlippool.conf

• El siguiente fichero será “eap.conf”:En este fichero tenemos que definir dónde se encuentran los

certificados del servidor y de la autoridad de certificación (pues en esta práctica usamos eap-ttls).

El método de autenticación que vamos a utilizar “EAP-TTLS” no nos obliga a crear una autoridad de ceritificación, aunque sí vamos a necesitar tener un certificado de servidor. Para disponer de dicho certificado tenemos varias opciones:

1. Usar el certificado que se crea automáticamente al instalar freeradius.

2. Crear un certificado autofirmado.3. Crear nuestra propia autoridad de certificación, con la que

generaremos dicho certificado. Además, el tener una infraestructura PKI puede sernos útil también por si, en algún momento, utilizamos certificados de cliente, cosa opcional en EAP-TTLS, o para otros fines.

Lo más sencillo es utilizar la primera opción, pero nosotros haremos el tercer punto que hemos comentado, el cual especificaremos los pasos a realizar para obtener certificados, en puntos siguientes.

Los certificados de freeradius se guardan en la siguiente ruta: /etc/freeradius/certs **(los que genera por defecto, se guardan en → /etc/ssl por si lo quisiéramos utilizar para otra aplicación, en /etc/freeradius son enlaces simbólicos de estos.).

19

Page 20: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

La configuración del fichero será la siguiente (lo que no aparezca en la configuración lo damos por línea comentada):

Eap{

#protocolo de autenticación por defecto

default_eap_type = ttls#tiempo de expiración de la entrada (se elimina entrada)

timer_expire = 60#ignorar tipos desconocidos de eap

ignore_unknown_eap_types = no#máximas sesiones

max_sessions = 2500

tls {#entidad certificadora, certificados de entidad y servidor

certdir = ${confdir}/certscadir = ${confdir}/certsprivate_key_password = whateverprivate_key_file = ${certdir}/server.keycertificate_file = ${certdir}/server.pemCA_file = ${cadir}/ca.pemdh_file = ${confdir}/certs/dhrandom_file = ${confdir}/certs/random

#Establezca esta opción para especificar: permitir los sitios de cifrado tls

cipher_list = “DEFAULT”

cache {#para cuando queramos activar la caché

enable = no

20

Page 21: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

lifetime = 24 # hoursmax_entries = 255

}}

ttls{#protocolo de autenticación por defecto

default_eap_type = tls#cualquier atributo se copia en la solicitud de túnel

copy_request_to_tunnel = no#uso replicado del tunel

use_tunneled_reply = no#incluir longitud del mensaje

include_length = yes }

}

• Luego modificaremos el siguiente fichero “users”:

En este fichero podríamos: • Dar de alta los nombres de usuario y contraseña que podrán ser

usados para autenticarse frente al servidor Radius.• Indicar reglas de control para usuarios de MYSQL o LDAP.

En la configuración que estamos realizando, especificaremos las reglas de control de acceso para cada uno de los grupos definidos mediante el atributo “RadiusGroupName” en LDAP. Una vez dicho esto, sabemos que los usuarios los definiremos en LDAP, con lo cual desarrollaremos un punto más adelante para explicar como desarrollar el esquema de LDAP.

A tener en cuenta:1. La entrada especial DEFAULT representa cualquier usuario.

21

Page 22: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

2. Si una entrada contiene el item Fall-Through = Yes, se continúa el procesamiento de la siguiente entrada en orden.

3. Si una entrada contiene el item Fall-Through = No, el procesamiento del fichero se detiene y no se procesarán más entradas.

Una vez comentado esto, añadiremos la siguiente configuración al fichero, indicando dos reglas:

1. Que accedan aquellos usuarios que tengan el atributo de grupo “alumnos” de 8:00 a 15:00, y “profesores” a cualquier hora..

2. Que no accedan los usuarios que no tengan ese atributo.

Quedaría de la siguiente forma:

• Pasaremos a modificar el fichero “clients.conf”:

En este fichero se indican los “clientes” (puntos de acceso, router wifi, etc) que queramos tener, pero eso lo haremos en el punto de configuración del cliente, en el cual indicaremos como configurar el cliente para que pueda consultar a nuestro servidor Radius.

• Lo siguiente a modificar es el fichero “ldap” situado en “/etc/freeradius/modules/”.

La conexión entre Radius y LDAP podría ser sin cifrar o cifrada (en

22

Page 23: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

nuestro caso, sin cifrar), con lo cual la configuración será la siguiente:

• Tendremos que indicar el servidor LDAP, en este caso “localhost”.• Indicamos en que rama se encuentran los usuarios “basedn”.• Definimos el filtro de acceso: El acceso a través de radius se hace

con aquellos usuarios cuyo nombre de usuario está en el campo dialupAccess.

Algunas definiciones del contenido del fichero a modificar:Server = debe ir la dirección IP o el nombre de dominio del servidor.Identity = Usuario con privilegios en el LDAP y dominio de busqueda.Password = Password de este usuario (de conexión al LDAP).Basedn, definimos la rama base de busquedas, es decir le decimos donde buscar en el LDAP.Filter, aqui se define la busqueda LDAP.

Habrá que modificar el servidor virtual que configuremos, para habilitar la autenticación LDAP.

Captura de ejemplo:

El fichero quedaría de la siguiente forma:

23

Page 24: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

ldap{#conexión con ldap

#port = 636 → (descomentar para conexiones tls)server = “localhost”identify = “cn=admin,dc=iesjacaranda-brenes,dc=com”password = adminbasedn =“ou=alumnos,dc=iesjacaranda-brenes,dc=com”filter = “(uid=%{%{Stripped-User-Name}:-%{User-Name}})”base_filter = “(objectclass=radiusprofile)”

#máx. conexiones y tiemposldap_connections_number = 2500timeout = 4timelimit = 3net_timeout = 1

# Para posibilitar de hacer conexiones seguras habría que hacer modificaciones con las siguientes líneas:tls {

start_tls = no #cacertfile = /path/to/cacert.pem#require_cert = “.....” → “never”

}#ruta de mapeo de atributos

dictionary_mapping = ${confdir}/ldap.attrmap#directiva de password

password_attribute = userPassword #especifica si el módulo tiene que hacer cumplir “Novell eDirectory”, cuenta de cheques de políticas, y para #la detección de intrusos usuarios (depende de “--with-edir” )

edir_account_policy_check = no #directivas para filtrado

groupname_attribute = radiusGroupNamegroupmembership_filter = “(dialupAccess=%u)”groupmembership_attribute = radiusGroupName

}

24

Page 25: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

En este esquema podremos ver el significado de las líneas del fichero anterior, os dejo un par de enlaces por si queréis verlo mediante la web:

25

Page 26: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

26

Page 28: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

• Por ultimo, nos centraremos en las dos siguientes rutas:

/etc/freeradius/sites-availables//etc/freeradius/sites-enabled/

En la primera ruta, es donde se encuentran los ficheros de configuración de los servidores virtuales que tengamos. En este nos encontraremos con el denominado “default” (servidor que viene por defecto) al cual haremos una copia para crear un nuevo servidor virtual al que llamaremos “iesjacaranda”.

“ cp /etc/freeradius/sites-availables/default /etc/freeradius/sites-availables/iesjacaranda ”

En este fichero que hemos generado haremos las modificaciones necesarias para la configuración que queremos realizar.

“ nano /etc/freeradius/sites-availables/iesjacaranda ”

Las modificaciones nos dejarán el fichero de la siguiente manera:

#módulo para la autorizaciónauthorize {

preprocessauth_logchapmschapdigestsuffixeap {

ok = return}filesldapexpirationlogintime

28

Page 29: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

pap}

#módulo para la autenticaciónauthenticate {

Auth-Type LDAP {ldap}

# Allow EAP authenticationeap

}

#módulo de filtros de Contabilidad-Solicitud de paquetes preacct {

preprocessacct_uniquesuffixfiles

}

#módulo de contabilidadaccounting {

detailunixradutmpattr_filter.accounting_response

}

#módulo para la sesionessession {

radutmp}

#módulo para la despues de autenticarpost-auth {

execPost-Auth-Type REJECT {

attr_filter.access_reject

29

Page 30: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

}}

#módulos para el proxy que no vamos a usar, por lo tanto no tiene directivaspre-proxy {}

post-proxy {}

Así como los servidores virtuales se definen en /etc/freeradius/sites-available, para activar los servidores que queremos tener en uso, tendremos que situarnos en la segunda ruta indica anteriormente (/etc/freeradius/sites-enabled/) y crear un enlace. Para ello, lanzaremos el siguiente comando para activar el servidor virtual que hemos creado y modificado.

“ Ln -s /etc/freeradius/sites-available/iesjacaranda /etc/freeradius/sites-enabled/iesjacaranda ”

Como solo vamos a usar este servidor virtual borraremos el enlace “default”(que viene por defecto creado), para que solo funcione el servidor virtual que nosotros hemos creado y que hemos denominado “iesjacaranda”.

VUELTA AL INDICE

30

Page 31: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

CONFIGURACIÓN DEL CLIENTE

Los denominados clientes del servidor, en nuestra práctica será los puntos de acceso que instalaremos en nuestra red.

Los puntos de acceso no realizan el papel de autenticador y su única función es encapsular los paquetes de tipo EAP en paquetes RADIUS. Esto nos proporciona una ventaja importante:

** Podremos ampliar la cobertura wifi de la manera mas sencilla que es añadiendo nuevos puntos de acceso a nuestra infraestructura de red.

Por ello configuramos el punto de acceso que actúe como los denominados clientes del servidor Radius (Freeradius en nuestro caso).

Antes de configurar el punto de acceso, introduciremos los datos necesario en el fichero de clientes (clients.conf) para definir el punto de acceso como cliente del servidor Radius.

31

Page 32: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

CONFIGURACIÓN DEL PUNTO DE ACCESO

La configuración depende de la marca del punto de acceso, en nuestro caso será la siguiente:

Accederemos mediante web indicando la ip correspondiente que pone en su manual como configuración predeterminada e introduciremos nombre de usuario y contraseña.

Una vez dentro, nos situamos en la pestaña “wireless”. En esta página indicaremos los detalles para la configuración correcta del punto de acceso para que pueda consultar al servidor Radius.

Los detalles que hay que indicar de la configuración son los siguientes:

1. SSID → CLASE-RADIUS (en este ejemplo)2. Channel → 8-2.447MHz

3. Mode Security → WPA (método autenticación)4. Cipher Type → AES5. Radius Server → 192.168.5.1 (ip servidor radius)

32

Page 33: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

6. Radius Port → 1812 (puerto escucha radius)7. Shared Key → “clave” (clave compartida 8. Shared Key Confirm → “clave” con servidor Radius)9. Key Renewal → 1500

VUELTA AL INDICE

33

Page 34: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

CONFIGURACIÓN DEL USUARIO

Una vez instalado LDAP, como hemos comentado en puntos anteriores, en este punto desarrollaremos como configuraremos LDAP para nuestros propósitos, que es el de usar LDAP para autenticar los usuarios de nuestro servidor RADIUS.

Para empezar configuramos LDAP, introduciendo el siguiente comando:

“ dpkg-reconfigure slapd ”

Seleccionamos que “no” queremos omitir la configuración como vemos en la captura superior.

34

Page 35: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Le indicamos nombre del dominio, en nuestro caso, “iesjacaranda-brenes.org”.

Le indicamos el nombre de la organización, en nuestro caso, será la siguiente: “iesjacaranda-brenes”.

35

Page 36: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Le indicamos la contraseña de administrador de LDAP, le indicamos, por ejemplo, “admin” y la verificamos.

Seleccionamos el motor de base de datos “BDB”.

36

Page 37: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Seleccionamos que no borre la base de datos si se purga el paquete slapd. Y que mueva los ficheros ya creados.

Y seleccionamos que “no” deseamos ldapv2.

37

Page 38: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Proseguiremos con la configuración para la adaptación con el servidor Radius. Para ello necesitaremos:

– Crear la estructura que queremos para ldap, en un fichero llamado, por ejemplo, “base.ldif”:

dn: ou=Usuarios,dc=iesjacaranda-brenes,dc=orgou: Usuariosobjectclass: topobjectClass: organizationalUnit

dn: ou=Grupos,dc=iesjacaranda-brenes,dc=orgou: Gruposobjectclass: topobjectClass: organizationalUnit

dn: ou=Equipos,dc=iesjacaranda-brenes,dc=orgou: Equiposobjectclass: topobjectClass: organizationalUnit

dn: cn=profesores,ou=Grupos,dc=iesjacaranda-brenes,dc=orgobjectClass: posixGroupobjectClass: topcn: profesoresgidNumber: 2000

dn: cn=alumnos,ou=Grupos,dc=iesjacaranda-brenes,dc=orgobjectClass: posixGroupobjectClass: topcn: alumnosgidNumber: 3000

38

Page 39: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Lanzamos el fichero “base.ldif” con el siguiente comando:

“ldapadd -x -D “cn=admin,dc=iesjacaranda-brenes,dc=org” -W -f base.ldif”

Nos pedirá la contraseña:

Un ejemplo del resultado positivo del comando anterior:

Aquí mostramos una parte de la estructura añadida (con el comando “slapcat”).

39

Page 40: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

– Luego añadiremos “radius.schema” a los esquemas de ldap. Esto lo realizamos por una sencilla razón que es que el servidor ldap reconozca los siguientes atributos con su correspondiente objectclass, a añadir a los usuarios:

– atributo “ dialupAccess ”.– atributo “ radiusGroupName ”. – objectclass: “ radiusprofile ”.

Para disponer del esquema, tenemos que copiar el fichero “ openldap.schema ” situado en la siguiente ruta:

“/usr/share/doc/freeradius/examples/”

en la carpeta indicada a continuación:

“ /etc/ldap/schema/ ”

*** con el siguiente nombre “radius.schema” (para no tener conflitos con otros esquemas)

Una vez realizado lo indicado, pasaremos a generar un fichero(ruta que queramos), por ejemplo “schema.conf” y le introducimos lo siguiente:

Haremos una busqueda de los esquemas que existen en nuestro ldap, con el siguiente comando:

“ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=schema,cn=config dn”

40

Page 41: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Lo siguiente a realizar, es crear un directorio (ruta que queramos), por ejemplo “out”. Seguidamente ejecutamos el siguiente comando:

“slapcat -f schema.conf -F out -n0 -H ldap:///cn={0}radius,cn=schema,cn=config -l cn=radius.ldif”

Esto nos generará una serie de ficheros en “out” y un fichero en la ruta donde estemos como vemos en la siguiente captura:

41

Page 42: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Editamos el fichero:

“nano cn\=radius.ldif”

Y cambiamos:

dn: cn={0}radius,cn=schema,cn=configobjectClass: olcSchemaConfigcn: {0}radius

Por:dn: cn=radius,cn=schema,cn=configobjectClass: olcSchemaConfigcn: radius

Y al final del fichero eliminamos las siguientes líneas:

structuralObjectClass: olcSchemaConfigentryUUID: 85d35afa-2992-1031-8f93-0d1d8c5b6386creatorsName: cn=configcreateTimestamp: 20120503173822ZentryCSN: 20120503173822.097163Z#000000#000#000000modifiersName: cn=configmodifyTimestamp: 20120503173822Z

Con el siguiente comando añadiremos el esquema a ldap:

“ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=radius.ldif”

42

Page 43: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Buscamos con el siguiente comando y vemos que ahora si nos aparece el esquema añadido:

“ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn”

Y por último reiniciamos los dos servicios:

“service slapd restart”“service freeradius restart”

Una vez que tengamos la estructura y los esquemas añadidos, introduciremos los usuarios, que será con la siguiente estructura, la cual se ejecutará en un script, por la sencilla razón de que van a ser muchos usuarios (por eso hay variables en el esquema que vemos a continuación):

43

Page 44: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

dn: uid=$usu,ou=Usuarios,dc=iesjacaranda-brenes,dc=orguid: $ususn: $apellido1 cn: $usu"objectClass: topobjectClass: personobjectClass: pilotPerson objectClass: radiusprofileuserPassword: $clave1 ***(la clave se generará aleatoriamente)dialupAccess: $usuradiusGroupName: alumnos

*** Una cosa importantísima a tener en cuenta, es que el fichero que le pasemos al script que nos generará los usuarios no debe tener acentos pues ldap no los admite.

Para los profesores sería la estructura la misma, en otro script, solo cambiaríamos “radiusGroupName” que indicaría “profesores”.

Aquí os muestro una captura de usuarios añadidos con el script.

44

Page 45: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Y otra captura de una parte de la estructura creada (exactamente un usuario).

VUELTA AL INDICE

45

Page 46: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

CERTIFICADOS

Para la obtención automática de los certificados hay varias maneras pero nosotros en la práctica que estamos realizando usaremos un método automatizado para obtener los certificados necesarios en esta versión de freeradius.

Lo primero, es saber la localización de los ficheros que necesitaremos:

“/usr/share/doc/freeradius/examples/certs”

Aquí encontraremos los siguientes ficheros necesarios:

Lo que haremos será modificar los tres ficheros (ca.cnf, client.cnf y server.cnf) con los datos nuestros. Una vez modificados los ficheros correspondientes lanzaremos el siguiente comando:

“./bootstrap”

El cual realizará una serie de procesos el cual dará como resultado una lista de ficheros que serán los certificados generados.

– 01.pem– ca.key– ca.pem– server.crt– server.key– …

46

Page 47: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

“ca.cnf” es para configurar el certificado de CA como aparece en la captura:

47

Page 48: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

“server.cnf” es el fichero para configurar los parámetros del certificado del servidor para generarlo automáticamente.

Los commonName en cada fichero deberían ser diferentes para poder identificar cada uno. Por ejemplo en el que se genera para el cliente, lo conveniente sería que llevará el nombre del cliente y el fichero resultante renombrarlo (“sin modificar la extensión del fichero”) con su cuenta de correo.

48

Page 49: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

“client.cnf” es el fichero para configurar los parámetros del certificado del cliente.

49

Page 50: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Ejecutamos el comando:

50

Page 51: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Ya tenemos los ficheros generados, sino los tuviéramos nos tendría que haber indicado algún error (normalmente por una modificación incorrecta de los ficheros indicados) :

Una vez obtenidos, los ficheros necesarios los copiamos en la siguiente ruta, o le hacemos un enlace simbólico como los que aparecen en la captura (que son los que se generan por defecto con sus correspondientes certificados):

/etc/freeradius/certs/

*** “Random” lo situaremos también en esta ruta (aunque por defecto es /dev/random). Tendremos que indicarlo en el fichero “eap.conf”.

VUELTA AL INDICE

51

Page 52: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

MODO DEPURACIÓN

Si el servidor se instala, pero no corre adecuadamente se puede emplear el modo depuración (debug) para tratar de identificar el problema y corregirlo.

Al iniciar el servidor en modo depuración, en pantalla se irán presentando los mensajes de ejecución, mediante los cuales se puede identificar posibles problemas durante la ejecución del servicio.

Para iniciar el servidor en modo depuración en la consola de ejecución, se debeescribir el siguiente comando:

“ freeradius -X ”

Después de la ejecución de este comando se observará un poco de texto impreso en la pantalla.

52

Page 53: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

53

Page 54: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

54

Page 55: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

55

Page 56: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

56

Page 57: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

57

Page 58: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

58

Page 59: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

59

Page 60: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

60

Page 61: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

61

Page 62: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Si en la pantalla de depuración del servidor aparece “ Ready to process requests ” esto indica que está corriendo adecuadamente, para verificar su funcionamiento se puede emplear el programa “radtest”.

RADTEST

Provee una forma simple y conveniente para enviar requerimientos a un servidor RADIUS y analizar las respuestas a estos requerimientos.

Para ello debemos de escribir el siguiente comando:

“ radtest test test localhost 0 testing123 ”

1º test → User-Name2º test → User-Passwordlocalhost → Ip del servidor0 → Nas-Porttesting123 → password compartido entre radius y punto de acceso.

Se presentará en la pantalla del servidor de autenticación más mensajes indicando los requerimientos que recibe y las repuestas dadas a los mismos.

El programa “radtest” debería recibir la respuesta en unos pocos segundos, no importa si la respuesta es de aceptación o rechazo lo que interesa es que el servidor responda.

Las siguientes capturas son unos ejemplos del resultado que puede dar:

– cuando la contraseña compartida es incorrecta.

62

Page 63: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

– cuando esta todo correcto pero no estas dentro del horario permitido.

– cuando es aceptado.

Si quisiéramos comprobar desde otro equipo (ya sea linux, windows) o móvil (android) podremos visualizar los pasos a seguir en el manual de usuario.

En este momento el servidor RADIUS está listo para futuras conexiones y modificaciones posibles o necesarias para el servidor.

Existen algunos mensajes definidos por los RFC 2865 y 2866:Access-Request→Enviado por un cliente RADIUS para solicitar

autenticación y autorización para conectarse a la red. Debe contener el usuario y contraseña (ya sea de usuario o CHAP); además del puerto NAS, si es necesario.

63

Page 64: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

Access-Accept→Enviado por un servidor RADIUS en respuesta a un mensaje de Access-Request. Informa que la conexión está autenticada y autorizada y le envía la información de configuración para comenzar a usar el servicio.

Access-Reject→Enviado por un servidor RADIUS en respuesta a un mensaje de Access-Request. Este mensaje informa al cliente RADIUS que el intento de conexión ha sido rechazado. Un servidor RADIUS envía este mensaje ya sea porque las credenciales no son auténticas o por que el intento de conexión no está autorizado.

Access-Challenge→Envío de un servidor RADIUS en respuesta a un mensaje de Access-Request. Este mensaje es un desafío para el cliente RADIUS. Si este tipo de paquete es soportado, el servidor pide al cliente que vuelva a enviar un paquete Access-Request para hacer la autenticación. En caso de que no sea soportado, se toma como un Access-Reject.

Accounting-Request→Enviado por un cliente RADIUS para especificar información de cuenta para una conexión que fue aceptada.

Accounting-Response→Enviado por un servidor RADIUS en respuesta a un mensaje de Accounting-Request. Este mensaje reconoce el procesamiento y recepción exitosa de un mensaje de Accouting-Response.

VUELTA AL INDICE

64

Page 65: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

PROBLEMAS

1. El primer inconveniente, el cual solucionaría muchos problemas con este servidor es el INGLÉS, pues este servidor tiene mucha información y comentarios sobre él en todos sus ficheros.

2. Problemas con LDAP: compatibilidades entre los sistemas más comunes de autenticación y los protocolos de autenticación. Mi elección TTLS-PAP.

3. Algunos reflejan que han tenido problemas con la autenticación con ldap en el atributo “password_attribute = userPassword”, hacía que no funcionara la autenticación. El problema era tan sencillo como indicar: “password_attribute = clearPassword”. Por mi parte no he tenido problemas, me funcionan los dos.

4. A tener en cuenta en ldap al añadir esquema antes que la estructura, desaparece esquema añadidos.

5. Microsoft no da soporte nativo a EAP-TTLS. (Solución: instalar suplicantes como Wpa_Supplicant).

6. Hay ocasiones en que, a pesar de parar el servidor Radius, no podemos lanzarlo ya que nos aparece el siguiente error:

65

Page 66: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

“ Error binding to port for 0.0.0.0 port 1812 ”

Para solucionarlo, deberemos de ejecutar el siguiente comando:

“ ps –all ”

Este comando nos informa de todos los procesos que hay ejecutándose en el sistema.

Como se puede apreciar, existe un proceso llamado Radiusd. Deberemos de “matar” dicho proceso. Para ello utilizaremos el comando “kill”. Debemos de fijarnos en el PID del proceso Radiusd, en nuestro caso “19704”. Ejecutar:

“ kill -9 19704 ”

Después de ejecutarlo, podemos darnos cuenta, que ya no se está ejecutando.

Después de limpiar nuestro sistema del proceso radiusd, lo lanzamos igual que antes:

“ radiusd –X ”

Y lo dejamos en espera de recibir peticiones, por parte de algún cliente (en nuestro caso el cliente son 2 PA – que posteriormente lo configuraremos – con IP 192.16.5.2 y 192.16.5.3).

VUELTA AL INDICE

66

Page 67: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

FUTURO PRÓXIMO

Aunque RADIUS es el protocolo para AAA más extendido, ya existe un nuevo protocolo que está llamado a sustituir a RADIUS. Su nombre es DIAMETER, y también proporciona manejo de errores y comunicación entre dominios.

En verdad DIAMETER aparece porque la IETF (dedicada a crear la RFC de radius) no permitió crear un nuevo código mejorado, llamado “ RADIUS v.2 ”sin haber publicado el primer estándar, con lo cual se le denominó DIAMETER.

DIAMETEREl concepto básico del protocolo DIAMETER, cuyo desarrollo se ha basado en

el protocolo RADIUS, es de proporcionar un protocolo base que pueda ser extendido para proporcionar servicios de autenticación, autorización y auditoría, a nuevas tecnologías de acceso. DIAMETER está diseñado para trabajar tanto de una manera local como en un estado de alerta, sondeo y captura, que en inglés se le denomina roaming de AAA, que le permite ofrecer servicios sumamente móviles, dinámicos, flexibles y versátiles.

Mejora de RADIUSEl nombre es un juego de palabras respecto al protocolo RADIUS, su

predecesor (un diámetro es el doble del radio). Diameter no es directamente compatible hacia atrás, pero proporciona un método de actualización desde RADIUS.

Las principales diferencias son:

• Usa protocolos de transportes fiables (TCP o SCTP, no UDP).• Usa seguridad a nivel de transporte (IPSEC o TLS).• Tiene compatibilidad transicional con RADIUS.• Tiene un espacio de direcciones mayor para AVPs (Attribute Value Pairs,

pares atributo-valor) e identificadores (32 bits en lugar de 8).

67

Page 68: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

• Es un protocolo peer-to-peer en lugar de cliente-servidor: admite mensajes iniciados por el servidor.

• Pueden usarse modelos con y sin estado.• Tiene descubrimiento dinámico de peers (usando DNS SRV y NAPTR).• Tiene negociación de capacidades.• Admite ACKs en el nivel de aplicación, definiendo métodos de fallo y

máquinas de estado (RFC 3539).• Tiene notificación de errores.• Tiene mejor compatibilidad con roaming.• Es más fácil de extender, pudiendo definirse nuevos comandos y

atributos.• Incluye una implementación básica de sesiones y control de usuarios.

En la ACTUALIDADSe considera que Diameter no va a sustituir a Radius en su puesto hegemónico,

porque simplemente cada uno está buscando su segmento.

VUELTA AL INDICE

68

Page 69: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

DETALLES TÉCNICOS

Una vez realizada la práctica me gustaría resaltar algunos detalles de este servidor el cual no me ha dejado sorprender de la infinidad de directivas y modulos que tiene para sus funciones.

Cabe destacar:

1. Los sitios habilitados (site-available y enabled) que la estructura es semejante a otros servidores como Apache, Nginx, y otros proyectos similares.

2. La infinidad de compatibilidades que tiene, un ejemplo claro, son los diferentes tipos de modulos para las diferentes conexiones que se pueden realizar.

3. La variedad de filtrados que se pueden realizar.

4. Trae incorporadas sus propias herramientas (no todas, las más necesarias).

5. La perfecta jerarquía realizada a partir de la versión 2 (al menos en la versión que hemos usado como es “freeradius v.2”).

VUELTA AL INDICE

69

Page 70: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

TPM: Tareas pendientes y mejoras

Esta práctica es bastante completa en lo que ha contenido se trata, su funcionamiento es correcto con una determinada seguridad, con lo cual no creo que queden tareas pendientes. Eso sí, posibles mejoras siempre las hay como podrían ser las siguientes:

– Poner entorno gráfico, como por ejemplo “dialupadmin”, “daloradius”, “phpldapadmin” …

– Añadir un portal cautivo en la estructura que hemos desarrollado como por ejemplo puede ser “pfsense”.

– Podríamos usar certificados para los clientes.– Se podría configurar la conexión segura a LDAP (por si algún día se cambiara de lugar y no estuvieran los dos servicios en la misma máquina).

VUELTA AL INDICE

70

Page 71: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

BIBLIOGRAFÍA

LIBRO:

libro RADIUS / AAA / 802.1X ed. Ra-Ma

PÁGINA OFICIAL DE FREERADIUS:

http://wiki.freeradius.org/Home

PÁGINAS PARA POSIBLE CONFIGURACIÓN:

FreeRADIUS PEAP http://www.tldp.org/HOWTO/8021X-HOWTO/freeradius.html

WPA2 Enterprise + EAP-TTLS/PAP + FREERADIUS en Debian http://enavas.blogspot.com.es/2012/02/freeradius-en-debian-para-autenticacion.html

Red WiFi Segura: WPA+EAP-TLS+RADIUShttp://karman.cc/blog/archives/117

PÁGINAS PARA POSIBLE CONFIGURACIÓN LDAP:

Añadir esquema y usuarios a ldaphttp://ubuntuforums.org/showthread.php?t=1976883

Conexión freeradius-ldap y explicación de algunos atributos de ldaphttp://etutorials.org/Server+Administration/ldap+system+administration/Part+II+Application+Integration/Chapter+8.+Standard+Unix+Services+and+LDAP/8.4+FreeRadius/

71

Page 72: SERVIDOR RADIUS - iesjacaranda-brenes.orgiesjacaranda-brenes.org/redmine/attachments/download/71... · servidor radius servidor radius wpa + eap-ttls/pap + freeradius en debian ieee

SERVIDOR RADIUS

OTRAS PÁGINAS DE INTERES:

Portal cautivo (pfsense + freeradius)http://doc.pfsense.org/index.php/FreeRADIUS_2.x_package

Servidor RADIUS con gestión Web: FreeRADIUS + daloRADIUS http://blog.e2h.net/2011/07/01/servidor-radius-con-gestion-web-freeradius-daloradius/

Respuestas de freeradius y posible configuración de freeradiushttp://yobtrams.wordpress.com/tag/servidor-radius/

VUELTA AL INDICE

72