Configuración

Anuncio
Seguridad Avanzada
Remote
Access
Dial
In
User
Service
versión Freeradius 2.1.12
Remote Access Dial-In User Service
Índice de contenidos:
(1)  Introducción
(2)  Especificaciones y operación
(3)  Aplicaciones
(4)  Desarrollos:
u 
Consideraciones iniciales
u 
Instalación y configuración de Freeradius
u 
A) Freeradius+PEAP con usuarios en fichero
u 
B) Freeradius+PEAP/MS-CHAPv2 + MYSQL
(5)  Referencias
Seguridad Avanzada / Servicio de autorización de usuarios para acceso remoto RADIUS
-2-
(1) Introducción
l 
l 
l 
l 
RADIUS provee arquitectura AAA (Authentication,
Authorization, Accounting) para redes de acceso dialup (NAS), VPN, acceso inalámbrico (p.e. EDUROAM) o
switches Ethernet (p.e. CISCO 2950) entre otros.
Desarrollado originalmente por Livingston Enterprises
para sus Servidores de Acceso a la Red (NAS).
El protocolo RADIUS actualmente está definido en los
RFC 2865 (autentificación y autorización) y 2866
(manejo de sesiones).
Propósito es diferenciar, identificar y contabilidad
(permite cobros por uso – billing) de usuarios.
-3-
(2) Especificaciones y operación (1/8)
Características de la arquitectura AAA:
l 
l 
l 
l 
Soporta gran número de usuarios y consultas simultáneas; y
cientos de dispositivos.
Provee mecanismo de respaldo, ante un fallo de comunicación
con el servidor AAA primario.
Dispone un mecanismo de autenticación cliente/servidor.
Requiere autenticación, protección integral y confidencialidad
de la Capa de Transporte.
l 
Política de no modificación del paquete original.
l 
Permite el transporte de certificados.
l 
Permite servicio de seguridad subyacente como IPsec.
l 
Es extensible a otros usos (RADIUS RFC 2869).
-4-
(2) Especificaciones y operación (2/8)
Características del protocolo RADIUS (1/3):
l 
Administración centralizada de usuarios.
l 
Modelo cliente/servidor:
u 
u 
u 
NAS opera como cliente RADIUS, pasado la petición de
conexión del usuario al servidor designado.
Servidor RADIUS responsable de autenticar al usuario y
enviar respuesta con información de configuración. Como
cliente proxy de otros servidores RADIUS (ISP).
Mensajes enviados por UDP (User Datagram Protocol):
Puerto UDP 1812 usado para mensajes de autenticación.
u  Puerto UDP 1813 para mensajes de cuentas.
u  Originalmente se usaron UDP 1645/1646.
u 
-5-
(2) Especificaciones y operación (3/8)
Características del protocolo RADIUS (2/3):
l 
Seguridad:
u 
Transacciones cliente/servidor RADIUS autenticadas por
un secreto compartido:
Para comprobar que los mensajes RADIUS son enviados por un
dispositivo compatible y la integridad de los mismos. También se
utiliza para cifrar algunos de los atributos RADIUS, como UserPassword y Tunnel-Password.
u  Mismo secreto compartido, que distingue mayúsculas y minúsculas,
en ambos dispositivos RADIUS; y diferente en cada par cliente/
servidor. Nunca se transfiere a través de la red.
u  Debe ser aleatorio, con una secuencia aleatoria de mínimo 22
caracteres (utilizar cualquier carácter alfanumérico o especial
estándar) y máximo 128 caracteres de longitud.
u 
-6-
(2) Especificaciones y operación (4/8)
Características del protocolo RADIUS (3/3):
l 
Métodos de autenticación flexibles:
l 
PAP (Password Authentication Protocol): Protocolo simple de
autenticación de un usuario contra un servidor de acceso remoto
(sub-protocolo usado por la autenticación del protocolo PPP).
Contraseñas en ASCII sin cifrar (inseguro), se usa como último
recurso.
l 
CHAP (Challenge Handshake Authentication Protocol):
Protocolo de autenticación por desafío mutuo, usado por servidores
accesibles vía PPP. Verifica periódicamente la identidad del cliente
remoto usando un intercambio de información de tres etapas.
Verificación basada en un secreto compartido, requiere que el cliente
mantenga el secreto disponible en texto plano.
u 
EAP (Extensible Authentication Protocol): Estructura de
soporte para modernos mecanismos de autenticación (EAP-MD5,
EAP-TLS, EAP-TTL, EAP-TTLS, LEAP, PEAP)
-7-
(2) Especificaciones y operación (5/8)
Formato de paquete:
l 
Code (1 byte): Contiene el tipo de comando/respuesta RADIUS
l 
Identifier (1 byte): Usado para relacionar comandos y respuestas
l 
Length (2 bytes): Longitud del paquete
l 
l 
Authenticator (4 bytes): Usado para autenticar la respuesta del
servidor RADIUS, y usado por el algoritmo de encubrimiento de
contraseña.
Attributes: Nº arbitrario de atributos, los únicos obligatorios:
User-Name (usuario) y User-Password (contraseña).
-8-
(2) Especificaciones y operación (6/8)
Operación:
Access-Request
(solicitud de acceso)
Servidor
de acceso
a la red
Información
Usuario
autenticación
(NAS)
Cliente
RADIUS
Access-Challenge
(desafío de acceso)
Access-Request
(solicitud de acceso)
Servidor
RADIUS
BD
Usuarios
Métodos de autenticación
PAP, CHAP, EAP
Access-Accept
(acceso aceptado)
Access-Reject
(acceso denegado)
Módulo Servicios de red / Servicio de autorización de usuarios para acceso remoto RADIUS
-9-
(2) Especificaciones y operación (7/8)
Método de autenticación EAP Protegido (PEAP):
http://www.cisco.com
- 10 -
(2) Especificaciones y operación (8/8)
Método de autenticación EAP Protegido (PEAP):
- 11 -
(3) Aplicaciones
l 
Acceso líneas conmutadas:
- 
l 
Redes Wireless:
- 
l 
Muy útil para los ISP de acceso telefónico.
Estándar 802.1X (http://tools.ietf.org/html/rfc3580)
VoIP:
- 
Radius permite controlar la seguridad del acceso a datos.
- 
También permite informes para realizar la tarificación en
consecuencia.
l 
VPN (Virtual Private Network)
l 
Autenticación de servicios:
- 
Acceso web, servicio de correo electrónico, acceso remoto...
- 12 -
(4) Desarrollo
Consideraciones iniciales:
l 
Desarrollos orientados a conocer las posibilidades del servicio
RADIUS:
- 
l 
servicio de autenticación para 802.1x (PEAP)
- 
(A) Usuarios y clientes en archivos (users, clients.conf)
- 
(B) Usuarios y clientes en BD MYSQL.
Características configurables:
- 
Servidor con Linux Mint 17 (Mate) /Debian 8.4
- 
Freeradius server 2.1.12 (desde repositorio)
- 
Método de autenticación EAP Protegido (PEAP):
l 
l 
Esquema de autenticación NAS – servidor RADIUS.
Compatibilidad con clientes 802.1x en MS-Windows, Linux
y Mac X OS usando MS-CHAPv2.
- 13 -
(4.A) Desarrollo
Instalación en Debian 8.4:
* Pon al día el equipo:
sudo apt-get update
sudo apt-get upgrade
*Instala FreeRADIUS software con sus dependencias:
aptitude install -y freeradius freeradius-utils freeradius-mysql
phpmyadmin mysql-server php5-gd php5-curl php-pear php-db php-mail-mime
* Configura FreeRADIUS para usar MySQL como backend database. Instalaremos
phpMyAdmin aquí pero es opcional:
aptitude install -y phpmyadmin mysql-server php5-gd php5-curl php-pear
php-db php-mail-mime
- 41 -
(4.A) Desarrollo
Configuración:
l 
Archivos de configuración localizados en /etc/freeradius:
- 
radiusd.conf: Archivo de configuración principal, contiene numerosos parámetros
de configuración comunes y referencias a otros archivos de configuración.
- 
users: Contiene información de autenticación y configuración para cada usuario
que puede acceder, en caso de no usar otro método.
- 
clients.conf: Contiene la definición de los clientes RADIUS (NAS) que pueden
conectarse al servidor.
- 
sql.conf: Guarda la configuración para el módulo SQL, en el caso de usar una BD
como backend para los usuarios de RADIUS.
- 
eap.conf: Contiene información relativa a la configuración del tipo EAP (Extensible
Authentication Protocol) elegido para que funcione como protocolo de
autenticación. EAP se utilizará como PEAP (Protected EAP).
- 
sites-available/default: Como soporte para servidores virtuales, cada servidor
virtual deberá disponer de un archivo que contenga la información de configuración
específica del mismo dentro de este directorio.
- 
modules/: Carpeta que contiene archivos de configuración de los distintos módulos
de autentificación soportados por Freeradius.
- 15 -
(4.A) Desarrollo
Configuración /etc/freeradius/radiusd.conf::
log {
...
#Registra las peticiones de autenticación
auth = yes
#Registra las passwords de las peticiones de autenticación,
#tanto aceptadas como rechazadas. Sólo recomendable a efectos de
#depuración
auth_badpass = yes
auth_goodpass = yes
}
…
proxy_requests = no
#La línea siguiente debe ser comentada si 'no' en la anterior
#$INCLUDE proxy.conf
…
- 16 -
(4.A) Desarrollo
Configuración /etc/freeradius/eap.conf:
eap {
#Se le dice que use PEAP
default_eap_type = peap
timer_expire
= 60
ignore_unknown_eap_types = no
...
tls {
#Certicados se localizan en /etc/freeradius/certs/
certdir = ${confdir}/certs
cadir = ${confdir}/certs
...
}
#Se le dice que use MS-CHAPv2
peap {
default_eap_type = mschapv2
...
}
mschapv2 {
}
}
- 17 -
(4.A) Desarrollo
Configuración /etc/freeradius/users y clients.conf:
Configuración de /etc/freeradius/users:
l 
Configuramos un usuario de prueba:
test Cleartext-Password := “test”
Configuración de /etc/freeradius/clients.conf:
l 
Configuraremos un clientee (NAS):
#Punto de acceso inalámbrico (AP)
client 169.254.2.1{
#Esta clave es el secreto compartido que usará el AP para
comunicarse con el servidor RADIUS
secret
= testing123
shortname = SAV1
}
Nota: En el archivo existe un cliente por defecto “localhost” y
contraseña “testing123” para pruebas.
- 18 -
(4.A) Desarrollo
Carpeta “Modules”. Contiene los parámetros generales de configuración de los módulos
que determinan los tipos de métodos de autenticación activos.
Configuración /etc/freeradius/modules/mschap:
mschap {#Soporta autenticación MS-CHAP y MS-CHAPv2
#Microsoft Point-to-Point Encryption es un protocolo de
#encriptación de datos para el protocolo PPP y enlaces VPN.
#Soporta claves de sesión de 40, 56 y 128-bit, que cambian
#por paquete.
use_mppe = yes
require_encryption = yes
require_strong = yes
#Windows envía un nombre de usuario como DOMINIO\usuario; pero, en la
#respuesta al desafío, sólo envía el usuario. Esto provoca un error.
with_ntdomain_hack = yes
}
Recarga de las librerías:
#ldconfig
- 19 -
(4.A) Desarrollo
Recarga del servicio Freeradius:
#service freeradius restart
Recomendación: visualizar en una nueva consola
el estado del servidor durante el reinicio
mediante el comando:
#tail –f /var/log/freeradius/radius.log
Prueba de autentificación con el usuario “test”:
#radtest test test localhost 1812 testing123
- 20 -
(4.A) Desarrollo
Resultados de la prueba de autentificación con el usuario “test”:
- 21 -
(4.B) Desarrollo
Instalación de FreeRADIUS + MYSQL (1/2):
#apt-get install mysql-server
#apt-get install freeradius-mysql
#service freeradius restart
- 22 -
(4.B) Desarrollo
Instalación PHPMYADMIN* (opcional) (2/2):
#apt-get install apache2
#apt-get install php5 libapache2-mod-php5
#apt-get install libapache2-mod-auth-mysql php5mysql phpmyadmin
#service apache2 restart
- 23 -
(4.B) Desarrollo
Configuración /etc/freeradius/radiusd.conf::
log {
...
#Registra las peticiones de autenticación
auth = yes
#Registra las passwords de las peticiones de autenticación,
#tanto aceptadas como rechazadas. Sólo recomendable a efectos de
#depuración
auth_badpass = yes
auth_goodpass = yes
}
…
proxy_requests = no
#La línea siguiente debe ser comentada si 'no' en la anterior
#$INCLUDE proxy.conf
…
#La línea siguiente debe no aparecer comentada
$INCLUDE sql.conf
- 24 -
(4.B) Desarrollo
Configuración /etc/freeradius/eap.conf:
eap {
#Se le dice que use PEAP
default_eap_type = peap
timer_expire
= 60
ignore_unknown_eap_types = no
...
tls {
#Certicados se localizan en /etc/freeradius/certs/
certdir = ${confdir}/certs
cadir = ${confdir}/certs
...
}
#Se le dice que use MS-CHAPv2
peap {
default_eap_type = mschapv2
...
}
mschapv2 {
}
}
- 25 -
(4.B) Desarrollo
Carpeta “Modules”. Contiene los parámetros generales de configuración
de los módulos que determinan los tipos de métodos de autenticación
activos.
Configuración /etc/freeradius/modules/mschap:
mschap {#Soporta autenticación MS-CHAP y MS-CHAPv2
#Microsoft Point-to-Point Encryption es un protocolo de
#encriptación de datos para el protocolo PPP y enlaces VPN.
#Soporta claves de sesión de 40, 56 y 128-bit, que cambian por paquete.
use_mppe = yes
require_encryption = yes
require_strong = yes
#Windows envía un nombre de usuario como DOMINIO\usuario; pero, en la
#respuesta al desafío, sólo envía el usuario.
with_ntdomain_hack = yes
}
Configuración /etc/freeradius/modules/preprocess:
mschap {
…
#Soporta autenticación MS-CHAP y MS-CHAPv2
with_ntdomain_hack = yes
…
}
- 26 -
(4.B) Desarrollo
Configuración /etc/freeradius/users y clients.conf:
Configuración de /etc/freeradius/users:
l 
No es necesario realizar ninguna configuración específica.
Configuración de /etc/freeradius/clients.conf * (esta información también
puede ir en una tabla de la BD):
l 
l 
No es necesario realizar ninguna configuración específica. Sólo comprobar
que todos los posibles clientes están comentados porque a partir de ahora se
registrarán en una tabla de la BD.
En el archivo existe un cliente por defecto “localhost” y contraseña “testing123”
para pruebas.
- 27 -
(4.B) Desarrollo
Configuración /etc/freeradius/sql.conf (1/2):
Configuramos la información de acceso desde Freeradius al servidor de BD
(en este tutorial se utilizará el usuario que viene por defecto, pero se
recomienda cambiar el usuario y contraseña utilizados para la conexión
con la BD). Después deberán usarse estas mismas credenciales durante la
creación de la BD “radius”.
- 28 -
(4.B) Desarrollo
Configuración /etc/freeradius/sql.conf (2/2):
sql {
#Selecciona una BD: mysql, mssql, oracle, postgresql
database = "mysql"
#Se indica a FreeRADIUS el driver a usar
driver = "rlm_sql_${database}"
#Información de conexión:
#Usamos localhost porque servidor BD y FreeRADIUS son el mismo
server = "localhost"
login = "radius"
password = "radpass"
#Nombre de la BD a utilizar excepto para Oracle
radius_db = "radius"
...
#Habilita la utilización de atributos de grupo
read_groups = yes
… ¡
}
- 29 -
(4.B) Desarrollo
Configuración Base de Datos de usuario en MYSQL:
l 
l 
Para mejor comprensión de la BD y facilitar su manejo, disponemos de una
interfaz web en la dirección http://dirección_ip_mi_servidor/phpmyadmin
Abrir una conexión con MySQL desde shell y crear BD de usuarios:
#cd /etc/freeradius/sql/mysql
#mysql –uroot –p<password>
mysql>create database radius;
mysql>grant all privileges on radius.* to radius@localhost
identified by 'radpass';
mysql>use radius;
l 
Importar tablas desde la plantilla proporcionada por la instalación:
mysql>source schema.sql;
mysql>show tables;
mysql>quit;
- 30 -
(4.B) Desarrollo
Configuración /etc/freeradius/sites-available/default (1/4):
authorize {
preprocess
chap
mschap
suffix
#Se activa protocolo EAP. FILES para que se lea archivo 'users'
eap {
ok = return
}
#unix
#Puede comentarse porque no se usa autorización del sistema
#files #Puede comentarse porque no se usa el archivo 'users'
#SQL indica la búsqueda del usuario en una BD según sql.conf
sql
...
#Si ningún otro módulo toma responsabilidad de autenticación, se
usará PAP
pap
}
- 31 -
(4.B) Desarrollo
Configuración /etc/freeradius/sites-available/default (2/4):
accounting {
…
#Los registros serán almacenados en una BD según sql.conf
sql
}
session{
…
sql
…
}
post-auth{
…
sql
…
}
- 32 -
(4.B) Desarrollo
Configuración /etc/freeradius/sites-available/inner-tunel (3/4):
authorize {
…
sql
…
}
session {
…
sql
…
}
post-auth{
…
sql
…
}
- 33 -
(4.B) Desarrollo
Configuración /etc/freeradius/sites-available/ (4/4):
Nota: Habilitar las consultas SQL sobre la directiva “post-auth” permitirá a Freeradius
guardar todos los accesos válidos en la tabla “radpostauth”. Si se realizan pruebas de
conexión local con la herramienta “radtest”, las contraseñas se guardarán en claro,
sin embargo, si se realizan en equipos remotos por el túne TLS, éstas no aparecen.
Recarga de las librerías y reinicia el servidor Freeradius:
#ldconfig
#service freeradius restart
- 34 -
(4.B) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (1/6):
l 
Tablas importadas a la BD desde schema.sql:
- 35 -
(4.B) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (2/6):
1. ¿Existe 'user' en radcheck?
user/pass
2. ¿Datos de validación se corresponden?
N
o
3. ¿read_groups = yes en sql.conf?
4. ¿Existe un entrada para 'user' en radreply?
N
o
5. ¿Directiva Fall-Through en radreply?
6. ¿Existe 'grupo' en radgroupcheck?
7. ¿No existe correspondencia o directiva
Fall-Through en radgroupreply? o
¿no es el último grupo?
S
í
radusergroup
by priority
S
í
Respuesta
2
3
4
N
o
6
radcheck
read_groups = yes
N
o
radgroupcheck
Más información:
http://wiki.freeradius.org/Rlm_sql
1
S
í
5
radreply
N
o
N
o
radgroupreply
S
í
7
N
o
- 36 -
(4.B) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (3/6):
ATRIBUTOS de FreeRADIUS:
Formato de tabla:
l Muestra qué atributos aparecen o pueden
aparecer en cada tipo de mensaje Radius:
l 
n 
n 
n 
n 
n 
0 indica que el atributo no puede
aparecer en el mensaje.
0+ indica que el atributo puede no
aparecer o aparecer una o más veces
en el mensaje.
0-1 indica que el atributo debe
aparecer una sola vez o no aparecer
en el mensaje.
1 indica que el atributo debe aparecer
una y sólo una vez en el mensaje.
1+ indica que el atributo al menos
debe aparecer una vez en el mensaje.
Más información:
http://www.freeradius.org/rfc/attributes.html
- 37 -
(4.B) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (4/6):
l 
Lista de operadores más frecuentes de FreeRADIUS:
- 
- 
Atributo = valor
- 
No permitido como operador para atributos de validación (check items).
- 
En un atributo de respuesta (reply items), "añade el atributo a la lista”, sólo si no hay ningún otro
valor para el mismo atributo.
Atributo := valor
- 
- 
- 
Atributo += valor
- 
- 
- 
Siempre añade el atributo a la lista de directivas de configuración.
Como operador en un atributo de respuesta, tiene un significado idéntico.
Atributo == valor
- 
- 
- 
Sustituye cualquier directiva de configuración del mismo nombre (p.e. en users). Si ningún
atributo con este nombre aparece en la petición, entonces es añadido.
En la respuesta tiene un significado idéntico.
Como atributo de validación, la asignación es válida si el atributo está presente en la petición y
tiene un valor dado.
No está permitido como operador para un atributo de respuesta.
Atributo != valor
- 
Como atributo de validación, la asignación es válida si el atributo está presente en la petición y
NO tiene un valor previamente dado.
- 
No permitido como operador para un atributo de respuesta.
- 38 -
(4.B) Desarrollo
Autentificación de clientes remotos (NAS) desde la base de datos:
l 
Habilitar consultas a la BD para clientes en /etc/freeradius/sql.conf:
#Eliminar comentario de la siguiente línea:
readclients = yes
l 
Importar tabla “nas” desde la plantilla proporcionada por la instalación:
#cd /etc/freeradius/sql/mysql
#mysql –uroot –p<password>
mysql>use radius;
mysql>source nas.sql;
mysql>show tables;
mysql>quit;
- 40-
(4.B) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (5/6):
l 
Tabla RADCHECK:
l 
Tabla RADUSERGROUP:
- 42 -
(4.2) Desarrollo
Más configuración Base de Datos de usuario en MYSQL (6/6):
l 
Tabla RADGROUPCHECK:
- 43-
(4.B) Desarrollo
Configuración. Generar nuevos certificados TLS (1/2):
l 
l 
Certificados para canal seguro (TLS), creados por defecto durante la
instalación (por script bootstrap) y alojados en /etc/freeradius/certs/.
De inicio se utilizan datos de ejemplos, tanto para entidad certificadora (CA),
como servidor RADIUS, desde los archivos ca.cnf y server.cnf. Para crearlos
con información propia:
① cd /etc/freeradius/certs
② Borrar o renombrar todos los archivos con prefijo server.* y ca.*
③ Copiar las plantillas desde /usr/share/doc/freeradius/examples/certs:
cd /usr/share/doc/freeradius/examples/certs/
cp Makefiles ca.cnf server.cnf xpextensions /etc/freeradius/certs
④ Editar ca.cnf: (1) cambiar en la sección [req] los valores por defecto para
input_password y output_password (pero el mismo para ambas), (2) modificar
en la sección [certificate_authority] los datos que consideremos oportunos.
⑤ Editar server.cnf: modificar en la sección [server] los datos que consideremos
oportunos. ¡OJO! Es recomendable colocar los mismos datos en ambos archivos.
⑥ Ejecutar el comando #make all
Módulo Servicios de red / Servicio de autorización de usuarios para acceso remoto RADIUS
- 44-
(4.B) Desarrollo
Configuración. Generar nuevos certificados TLS (2/2):
l 
MUY IMPORTANTE!!! Si se han cambiado las password en los pasos
anteriores (recomendable), cambiar en /etc/freeradius/eap.conf, en la sección
“TLS” el valor para:
private_key_password = testing123
l 
Se creen o no de nuevo, una vez terminado de configurar eap.conf, deben
crearse enlaces simbólicos a los certificados para que EAP pueda localizarlos:
#cd /etc/freeradius/certs
#c_rehash
l 
l 
Como los certificados generados no están firmados por una “verdadera CA”,
es necesario importar el certificado de entidad (ca.der) a los clientes Windows
para que pueda reconocerla y valide la autentificación. En el caso de clientes
Linux o MAC X OS, puede optar por ignorar esta validación.
Nota: A la hora de importarlo en Windows, bastará con hacer doble clic sobre el archivo
con el certificado CA y guardarlo en el almacén “Entidades de certificación de raíz de
confianza”. Si no se han modificado los datos de la CA por defecto aparecerá con el
nombre “Example Certificate Authority” (comprobar con certmgr.msc).
Módulo Servicios de red / Servicio de autorización de usuarios para acceso remoto RADIUS
- 45-
(4.B) Desarrollo
Comprobación de funcionamiento Freeradius:
#freeradius –X
Nota: Este comando permite arrancar el servicio en modo
depuración. No obstante si ya existiese un servicio
Freeradius activo anteriormente, comprobar si el proceso se
ha detenido:
#ps –A |grep freeradius
#kill -9 <freeradius_PID>
Prueba 1. Con la utilidad ‘radtest’
Prueba 2. Con una conexión a un AP
- 46 -
(4) Desarrollo
Acceso Wi-Fi con autenticación 802.1x (1/3):
- 47-
(4) Desarrollo
Acceso Wi-Fi con autenticación 802.1x (2/3):
Configuración 802.1x del AP
- 48 -
(4) Desarrollo
Acceso Wi-Fi con autenticación 802.1x:
Configuración 802.1x para usuario Linux (sin network-manager)
l 
Primero debe instalarse un cliente, utilizaremos ‘wpa_supplicant’.
bash#apt-get install wpasupplicant
l 
Modificar el archivo ‘wpa_supplicant.conf’ en el directorio ‘/etc’ o ‘/etc/wpa_supplicant’:
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network=
#Debe coincidir con el del AP
ssid="SAV1"
key_mgmt=IEEE8021X
eap=PEAP
phase2="auth=MSCHAPV2"
identity="test"
password="test"
- 49 -
Autenticación AAA basada en servidor (RADIUS) con
Router Cisco
En las páginas anteriores montamos un “Servidor RADIUS con Debian, FreeRADIUS y MySQL” y completamos la configuración para que fuese capaz de autenticar a clientes
remotos. En esta nueva entrada, vamos a completar el proceso configurando lo necesario para que un cliente remoto, en este caso un Router Cisco, realice la autenticación de usuarios a traves de nuestro servidor Radius.
En primer lugar vamos a proceder a configurar el Router Cisco para autenticación AAA basada en servidor:
Comenzamos por las configuraciónes básicas, contraseña del modo enable y la ip del Router:
R1(config)# enable secret cisco
R1(config)# interface fastethernet 1/0
R1(config­if)# ip address 10.1.1.254 255.255.255.0
R1(config­if)# no shutdown
R1(config­if)# exit
Ahora habilitamos AAA en el Router, para ello:
1. Primero creamos un usuario y contraseña.
2. Activamos AAA con el comando aaa new­model.
3. Establecemos los metodos de autenticación, en este caso establecemos que se
autentique mediante el servidor RADIUS y en caso de que no se pueda establecer
conexión con el servidor, establecemos como metodo secundario la base de datos local
del Router.
4. Le indicamos la interface a la que esta conectado el servidor RADIUS.
5. Por último, agregamos el servidor RADIUS, indicando la ip, el puerto de
autenticación y la key (clave secreta compartida con el servidor).
- 50 -
R1(config)# username local password local
R1(config)# aaa new­model
R1(config)# aaa authentication login default group radius local
R1(config)# ip radius source­interface fastethernet 1/0
R1(config)# radius­server host 10.1.1.5 auth­port 1812 key radius
Ahora procedemos a configurar las lineas vty, para establecer las conexiones remotas, en el ejemplo le indicamos que el método de autenticación será la lista por defecto que hemos creado en el apartado anterior:
R1(config)# line vty 0 4
R1(config­line)# login authentication default
R1(config­line)# exit
Y con esto hemos completado la configuración en el Router.
Ahora accedemos al servidor FreeRADIUS e introducimos los datos del Router Cisco:
Para ello accedemos a la base de datos radius:
# mysql ­u root ­p radius
Insertamos los datos del Router:
ónico
mysql > insert into nas(nasname,shortname,type,secret)
values(‘10.1.1.254’, ‘R1’, ‘cisco’, ‘radius’);
Lo vemos en la imagen:
Reiniciamos el servidor FreeRADIUS:
# service freeradius restart
Y ya tenemos todo listo así que desde un pc intentamos acceder al router por telnet y nos
logueamos con un usuario y contraseña que hayamos introducido en la base de datos del servidor
Radius
# telnet 10.1.1.254
Si todo va bien podremos loguearnos sin problemas como vemos en la imagen:
- 51 -
Si queremos comprobar las sesiones que hay iniciadas en el router podemos usar el siguiente comando:
R1# show aaa sessions
Y nos mostrara una salida similar a la imagen, en la que nos muestra entre otros datos, los usuarios que tienen iniciada sesion y la ip desde donde conectan:
- 52 -
(5) Referencias
l 
RADIUS By Jonathan Hassell. O'Reilly 2002. ISBN: 0-596-00322-6
l 
http://www.freeradius.org
l 
http://wiki.freeradius.org
l 
http://httpd.apache.org/
l 
l 
http://books.google.com/books?id=yTSoYCiXYAAC&pg=RA1-PA222&lpg=RA1PA222&dq=protocolo+radius&source=web&ots=F1iXTBauo&sig=ug16VP6MqGMX4AIVSla_93qLXhI#PRA1-PA222,M1
Documentación en el curso virtual de la asignatura en CVUEx
- 53 -
Descargar