Beruflich Dokumente
Kultur Dokumente
Consideraciones iniciales Instalacin y configuracin de FreeRADIUS Autenticacin Web. PAM_RADIUS_AUTH Acceso Wi-Fi 802.1x
(6) Referencias
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS -2-
(1) Introduccin
RADIUS provee arquitectura AAA (Authentication, Authorization, Accounting) para redes de acceso dialup (NAS), VPN, acceso inalmbrico (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 (autentificacin y autorizacin) y 2866 (manejo de sesiones). Propsito es diferenciar, identificar y contabilidad (permite cobros por uso billing) de usuarios.
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS -3-
Soporta gran nmero de usuarios y consultas simultneas; y cientos de dispositivos. Provee mecanismo de respaldo, ante un fallo de comunicacin con el servidor AAA primario. Dispone un mecanismo de autenticacin cliente/servidor. Requiere autenticacin, proteccin integral y confidencialidad de la Capa de Transporte. Poltica de no modificacin del paquete original. Permite el transporte de certificados. Permite servicio de seguridad subyacente como IPsec. Es extensible a otros usos (RADIUS RFC 2869).
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS -4-
NAS opera como cliente RADIUS, pasado la peticin de conexin del usuario al servidor designado. Servidor RADIUS responsable de autenticar al usuario y enviar respuesta con informacin de configuracin. Como cliente proxy de otros servidores RADIUS (ISP). Mensajes enviados por UDP (User Datagram Protocol):
Puerto UDP 1812 usado para mensajes de autenticacin. Puerto UDP 1813 para mensajes de cuentas. Originalmente se usaron UDP 1645/1646.
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS -5-
Seguridad:
Para comprobar que los mensajes RADIUS son enviados por un dispositivo compatible y la integridad de los mismos. Tambin se utiliza para cifrar algunos de los atributos RADIUS, como UserPassword y Tunnel-Password. Mismo secreto compartido, que distingue maysculas y minsculas, en ambos dispositivos RADIUS; y diferente en cada par cliente/servidor. Nunca se transfiere a travs de la red. Debe ser aleatorio, con una secuencia aleatoria de mnimo 22 caracteres (utilizar cualquier carcter alfanumrico o especial estndar) y mximo 128 caracteres de longitud.
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
-6-
Code (1 byte): Contiene el tipo de comando/respuesta RADIUS Identifier (1 byte): Usado para relacionar comandos y respuestas Length (2 bytes): Longitud del paquete Authenticator (4 bytes): Usado para autenticar la respuesta del servidor RADIUS, y usado por el algoritmo de encubrimiento de contrasea. Attributes: N arbitrario de atributos, los nicos obligatorios: User-Name (usuario) y User-Password (contrasea).
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS -8-
Informacin autenticacin
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
-9-
http://tools.ietf.org/html/rfc3579
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 10 -
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 11 -
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 12 -
(4) Aplicaciones
Redes Wireless:
Estndar 802.1X (http://tools.ietf.org/html/rfc3580) Radius permite controlar la seguridad del acceso a datos. Tambin permite informes para realizar la tarificacin en consecuencia.
VoIP:
(5) Desarrollos
Consideraciones iniciales (1/4):
servicio de autenticacin Web. servicio de autenticacin para 802.1x. Caractersticas preconfiguradas en mquina virtual VMware: DEBIAN 4.0 ETCH (desde netinstall) APACHE 2 + SSL + PHP 5 (desde repositorios) MYSQL + PHPMYADMIN (desde repositorios)
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 14 -
(5) Desarrollos*
Consideraciones iniciales (2/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 15 -
(5) Desarrollos*
Consideraciones iniciales (3/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 16 -
(5) Desarrollos
Consideraciones iniciales (4/4):
Caractersticas configurables:
Esquema de autenticacin NAS servidor RADIUS. Compatibilidad con clientes 802.1x, en MS-Windows como Linux, usando MS-CHAPv2.
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 17 -
(5) Desarrollos
Instalacin de FreeRADIUS desde archivos fuentes (1/2):
Paquetes bsicos y dependencias antes de compilacin: Paquetes bsicos: bash#apt-get install build-essential dpkg-dev dpatch debhelper fakeroot Dependencias: bash#apt-get install openssl libltdl3-dev libpam0g-dev libmysqlclient15-dev libgdbm-dev libldap2-dev libsasl2dev libiodbc2-dev libkrb5-dev libperl-dev libpcap-dev python-dev snmp libsnmp9-dev libpq-dev libssl-dev
1. Descargar los fuentes desde http://www.freeradius.org: bash#wget ftp://ftp.freeradius.org/pub/freeradius/ freeradius-server-2.0.1.tar.gz 2. Descomprimir el archivo descargado: bash#tar zxvf freeradius-server-2.0.1.tar.gz
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 18 -
(5) Desarrollos
Instalacin de FreeRADIUS desde archivos fuentes (2/2):
3. Paquetizamos la instalacin de FreeRADIUS: bash#cd freeradius-server-2.0.1 bash#fakeroot dpkg-buildpackage -b -uc 4. Instalamos los paquetes que necesitamos procedentes del paso anterior: bash#dpkg -i freeradius_2.0.1-0_i386.deb bash#dpkg -i freeradius-mysql_2.0.1-0_i386.deb 5. Al instalarse los paquetes, el servicio freeradius se activa; para poder configurarlos, deben pararse con el siguiente comando: bash#/etc/init.d/freeradius stop 6. Para comprobar en cada momento el estado de funcionamiento del servicio RADIUS, abrir un nuevo terminal y ejecutar: bash#tail -f /var/log/freeradius/radius.log
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 19 -
(5) Desarrollo
Configuracin:
radiusd.conf: Archivo de configuracin principal, contiene numerosos parmetros de configuracin comunes y referencias a otros archivos de configuracin. users: Contiene informacin de autenticacin y configuracin para cada usuario que puede acceder, en caso de no usar otro mtodo. clients.conf: Contiene la definicin de los clientes RADIUS (NAS) que pueden conectarse al servidor. sql.conf: Guarda la configuracin para el mdulo SQL, en el caso de usar una BD como backend para los usuarios de RADIUS. eap.conf: Contiene informacin relativa a la configuracin del tipo EAP (Extensible Authentication Protocol) elegido para que funcione como protocolo de autenticacin. 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 informacin de configuracin especfica del mismo dentro de este directorio.
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 20 -
(5) Desarrollo
Configuracin /etc/freeradius/radius.conf (1/3):
Seccin Log. Contiene parmetros de configuracin para el registro de sucesos durante la ejecucin de RADIUS: log { ...
#Registra las peticiones de autenticacin
auth = yes
#Registra las passwords de las peticiones de autenticacin, #tanto aceptadas como rechazadas. Slo recomendable a efectos de #depuracin
#$INCLUDE proxy.conf
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 21 -
(5) Desarrollo
Configuracin /etc/freeradius/radius.conf (2/3):
Seccin Modules. Contiene los parmetros generales de configuracin de los mdulos que determinan los tipos de mtodos de autenticacin activos. modules { ... pap { auto_header = yes } mschap {#Soporta autenticacin MS-CHAP y MS-CHAPv2
#Microsoft Point-to-Point Encryption es un protocolo de #encriptacin de datos para el protocolo PPP y enlaces VPN. #Soporta claves de sesin de 40, 56 y 128-bit, que cambian #por paquete.
with_ntdomain_hack = yes }
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 22 -
(5) Desarrollo
Configuracin /etc/freeradius/radius.conf (3/3):
preprocess { ... #Mismo motivo del anterior, pero durante el preprocesamiento de #peticiones entrantes with_ntdomain_hack = yes ... }
Pool de direcciones IP, slo en accesos a redes tipo dialup (PPP o GPRS). NO para redes Wifi, Wimax o Ethernet, donde se exigir disponer de un servicio DHCP. #ippool main_pool {#Gestin de pools de direcciones #Determina el rango de direcciones asignadas si es el caso # # # ... #}
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 23 -
(5) Desarrollo
Configuracin /etc/freeradius/sites-available/default (1/3):
(5) Desarrollo
Configuracin /etc/freeradius/sites-available/default (2/3):
Seccin Authentication: Recoge cules son los mdulos disponibles para la autenticacin.
authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } unix # Habilita la autenticacin EAP eap }
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 25 -
(5) Desarrollo
Configuracin /etc/freeradius/sites-available/default (3/3):
accounting { #Parmetros relacionados con el registro de actividades de contabilidad detail unix radutmp # Indica que los registros sern almacenados en una BD segn sql.conf sql } session { #Se usa para el manejo de sesiones simultneas radutmp # Usa una BD en el manejo de sesiones segn sql.conf sql } post-auth { # Usa BD para tareas de post-autenticacin sql }
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 26 -
(5) Desarrollo
Configuracin /etc/freeradius/sql.conf (1/1):
sql { #Selecciona una BD: mysql, mssql, oracle, postgresql database = "mysql" #Se indica a FreeRADIUS el driver a usar driver = "rlm_sql_${database}" #Informacin de conexin: #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 utilizacin de atributos de grupo read_groups = yes $INCLUDE sql/${database}/dialup.conf #(contiene las consultas) }
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 27 -
(5) Desarrollo
Configuracin /etc/freeradius/eap.conf (1/2):
eap { #Se le dice que use PEAP default_eap_type = peap timer_expire ... 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 { } }
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 28 -
= 60
ignore_unknown_eap_types = no
(5) Desarrollo
Configuracin. Generar nuevos certificados TLS (2/2):
Certificados para canal seguro (TLS), creados por defecto durante la instalacin (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 informacin propia:
(1) Borrar o renombrar todos los archivos con prefijo server.* y ca.*, excepto los dos indicados anteriormente. (2) Editar ca.cnf y cambiar en la seccin [certificate_authority] los datos que consideremos oportunos. (3) Editar server.cnf y cambiar en la seccin [server] los datos que consideremos oportunos. OJO! Es recomendable colocar los mismos datos en ambos archivos. (4) Ejecutar el script ./bootstrap
Se creen o no de nuevo, una vez terminado de configurar eap.conf, deben crearse enlaces simblicos a los certificados para que EAP pueda localizarlos:
bash#cd /etc/freeradius/certs bash#c_rehash
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 29 -
(5) Desarrollo
Configuracin /etc/freeradius/users y clients.conf (1/1):
Configuracin de /etc/freeradius/users:
En nuestro desarrollo no se utiliza. Empleamos BD en MySQL para almacenar la informacin de usuario, y por tanto, deben estar todas las lneas comentadas.
Configuracin de /etc/freeradius/clients.conf:
= testing456
shortname = ap
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (1/7):
Para mejor comprensin de la BD y facilitar su manejo, disponemos de una interfaz web en la direccin http://direccin_ip_mi_servidor/phpmyadmin Abrir una conexin con MySQL desde shell y crear BD de usuarios:
bash#mysql -uroot -p040000 mysql>create database radius; mysql>grant all privileges on radius.* to radius@localhost identified by 'radpass'; mysql>use radius; mysql>quit;
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 31 -
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (2/7):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 32 -
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (3/7):
1. Existe 'user' en radcheck? 2. Datos de validacin se corresponden? 3. read_groups = yes en sql.conf? 4. Existe un entrada para 'user' en radreply? 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?
user/pass
No
1
No
radcheck
2
radusergroup by priority radgroupcheck S
Respuesta
read_groups = yes No No
Ms informacin: http://wiki.freeradius.org/Rlm_sql
4
S
radreply
No
6
S radgroupreply S
No
No
- 33 -
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (4/7):
ATRIBUTOS de FreeRADIUS:
Formato de tabla: Muestra qu atributos aparecen o pueden aparecer en cada tipo de mensaje Radius:
0 indica que el atributo no puede aparecer en el mensaje. 0+ indica que el atributo puede no aparecer o aparecer una o ms 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 slo una vez en el mensaje. 1+ indica que el atributo al menos debe aparecer una vez en el mensaje.
Ms informacin: http://www.freeradius.org/rfc/attributes.html
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS - 34 -
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (5/7):
Atributo = valor
No permitido como operador para atributos de validacin (check items). En un atributo de respuesta (reply items), "aade el atributo a la lista, slo si no hay ningn otro valor para el mismo atributo. Sustituye cualquier directiva de configuracin del mismo nombre (p.e. en users). Si ningn atributo con este nombre aparece en la peticin, entonces es aadido. En la respuesta tiene un significado idntico. Siempre aade el atributo a la lista de directivas de configuracin. Como operador en un atributo de respuesta, tiene un significado idntico. Como atributo de validacin, la asignacin es vlida si el atributo est presente en la peticin y tiene un valor dado. No est permitido como operador para un atributo de respuesta. Como atributo de validacin, la asignacin es vlida si el atributo est presente en la peticin y NO tiene un valor previamente dado. No permitido como operador para un atributo de respuesta.
- 35 -
Atributo := valor
Atributo += valor
Atributo == valor
Atributo != valor
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (6/7):
Tabla RADCHECK:
Tabla RADUSERGROUP:
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 36 -
(5) Desarrollo
Configuracin Base de Datos de usuario en MySQL (7/7):
Tabla RADGROUPCHECK:
Tabla RADGROUPREPLY:
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 37 -
(5) Desarrollo
Test de funcionamiento (1/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 38 -
(5) Desarrollo
Test de funcionamiento (2/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 39 -
(5) Desarrollo
Test de funcionamiento (3/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 40 -
(5) Desarrollo
Test de funcionamiento (4/4):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 41 -
(5) Desarrollo
Autenticacin Web. PAM_RADIUS_AUTH (1/4):
APACHE2
/etc/apache2/httpd.conf sites-available/default
PAM
/etc/pam.d/apache2 /etc/pam_radius_auth.conf
FreeRADIUS
mod_auth_pam
liapache2-mod-auth-pam
pam_radius_auth
libpam-radius-auth
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 42 -
(5) Desarrollo
Autenticacin Web. PAM_RADIUS_AUTH (2/4):
Configurar autenticacin para el sitio web por defecto, aadir el siguiente cdigo al archivo /etc/apache2/httpd.conf: <Directory /var/www/apache2-default/> #Habilita la autenticacin PAM en este directorio AuthPAM_Enabled on #'on' habilita Apache a preguntar a otro mdulo de autenticacin AuthPAM_FallThrough off AuthType Basic AuthName "Area segura. Acceso restringido" #AuthUserFile /dev/null #Siempre 'off' cuando usemos PAM para la autenticacin AuthBasicAuthoritative off #Se indica que todos los usuarios vlidos pueden acceder al recurso #protegido. Require valid-user </Directory>
(5) Desarrollo
Autenticacin Web. PAM_RADIUS_AUTH (3/4):
Mdulo de autenticacin RADIUS para PAM (pam_radius_auth): Instalamos el paquete que contiene el mdulo: bash#apt-get install libpam-radius-auth Al instalar el mdulo PAM de autorizacin para Apache 2, se crea el archivo /etc/pam.d/apache2 que especifica el tipo de autenticacin requerida:
#Indica que para autorizacin y contabilidad, emplear RADIUS. #Tipos de 'service': required, requisite, sufficient, optional,include, substack #service type auth account password session control sufficient sufficient module-path module-arguments pam_radius_auth.so pam_radius_auth.so debug debug
# #
#Comentadas para no utilizar valores por defecto indicados en /etc/pam.conf #@include common-auth #@include common-account
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
(5) Desarrollo
Autenticacin Web. PAM_RADIUS_AUTH (4/4):
tail -f /var/log/syslog:
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 45 -
(5) Desarrollo
Acceso Wi-Fi con autenticacin 802.1x (1/3):
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 46 -
(5) Desarrollo
Acceso Wi-Fi con autenticacin 802.1x (2/3):
Configuracin 802.1x del AP
Mdulo Servicios de red / Servicio de autorizacin de usuarios para acceso remoto RADIUS
- 47 -
(5) Desarrollo
Acceso Wi-Fi con autenticacin 802.1x (3/3):
Configuracin 802.1x para usuario Linux
(6) Referencias