You are on page 1of 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 ROLDN DURN

SERVIDOR RADIUS

INDICE

Introduccin
..........................................
Definiciones
..........................................
Instalacin
.................................... .....
Configuracin servidor
.............................................
Configuracin cliente
.............................................
Configuracin usuario con ldap .............................................
Certificados
.................................... .....
Modo depuracin
.................................... .....
Problemas
.................................... .....
Futuro prximo
........................................ .....
Detalles tcnicos interesante (encontrados en el desarrollo del proyecto) .....
TPM: Tareas Pendientes y Mejoras
........................................
Bibliografa
........................................ ......

3,4
5-8
9-14
15-30
31-33
34-45
46-51
52-64
65,66
67,68
69
70
71,72

SERVIDOR RADIUS

INTRODUCCIN
Prtica:
Enunciado
Queremos montar un servidor Radius que permite la autenticacin de clientes
WIFIs tanto Linux como Windows en los diferentes puntos de acceso disponible en
un entorno empresarial.
La autenticacin:
Se har mediante dertificados digitales creados por nuestra propia
entidad certificadora.
Como alternativa, tambin queremos que la conexin de los clientes a
los puntos de accesso se haga con open LDAP.
Anlisis y pruebas de su implantacin para su uso tanto en la red del centro
como internamente en el departamento.
Por otro lado, dejaremos montado el punto WIFI del departamento.

SERVIDOR RADIUS

En esta prctica vamos a estudiar RADIUS (acrnimo en ingls de Remote


Authentication Dial-In User Server), un protocolo ampliamente empleado para
controlar el acceso a servicios en red, ya sea, mediante mdem, 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 cientficoacadmicas asociadas, desde cualquiera de estas instituciones).

El procedimiento de dicho servidor es el siguiente:


Cuando se realiza la conexin con un ISP, se enva una informacin que
generalmente es un nombre de usuario y una contrasea. Esta informacin se
transfiere a un dispositivo NAS (Network Access Server) sobre el protocolo PPP,
quien redirige la peticin a un servidor RADIUS sobre el protocolo RADIUS. El
servidor RADIUS comprueba que la informacin es correcta utilizando esquemas de
autenticacin 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 direccin IP, y
otros parmetros como L2TP, etc.

Una de las caractersticas ms importantes del protocolo RADIUS es su


capacidad de manejar sesiones, notificando cuando comienza y termina una
conexin, as que al usuario se le podr determinar su consumo y facturar en
consecuencia; los datos se pueden utilizar con propsitos estadsticos.
4

SERVIDOR RADIUS

RADIUS fue desarrollado originalmente por Livingston Enterprises para la


serie PortMaster de sus Servidores de Acceso a la Red (NAS), ms tarde se public
como RFC 2138 y RFC 2139. Actualmente existen muchos servidores RADIUS,
tanto comerciales como de cdigo abierto (las prestaciones pueden variar).

Dentro de esta prctica, en particular instalaremos una solucin de cdigo


abierto denominada FreeRADIUS v2.
FreeRADIUS es un paquete de software de cdigo abierto y libre distribucin
que implementa diversos elementos relacionados con RADIUS, tales como una
biblioteca BSD para clientes, mdulos para soporte en apache, y lo que ms nos
interesa en este punto, un servidor de RADIUS.
El servicio de FreeRADIUS es modular, para facilitar su extensin, y es muy
escalable. Adems, tiene casi todas las opciones que un usuario puede necesitar:
Para realizar las tareas de AAA puede almacenar y acceder a la
informacin por medio de mltiples 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 prcticamente 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 mltiples 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 replicacin de servidores.

VUELTA AL INDICE

SERVIDOR RADIUS

DEFINICIONES
RADIUS (Remote Authentication Dial-In User Server)
Es un protocolo que nos permite gestionar la autenticacin, autorizacin
y registro (es ms conocida como AAA, al ser ste su acrnimo de su denominacin
original inglesa Authentication, Authorization, and Accounting) de usuarios
remotos sobre un determinado recurso.
AAA (autenticacin , autorizacin y resgistro) sus definiciones a continuacin.
Autenticacin (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 autenticacin se realiza mediante la presentacin de una identidad y unos
credenciales por parte del usuario que demanda acceso.
Un tipo habitual de credencial es el uso de una contrasea (o password) que
junto al nombre de usuario nos permite acceder a determinados recursos. Otros tipos
ms avanzados de credenciales son los certificados digitales.
Existen muchos mtodos concretos que implementan el proceso de la
autenticacin. Algunos de ellos, soportados por RADIUS, son:
Autenticacin de sistema (system authentication).
Los protocolos PAP (Password Authentication Protocol), y su versin
segura CHAP (Challenge Handshake Authentication Protocol), que son
mtodos de autenticacin usados por proveedores de servicios de
Internet (ISPs) accesibles va PPP.
LDAP (Lightweight Directory Access Protocol), un protocolo a nivel de
aplicacin (sobre TCP/IP).
Kerberos, el famoso mtodo de autenticacin diseado por el MIT.
EAP (Extensible Authentication Protocol), que no es un mtodo concreto
sino un entorno universal de autenticacin empleado frecuentemente en
redes inalmbricas y conexiones punto a punto.

SERVIDOR RADIUS
Por ltimo, tambin se permite la autenticacin basada en ficheros
locales de configuracin del propio servidor RADIUS.
Autorizacin (authorization)
Se refiere a conceder servicios especficos (entre los que se incluye la
negacin de servicio) a un determinado usuario, basndose para ellos en su propia
autenticacin, los servicios que est solicitando, y el estado actual del sistema. Es
posible configurar restricciones a la autorizacin de determinados servicios en
funcin de aspectos como, por ejemplo, la hora del da, la localizacin del usuario, o
incluso la posibilidad o imposibilidad de realizar mltiples logins de un mismo
usuario.
Los mtodos de autorizacin 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 configuracin locales al servidor.
***
No se debe confundir los trminos autenticacin con autorizacin.
Mientras que la autenticacin es el proceso de verificar un derecho reclamado por un individuo (persona o
incluso ordenador), la autorizacin es el proceso de verificar que una persona ya autenticada tiene la autoridad
para efectuar una determinada operacin.

Registro (accounting, a menudo traducido tambin 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 mtodo para transmitir de manera segura informacin de
autenticacin, incluyendo contraseas, sobre redes cableadas e inalmbricas. Hay que
tener en cuenta que PEAP no es un protocolo de encriptacin, 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 tambin
se conoce como RAS (Remote Access Server) o Terminal Server. En general, NAS es
7

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 (tpicamente RADIUS) preguntando
si los credenciales proporcionados por el cliente son vlidos. Basndose en su
respuesta, NAS le permitir acceder o no a este recurso protegido. El sistema NAS no
contiene ninguna informacin sobre los usuarios que se pueden conectar ni sus
credenciales, sino que utiliza esta informacin para enviarla a RADIUS, y que ste le
informe sobre los permisos del cliente.

VUELTA AL INDICE

SERVIDOR RADIUS

INSTALACIN
REQUISITOS
Para la prctica que vamos a realizar necesitaremos lo siguiente:
Hardware:
Una mquina, con los requisitos siguientes:
256 MB de memoria RAM ( mnimo ).
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.

SERVIDOR RADIUS
INSTALACIN DE INFRAESTRUCTURAS

La instalacin de la infraestructura ya es existente. Nosotros vamos aadir 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 mquina 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

SERVIDOR RADIUS
INSTALACIN
Para empezar actualizaremos los repositorios con el siguiente comando para
instalar las versiones ms actualizadas.
aptitude update && aptitude upgrade -y

Para proseguir instalaremos FREERADIUS (desde cdigo fuente o desde


los repositorios, en nuestro caso desde repositorio pues es ms rpido y sencillo) con
la peculariedad de que contenga soporte para LDAP, con lo cual usaremos el
siguiente comando:
aptitude install freeradius-ldap

11

SERVIDOR RADIUS

Tambin instalaremos los siguientes paquetes para la configuracin que


queremos realizar en nuestro servidor (aunque no es necesario si lo tuviramos
instalado en este servidor o en otro al que luego apuntaramos).
aptitude install slapd ldap-utils

12

SERVIDOR RADIUS

Nos pedir la contrasea del administrador de LDAP y su correspondiente


verificacin:

13

SERVIDOR RADIUS

Una vez instalado los paquetes anteriormente nombrados, realizaremos la


configuracin del servidor RADIUS, que ser comentado y explicado detalladamente
en el siguiente punto del documento. Tambin desarrollaremos otro punto para la
configuracin de LDAP.

VUELTA AL INDICE

14

SERVIDOR RADIUS

CONFIGURACIN DEL
SERVIDOR
La configuracin del servidor se hace mediante el fichero radiusd.conf del
directorio /etc/freeradius/ (en versiones anteriores se haca todo en /etc/raddb).
Aqu podemos seleccionar aspectos relacionados con el servidor (ficheros de
log, parmetros de uso mximo, usuarios, grupos, ), bases de datos a utilizar para
autenticar y autorizar (ficheros, SQL, LDAP, ), mtodos de AAA.
Para evitar una excesiva longitud de este fichero radiusd.conf y por
cuestiones de organizacin, se subdivide en varios ficheros mediante la directiva
$INCLUDE:

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

15

SERVIDOR RADIUS

radius.conf: fichero principal, donde encontraremos muchas


especificaciones y directivas del servidor, y tambin muchos include
jerarquizando la informacin 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 tambin se puede definir mltiples 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 estn 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 estn en uso habr que activarlos (por
defecto viene activado el sitio default).
sites-enabled: directorio donde estarn los enlaces a los sitios, indicando
cuales estn activos.
ldap.attrmap: fichero donde es la asignacin de atributos de diccionario
de RADIUS a los atributos de directorio LDAP. Para ser utilizado por el
mdulo de autenticacin y autorizacin LDAP (rlm_ldap).
certs: es el directorio donde guardaremos los certificados que usemos o
enlaces simblicos de estos.
modules: directorio donde se encuentran los diferentes mdulos 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 configuracin, que haremos una


copia siempre del fichero que vayamos a modificar, por seguridad y es
recomendable leer completamente los archivos de configuracin ya que las
opciones de configuracin estn documentadas nicamente en estos archivos.

16

SERVIDOR RADIUS

La configuracin que realizamos ser para tener aunteticacin mediante EAPTTLS por las siguientes razones:
1. Es la configuracin que queremos realizar.
2. Permite usar certificado de cliente.
3. Permite usar base de datos LDAP (que implementaremos en esta
prctica) 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 autenticacin,
lo activamos en la siguiente seccin del fichero:

17

SERVIDOR RADIUS
modificaremos las siguientes lneas:
auth = no
yes
auth_badpass = no
yes
auth_goodpass = no
yes
Esto har que los logs de freeradius (ruta: /var/log/freeradius/radius.log)
tenga ms detalles.
2. Aunque podramos trabajar con ms de un servidor en el que
tendramos que usar el proxy, en nuestra prctica 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 lneas:


proxy_request = yes
no
$INCLUDE proxy.conf (la comentaremos aadiendo delante #)

18

SERVIDOR RADIUS
3. Como vamos a usar LDAP para los usuarios y no MYSQL dejamos
comentadas las siguientes lneas 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 dnde se encuentran los
certificados del servidor y de la autoridad de certificacin (pues en esta
prctica usamos eap-ttls).
El mtodo de autenticacin que vamos a utilizar EAP-TTLS no
nos obliga a crear una autoridad de ceritificacin, 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 automticamente al instalar
freeradius.
2. Crear un certificado autofirmado.
3. Crear nuestra propia autoridad de certificacin, con la que
generaremos dicho certificado. Adems, el tener una
infraestructura PKI puede sernos til tambin por si, en algn
momento, utilizamos certificados de cliente, cosa opcional en
EAP-TTLS, o para otros fines.

Lo ms sencillo es utilizar la primera opcin, 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 quisiramos utilizar para otra aplicacin, en /etc/freeradius son enlaces simblicos de
estos.).
19

SERVIDOR RADIUS

La configuracin del fichero ser la siguiente (lo que no aparezca en


la configuracin lo damos por lnea comentada):
Eap
{
#protocolo de autenticacin por defecto

default_eap_type = ttls
#tiempo de expiracin de la entrada (se elimina entrada)

timer_expire = 60
#ignorar tipos desconocidos de eap

ignore_unknown_eap_types = no
#mximas sesiones

max_sessions = 2500
tls
{
#entidad certificadora, certificados de entidad y servidor
certdir = ${confdir}/certs
cadir = ${confdir}/certs
private_key_password = whatever
private_key_file = ${certdir}/server.key
certificate_file = ${certdir}/server.pem
CA_file = ${cadir}/ca.pem
dh_file = ${confdir}/certs/dh
random_file = ${confdir}/certs/random
#Establezca esta opcin para especificar: permitir los sitios de cifrado tls
cipher_list = DEFAULT
cache
{
#para cuando queramos activar la cach
enable = no
20

SERVIDOR RADIUS
lifetime = 24 # hours
max_entries = 255
}
}
ttls
{
#protocolo de autenticacin por defecto
default_eap_type = tls
#cualquier atributo se copia en la solicitud de tnel

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 podramos:
Dar de alta los nombres de usuario y contrasea que podrn ser
usados para autenticarse frente al servidor Radius.
Indicar reglas de control para usuarios de MYSQL o LDAP.
En la configuracin 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
ms adelante para explicar como desarrollar el esquema de LDAP.
A tener en cuenta:
1. La entrada especial DEFAULT representa cualquier usuario.
21

SERVIDOR RADIUS
2. Si una entrada contiene el item Fall-Through = Yes, se contina 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 procesarn ms
entradas.

Una vez comentado esto, aadiremos la siguiente configuracin 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.

Quedara 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 configuracin
del cliente, en el cual indicaremos como configurar el cliente para que pueda
consultar a nuestro servidor Radius.

Lo siguiente a modificar
/etc/freeradius/modules/.

es

el

fichero

ldap

situado

en

La conexin entre Radius y LDAP podra ser sin cifrar o cifrada (en
22

SERVIDOR RADIUS
nuestro caso, sin cifrar), con lo cual la configuracin 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 travs 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 direccin 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 conexin 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 autenticacin LDAP.
Captura de ejemplo:

El fichero quedara de la siguiente forma:

23

SERVIDOR RADIUS
ldap
{
#conexin con ldap

#port = 636

(descomentar para conexiones tls)


server = localhost
identify = cn=admin,dc=iesjacaranda-brenes,dc=com
password = admin
basedn =ou=alumnos,dc=iesjacaranda-brenes,dc=com
filter = (uid=%{%{Stripped-User-Name}:-%{User-Name}})
base_filter = (objectclass=radiusprofile)
#mx. conexiones y tiempos

ldap_connections_number = 2500
timeout = 4
timelimit = 3
net_timeout = 1
# Para posibilitar de hacer conexiones seguras habra que hacer modificaciones con las siguientes lneas:

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 mdulo tiene que hacer cumplir Novell eDirectory, cuenta de cheques de polticas, y para
#la deteccin de intrusos usuarios (depende de --with-edir )

edir_account_policy_check = no
#directivas para filtrado

groupname_attribute = radiusGroupName
groupmembership_filter = (dialupAccess=%u)
groupmembership_attribute = radiusGroupName
}

24

SERVIDOR RADIUS
En este esquema podremos ver el significado de las lneas del fichero
anterior, os dejo un par de enlaces por si queris verlo mediante la web:

25

SERVIDOR RADIUS

26

SERVIDOR RADIUS

http://www.novell.com/documentation//edir_radius/radiusadmin/?
page=/documentation//edir_radius/radiusadmin/data/bxxdaa0.html

27

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 configuracin
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
availables/iesjacaranda

/etc/freeradius/sites-

En este fichero que hemos generado haremos las modificaciones


necesarias para la configuracin que queremos realizar.
nano /etc/freeradius/sites-availables/iesjacaranda
Las modificaciones nos dejarn el fichero de la siguiente manera:
#mdulo para la autorizacin

authorize {
preprocess
auth_log
chap
mschap
digest
suffix
eap {
ok = return
}
files
ldap
expiration
logintime
28

SERVIDOR RADIUS
pap
}
#mdulo para la autenticacin

authenticate {
Auth-Type LDAP {
ldap
}
# Allow EAP authentication
eap
}
#mdulo de filtros de Contabilidad-Solicitud de paquetes

preacct {
preprocess
acct_unique
suffix
files
}
#mdulo de contabilidad

accounting {
detail
unix
radutmp
attr_filter.accounting_response
}
#mdulo para la sesiones

session {
radutmp
}
#mdulo para la despues de autenticar

post-auth {
exec
Post-Auth-Type REJECT {
attr_filter.access_reject
29

SERVIDOR RADIUS
}
}
#mdulos para el proxy que no vamos a usar, por lo tanto no tiene directivas

pre-proxy {
}
post-proxy {
}
As como los servidores virtuales se definen en /etc/freeradius/sitesavailable, para activar los servidores que queremos tener en uso, tendremos
que situarnos en la segunda ruta indica anteriormente (/etc/freeradius/sitesenabled/) 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/sitesenabled/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

SERVIDOR RADIUS

CONFIGURACIN DEL
CLIENTE
Los denominados clientes del servidor, en nuestra prctica ser los puntos de
acceso que instalaremos en nuestra red.
Los puntos de acceso no realizan el papel de autenticador y su nica funcin 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 aadiendo nuevos puntos de acceso a nuestra infraestructura de red.
Por ello configuramos el punto de acceso que acte 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

SERVIDOR RADIUS

CONFIGURACIN DEL PUNTO DE ACCESO


La configuracin 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 configuracin predeterminada e introduciremos nombre
de usuario y contrasea.

Una vez dentro, nos situamos en la pestaa wireless. En esta pgina


indicaremos los detalles para la configuracin correcta del punto de acceso
para que pueda consultar al servidor Radius.
Los detalles que hay que indicar de la configuracin son los
siguientes:
1. SSID
2. Channel

CLASE-RADIUS (en este ejemplo)


8-2.447MHz

3. Mode Security
4. Cipher Type
5. Radius Server

WPA (mtodo autenticacin)


AES
192.168.5.1 (ip servidor radius)

32

SERVIDOR RADIUS
6.
7.
8.
9.

Radius Port
Shared Key
Shared Key Confirm
Key Renewal

1812 (puerto escucha radius)


clave
(clave compartida
clave
con servidor Radius)
1500

VUELTA AL INDICE

33

SERVIDOR RADIUS

CONFIGURACIN DEL
USUARIO
Una vez instalado LDAP, como hemos comentado en puntos anteriores, en este
punto desarrollaremos como configuraremos LDAP para nuestros propsitos, 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 configuracin como vemos en la


captura superior.

34

SERVIDOR RADIUS

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

Le indicamos el nombre de la organizacin, en nuestro caso, ser la siguiente:


iesjacaranda-brenes.

35

SERVIDOR RADIUS

Le indicamos la contrasea de administrador de LDAP, le indicamos, por


ejemplo, admin y la verificamos.

Seleccionamos el motor de base de datos BDB.

36

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

SERVIDOR RADIUS
Proseguiremos con la configuracin para la adaptacin 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=org
ou: Usuarios
objectclass: top
objectClass: organizationalUnit
dn: ou=Grupos,dc=iesjacaranda-brenes,dc=org
ou: Grupos
objectclass: top
objectClass: organizationalUnit
dn: ou=Equipos,dc=iesjacaranda-brenes,dc=org
ou: Equipos
objectclass: top
objectClass: organizationalUnit
dn: cn=profesores,ou=Grupos,dc=iesjacaranda-brenes,dc=org
objectClass: posixGroup
objectClass: top
cn: profesores
gidNumber: 2000
dn: cn=alumnos,ou=Grupos,dc=iesjacaranda-brenes,dc=org
objectClass: posixGroup
objectClass: top
cn: alumnos
gidNumber: 3000

38

SERVIDOR RADIUS
Lanzamos el fichero base.ldif con el siguiente comando:
ldapadd
base.ldif

-x

-D

cn=admin,dc=iesjacaranda-brenes,dc=org

-W -f

Nos pedir la contrasea:

Un ejemplo del resultado positivo del comando anterior:

Aqu mostramos una parte de la estructura aadida (con el comando slapcat).

39

SERVIDOR RADIUS

Luego aadiremos radius.schema a los esquemas de ldap. Esto lo


realizamos por una sencilla razn que es que el servidor ldap reconozca los
siguientes atributos con su correspondiente objectclass, a aadir 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 continuacin:
/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
cn=schema,cn=config dn

-Y

EXTERNAL

40

-H

ldapi:///

-b

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
ldap:///cn={0}radius,cn=schema,cn=config -l cn=radius.ldif

-n0

-H

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

41

SERVIDOR RADIUS

Editamos el fichero:
nano cn\=radius.ldif
Y cambiamos:
dn: cn={0}radius,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {0}radius
Por:
dn: cn=radius,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: radius
Y al final del fichero eliminamos las siguientes lneas:
structuralObjectClass: olcSchemaConfig
entryUUID: 85d35afa-2992-1031-8f93-0d1d8c5b6386
creatorsName: cn=config
createTimestamp: 20120503173822Z
entryCSN: 20120503173822.097163Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20120503173822Z
Con el siguiente comando aadiremos el esquema a ldap:
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=radius.ldif
42

SERVIDOR RADIUS

Buscamos con el siguiente comando y vemos que ahora si nos aparece el


esquema aadido:
ldapsearch -Q
cn=schema,cn=config dn

-LLL

-Y

EXTERNAL

-H

ldapi:///

-b

Y por ltimo reiniciamos los dos servicios:


service slapd restart
service freeradius restart
Una vez que tengamos la estructura y los esquemas aadidos, introduciremos
los usuarios, que ser con la siguiente estructura, la cual se ejecutar en un script, por
la sencilla razn de que van a ser muchos usuarios (por eso hay variables en el
esquema que vemos a continuacin):
43

SERVIDOR RADIUS

dn: uid=$usu,ou=Usuarios,dc=iesjacaranda-brenes,dc=org
uid: $usu
sn: $apellido1
cn: $usu"
objectClass: top
objectClass: person
objectClass: pilotPerson
objectClass: radiusprofile
userPassword: $clave1
***(la clave se generar aleatoriamente)
dialupAccess: $usu
radiusGroupName: alumnos
*** Una cosa importantsima 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 sera la estructura la misma, en otro script, solo
cambiaramos radiusGroupName que indicara profesores.
Aqu os muestro una captura de usuarios aadidos con el script.

44

SERVIDOR RADIUS

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

VUELTA AL INDICE

45

SERVIDOR RADIUS

CERTIFICADOS
Para la obtencin automtica de los certificados hay varias maneras pero
nosotros en la prctica que estamos realizando usaremos un mtodo automatizado
para obtener los certificados necesarios en esta versin de freeradius.
Lo primero, es saber la localizacin 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 sern los certificados generados.

01.pem
ca.key
ca.pem
server.crt
server.key

46

SERVIDOR RADIUS

ca.cnf es para configurar el certificado de CA como aparece en la


captura:

47

SERVIDOR RADIUS

server.cnf es el fichero para configurar los parmetros del certificado


del servidor para generarlo automticamente.

Los commonName en cada fichero deberan ser diferentes para poder


identificar cada uno. Por ejemplo en el que se genera para el cliente, lo
conveniente sera que llevar el nombre del cliente y el fichero resultante
renombrarlo (sin modificar la extensin del fichero) con su cuenta de correo.

48

SERVIDOR RADIUS

client.cnf es el fichero para configurar los parmetros del certificado


del cliente.

49

SERVIDOR RADIUS
Ejecutamos el comando:

50

SERVIDOR RADIUS
Ya tenemos los ficheros generados, sino los tuviramos nos tendra que haber
indicado algn error (normalmente por una modificacin incorrecta de los ficheros
indicados) :

Una vez obtenidos, los ficheros necesarios los copiamos en la siguiente ruta, o
le hacemos un enlace simblico 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 tambin en esta ruta (aunque por defecto es


/dev/random). Tendremos que indicarlo en el fichero eap.conf.
VUELTA AL INDICE

51

SERVIDOR RADIUS

MODO DEPURACIN
Si el servidor se instala, pero no corre adecuadamente se puede emplear el
modo depuracin (debug) para tratar de identificar el problema y corregirlo.
Al iniciar el servidor en modo depuracin, en pantalla se irn presentando los
mensajes de ejecucin, mediante los cuales se puede identificar posibles problemas
durante la ejecucin del servicio.
Para iniciar el servidor en modo depuracin en la consola de ejecucin, se debe
escribir el siguiente comando:
freeradius -X
Despus de la ejecucin de este comando se observar un poco de texto
impreso en la pantalla.

52

SERVIDOR RADIUS

53

SERVIDOR RADIUS

54

SERVIDOR RADIUS

55

SERVIDOR RADIUS

56

SERVIDOR RADIUS

57

SERVIDOR RADIUS

58

SERVIDOR RADIUS

59

SERVIDOR RADIUS

60

SERVIDOR RADIUS

61

SERVIDOR RADIUS
Si en la pantalla de depuracin 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
2 test
localhost
0
testing123

User-Name
User-Password
Ip del servidor
Nas-Port
password compartido entre radius y punto de acceso.

Se presentar en la pantalla del servidor de autenticacin ms mensajes


indicando los requerimientos que recibe y las repuestas dadas a los mismos.
El programa radtest debera recibir la respuesta en unos pocos segundos, no
importa si la respuesta es de aceptacin o rechazo lo que interesa es que el servidor
responda.
Las siguientes capturas son unos ejemplos del resultado que puede dar:
cuando la contrasea compartida es incorrecta.

62

SERVIDOR RADIUS

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

cuando es aceptado.

Si quisiramos comprobar desde otro equipo (ya sea linux, windows) o mvil
(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-RequestEnviado por un cliente RADIUS para solicitar
autenticacin y autorizacin para conectarse a la red. Debe contener el usuario
y contrasea (ya sea de usuario o CHAP); adems del puerto NAS, si es
necesario.
63

SERVIDOR RADIUS
Access-AcceptEnviado por un servidor RADIUS en respuesta a
un mensaje de Access-Request. Informa que la conexin est autenticada y
autorizada y le enva la informacin de configuracin para comenzar a usar el
servicio.
Access-RejectEnviado por un servidor RADIUS en respuesta a
un mensaje de Access-Request. Este mensaje informa al cliente RADIUS que
el intento de conexin ha sido rechazado. Un servidor RADIUS enva este
mensaje ya sea porque las credenciales no son autnticas o por que el intento
de conexin no est autorizado.
Access-ChallengeEnvo de un servidor RADIUS en respuesta a
un mensaje de Access-Request. Este mensaje es un desafo 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 autenticacin. En
caso de que no sea soportado, se toma como un Access-Reject.
Accounting-RequestEnviado por un cliente RADIUS para
especificar informacin de cuenta para una conexin que fue aceptada.
Accounting-ResponseEnviado por un servidor RADIUS en
respuesta a un mensaje de Accounting-Request. Este mensaje reconoce el
procesamiento y recepcin exitosa de un mensaje de Accouting-Response.

VUELTA AL INDICE

64

SERVIDOR RADIUS

PROBLEMAS
1. El primer inconveniente, el cual solucionara muchos problemas con este

servidor es el INGLS, pues este servidor tiene mucha informacin y


comentarios sobre l en todos sus ficheros.

2. Problemas con LDAP: compatibilidades entre los sistemas ms comunes de

autenticacin y los protocolos de autenticacin. Mi eleccin TTLS-PAP.

3. Algunos reflejan que han tenido problemas con la autenticacin con ldap en el
atributo password_attribute = userPassword, haca que no funcionara la
autenticacin. 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 aadir esquema antes que la estructura, desaparece


esquema aadidos.

5. Microsoft no da soporte nativo a EAP-TTLS. (Solucin: 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

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 ejecutndose
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
Despus de ejecutarlo, podemos darnos cuenta, que ya no se est
ejecutando.
Despus 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 algn 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

SERVIDOR RADIUS

FUTURO PRXIMO
Aunque RADIUS es el protocolo para AAA ms extendido, ya existe un nuevo
protocolo que est llamado a sustituir a RADIUS. Su nombre es DIAMETER, y
tambin proporciona manejo de errores y comunicacin entre dominios.
En verdad DIAMETER aparece porque la IETF (dedicada a crear la RFC de
radius) no permiti crear un nuevo cdigo mejorado, llamado RADIUS v.2 sin
haber publicado el primer estndar, con lo cual se le denomin DIAMETER.
DIAMETER
El concepto bsico 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 autenticacin, autorizacin y auditora, a nuevas
tecnologas de acceso. DIAMETER est diseado para trabajar tanto de una manera
local como en un estado de alerta, sondeo y captura, que en ingls se le denomina
roaming de AAA, que le permite ofrecer servicios sumamente mviles, dinmicos,
flexibles y verstiles.
Mejora de RADIUS
El nombre es un juego de palabras respecto al protocolo RADIUS, su
predecesor (un dimetro es el doble del radio). Diameter no es directamente
compatible hacia atrs, pero proporciona un mtodo de actualizacin 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

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 dinmico de peers (usando DNS SRV y NAPTR).
Tiene negociacin de capacidades.
Admite ACKs en el nivel de aplicacin, definiendo mtodos de fallo y
mquinas de estado (RFC 3539).
Tiene notificacin de errores.
Tiene mejor compatibilidad con roaming.
Es ms fcil de extender, pudiendo definirse nuevos comandos y
atributos.
Incluye una implementacin bsica de sesiones y control de usuarios.
En la ACTUALIDAD
Se considera que Diameter no va a sustituir a Radius en su puesto hegemnico,
porque simplemente cada uno est buscando su segmento.

VUELTA AL INDICE

68

SERVIDOR RADIUS

DETALLES TCNICOS
Una vez realizada la prctica me gustara 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 ms

necesarias).
5. La perfecta jerarqua realizada a partir de la versin 2 (al menos en la

versin que hemos usado como es freeradius v.2).

VUELTA AL INDICE

69

SERVIDOR RADIUS

TPM: Tareas pendientes y mejoras


Esta prctica 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 podran ser
las siguientes:

Poner entorno grfico, como por ejemplo dialupadmin, daloradius,


phpldapadmin

Aadir un portal cautivo en la estructura que hemos desarrollado como


por ejemplo puede ser pfsense.

Podramos usar certificados para los clientes.

Se podra configurar la conexin segura a LDAP (por si algn da se


cambiara de lugar y no estuvieran los dos servicios en la misma mquina).

VUELTA AL INDICE

70

SERVIDOR RADIUS

BIBLIOGRAFA
LIBRO:
libro RADIUS / AAA / 802.1X ed. Ra-Ma

PGINA OFICIAL DE FREERADIUS:


http://wiki.freeradius.org/Home

PGINAS PARA POSIBLE CONFIGURACIN:


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+RADIUS
http://karman.cc/blog/archives/117

PGINAS PARA POSIBLE CONFIGURACIN LDAP:


Aadir esquema y usuarios a ldap
http://ubuntuforums.org/showthread.php?t=1976883
Conexin freeradius-ldap y explicacin de algunos atributos de ldap
http://etutorials.org/Server+Administration/ldap+system+administration/Part+II+Application+Integ
ration/Chapter+8.+Standard+Unix+Services+and+LDAP/8.4+FreeRadius/

71

SERVIDOR RADIUS

OTRAS PGINAS DE INTERES:


Portal cautivo (pfsense + freeradius)
http://doc.pfsense.org/index.php/FreeRADIUS_2.x_package
Servidor RADIUS con gestin Web: FreeRADIUS + daloRADIUS
http://blog.e2h.net/2011/07/01/servidor-radius-con-gestion-web-freeradius-daloradius/
Respuestas de freeradius y posible configuracin de freeradius
http://yobtrams.wordpress.com/tag/servidor-radius/

VUELTA AL INDICE

72

You might also like