Está en la página 1de 14

FreeRADIUS + WPA + EAP + TLS

Seguridad en Redes
Alejandro Valdés Jimenez
avaldes@utalca.cl
Tabla de contenidos
1. Objetivos .................................................................................................................................................3
2. Introducción ...........................................................................................................................................3
3. Instalación y Configuración de FreeRADIUS .....................................................................................3
3.1. users ............................................................................................................................................4
3.2. clients.conf ..................................................................................................................................4
3.3. eap.conf .......................................................................................................................................4
3.4. radius.conf...................................................................................................................................5
4. Arrancar FreeRADIUS .........................................................................................................................8
5. Configuración Access Point ..................................................................................................................9
6. Configuración Cliente..........................................................................................................................10

ii
1. Objetivos
El alumno al finalizar la experiencia deberá ser capaz de:

• Instalar y configurar FreeRADIUS.


• Configurar un Access Point.
• Crear una conexión segura en una red inalámbrica.

2. Introducción
La cada vez mas frecuente utilización de redes inalámbricas y la gran tentación que significa obtener
información confidencial escuchando la comunicación que trafica en ellas, ha hecho que se implementen
y se sigan implementando nuevos formas de comunicación en este tipo de redes, que permitan el tráfico
seguro de datos.

En esta experiencia veremos como restringuir el acceso a la red inalámbrica mediante la utilización de un
usuario/clave y como podemos lograr que la información que viaja lo haga de forma segura, mediante la
encriptación de los datos.

Para esto necesitamos de 3 elementos, un servidor RADIUS (FreeRADIUS), un Access Point y los
clientes. FreeRADIUS lo montaremos sobre una máquina con Debian GNU/Linux. El Access Point será
un D-Link DWL-2000AP+ y los clientes serán PCs con Windows XP con SP2.

3. Instalación y Configuración de FreeRADIUS


Lo primero es bajar el código fuente, descomprimir el archivo, configurar las opciones de compilación,
compilar e instalar. Los pasos se ven a continuación:

# bajamos el código fuente:


~$ wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.2.tar.gz

# desempaquetamos y descomprimimos:
:~$ tar xvfz freeradius-1.1.2.tar.gz

# generamos los archivos para la compilación:


:~$ cd freeradius-1.1.2/
:~/freeradius-1.1.2$ ./configure --without-rlm_smb
--without-rlm_perl --without-rlm_ldap --without-rlm_krb5

# compilamos:
:~/freeradius-1.1.2$ make

# si todo termina bien, lo instalamos (como root):

3
FreeRADIUS + WPA + EAP + TLS

:~/freeradius-1.1.2$ make install

Los archivos de configuración quedan instalados en /usr/local/etc/raddb/ , que es la ruta por defecto para
cuando instalamos de fuentes. Una vez compilado e instalado el servidor nos dedicamos a configurarlo.
A continuación se muestran las configuraciones necesarias para nuestro laboratorio.

3.1. users

Archivo donde se especifican las credenciales de los usuarios de la red. Se usa este archivo si no existe
otro backend para el almacenamiento de los usuarios. En este ejemplo definimos el usuario test con la
clave test. Estas credenciales tendremos que ingresar cuando intentemos conectarnos a la red
inalámbrica.

test Auth-Type := Local , User-Password == "test"

3.2. clients.conf

Descripción y credenciales de los diferentes dispositivos que consultan al RADIUS (Aps, NAS, etc).

client 192.168.13.91 {
secret = testing123
shortname = AP-RADIUS
}

client 192.168.13.99 {
secret = testing123
shortname = PRIMATE
}

client 200.27.70.12 {
secret = testing123
shortname = GIBBON
}

client 127.0.0.1 {
secret = testing123
shortname = localhost
nastype = other # localhost isn’t usually a NAS...
}

4
FreeRADIUS + WPA + EAP + TLS

3.3. eap.conf

Archivo de configuración de las directivas EAP a utilizar. Es un include de radiusd.conf.

eap {
default_eap_type = tls
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no

# Supported EAP-types
# EAP-TLS
tls {
private_key_password = laclave
private_key_file = ${raddbdir}/certs/servidor-prueba.key
certificate_file = ${raddbdir}/certs/servidor-prueba.crt
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
fragment_size = 1024
include_length = yes

peap {
default_eap_type = mschapv2
}

mschapv2 {
}
}

3.4. radius.conf

Archivo general de configuración de FreeRADIUS y del daemon.

prefix = /usr/local
exec_prefix = ${prefix}
sysconfdir = ${prefix}/etc
localstatedir = ${prefix}/var
sbindir = ${exec_prefix}/sbin
logdir = ${localstatedir}/log/radius
raddbdir = ${sysconfdir}/raddb
radacctdir = ${logdir}/radacct

# Location of config and logfiles.


confdir = ${raddbdir}
run_dir = ${localstatedir}/run/radiusd

5
FreeRADIUS + WPA + EAP + TLS

#
log_file = ${logdir}/radius.log

#
libdir = ${exec_prefix}/lib

#
pidfile = ${run_dir}/radiusd.pid

#
max_request_time = 30

#
delete_blocked_requests = no

#
cleanup_delay = 5

#
max_requests = 1024

#
bind_address = *

#
port = 0

#
hostname_lookups = no

#
allow_core_dumps = no

#
regular_expressions = yes
extended_expressions = yes

#
log_stripped_names = yes

#
log_auth = yes

#
log_auth_badpass = yes
log_auth_goodpass = yes

#
usercollide = no

#
lower_user = no

6
FreeRADIUS + WPA + EAP + TLS

lower_pass = no

#
nospace_user = no
nospace_pass = no

#
checkrad = ${sbindir}/checkrad

# SECURITY CONFIGURATION
security {
max_attributes = 200
reject_delay = 1
status_server = no
}

# PROXY CONFIGURATION
proxy_requests = no

# CLIENTS CONFIGURATION
$INCLUDE ${confdir}/clients.conf

# SNMP CONFIGURATION
snmp = no

# THREAD POOL CONFIGURATION


thread pool {
start_servers = 5
max_servers = 32
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 0
}

# MODULE CONFIGURATION
modules {
$INCLUDE ${confdir}/eap.conf

mschap {
authtype = MS-CHAP
}

files {
usersfile = ${confdir}/users
acctusersfile = ${confdir}/acct_users
preproxy_usersfile = ${confdir}/preproxy_users
compat = no
}

# Instantiation

7
FreeRADIUS + WPA + EAP + TLS

instantiate {
}

#
authorize {
files
mschap
eap
}

# Authentication.
authenticate {
Auth-Type MS-CHAP {
mschap
}

eap
}

#
preacct {
}

#
accounting {
}

#
session {
}

#
post-auth {
}

#
pre-proxy {
}

#
post-proxy {
}

4. Arrancar FreeRADIUS
Algunas consideraciones antes de subir el servidor. FreeRADIUS atiende en los puertos UDP/1812 y
UDP/1813 por lo que hay que abrirlos en firewalls correspondientes, si es que pasan por algún firewall.

8
FreeRADIUS + WPA + EAP + TLS

Para subir el servicio ejecutamos:

:~# /usr/local/sbin/radiusd -f -X

...
Listening on authentication *:1812
Listening on accounting *:1813
Ready to process requests.

Así podemos ver los registros de las transacciones que ocurren en la negociación entre el cliente - Access
Point - FreeRADIUS.

Podemos probar de manera local con el siguiente comando:

:~$ radtest test test localhost 1812 testing123


Sending Access-Request of id 19 to 127.0.0.1 port 1812
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=19, length=2

y los logs:
rad_recv: Access-Request packet from host 127.0.0.1:1025, id=19, length=56
User-Name = "test"
User-Password = "test"
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
...
auth: type Local
auth: user supplied User-Password matches local User-Password
Login OK: [test/test] (from client localhost port 1812)
Sending Access-Accept of id 19 to 127.0.0.1 port 1025
Finished request 0
...

5. Configuración Access Point


Como muestra la Figura 1, debemos ingresar un nombre al access point, dar un nombre a la red (ESSID
= radius), seleccionar el canal (por defecto está el 6), seleccionar el método de autenticación WPA e
ingresar los datos del servidor RADIUS. Recordar que la "shared secret" corresponde a la definida en el
archivo clients.conf de FreeRadius y para este cliente. Aplicamos los cambios y el access point se
reiniciara.

9
FreeRADIUS + WPA + EAP + TLS

Figura 1. Access Point

6. Configuración Cliente
Una vez que ya hemos configurado el servidor RADIUS y el Access Point nos queda configurar un
cliente con tarjeta inalámbrica. Importante destacar que para esta configuración necesitamos, para el caso
de Windows XP tener el Service Pack 2. Otros sistemas operativos tiene soporte nativo.

Para configurar nuestra conexión inalámbrica debemos hacer los siguientes cambios en su configuración:

• Abrir las propiedades de la conexión inalámbrica y seleccionar Redes Inalámbricas, Ver Figura 2.
• Configurar el mecanismo de autenticación de red y el tipo de encriptación, Ver Figura 3.
• El tipo de EAP a utilizar, Ver Figura 4.
• Deshabilitar la validación del certificado del servidor y seleccionar el método de autenticación para
EAP, Ver Figura 5.
• Deshabilitar utilizar el usuario y clave de windows, Ver Figura 6.
• Seleccionar la red radius, Ver Figura 7.
• Windows no indicará que hagamos click sobre el mensaje para que ingresemos nuestras credenciales,
Ver Figura 8.
• En User name y Password ingresamos test, Ver Figura 9.
• Esperamos a quedar conectados, Ver Figura 10.

10
FreeRADIUS + WPA + EAP + TLS

Figura 2. Paso 1

Figura 3. Paso 2

11
FreeRADIUS + WPA + EAP + TLS

Figura 4. Paso 3

Figura 5. Paso 4

12
FreeRADIUS + WPA + EAP + TLS

Figura 6. Paso 5

Figura 7. Paso 6

Figura 8. Paso 7

13
FreeRADIUS + WPA + EAP + TLS

Figura 9. Paso 8

Figura 10. Paso 9

14