Configuración de Freeradius
La versión 3 de Freeradius tiene ciertas diferencias con la versión 2.
El fichero mods-enabled/eap
En este fichero se describen las características generales de la configuración eap para todos los tipos que se vayan a utilizar. En este caso usaremos TLS y EAP-PEAP.
Una diferencia con la configuración anterior es que TLS se configura de forma común para todo el módulo.
Para configurar eap en primer lugar copiamos el fichero mods-available/eap en mods-enabled/eap y dejamos su contenido como:
eap {
## default_eap_type = tls
default_eap_type = peap
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = ${max_requests}
md5 {
}
leap {
}
gtc {
auth_type = PAP
}
tls-config tls-common {
private_key_password = clave_de_llave_privada
private_key_file = /etc/pki/tls/caronte.bezmi.ies/caronte.bezmi.ies.key
certificate_file = /etc/pki/tls/caronte.bezmi.ies/caronte.bezmi.ies.pem
CA_file = /etc/pki/CA/cacert.pem
dh_file = ${certdir}/dh
ca_path = ${cadir}
cipher_list = "DEFAULT"
ecdh_curve = "prime256v1"
cache {
enable = yes
lifetime = 24 # hours
max_entries = 255
}
verify {
}
ocsp {
enable = no
override_cert_url = yes
url = "http://127.0.0.1/ocsp/"
}
}
tls {
tls = tls-common
}
ttls {
tls = tls-common
default_eap_type = md5
copy_request_to_tunnel = yes
use_tunneled_reply = yes
virtual_server = "bezmiliana"
}
peap {
tls = tls-common
default_eap_type = mschapv2
copy_request_to_tunnel = yes
use_tunneled_reply = yes
proxy_tunneled_request_as_eap = yes
virtual_server = "bezmiliana"
}
mschapv2 {
}
}
Observamos las líneas virtual_server = “bezmiliana”. Más adelante tendremos que definir este servidor virtual. También se podría haber usado el servidor virtual que trae el sistema.
El fichero sites-enabled/bezmiliana
Este fichero no existe, tendremos que crearlo. Aquí definimos los distintos procedimientos de validación que va a utilizar.
server bezmiliana {
$INCLUDE ${confdir}/sites-available/default
client 192.168.10.0/24 {
secret = radiusd123
shortname = bezmiliana
}
listen {
ipaddr = 192.168.10.1
port = 1812
type = auth
}
authorize {
mschap
suffix
eap {
ok = return
}
-ldap
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
eap
}
post-auth {
-sql
Post-Auth-Type REJECT {
-sql
}
}
pre-proxy {
}
post-proxy {
eap
}
} # bezmiliana server block
El fichero clients.conf
En este fichero establecemos qué clientes se pueden conectar al servicio radius, el tipo de acceso y la contraseña necesaria.
client localhost {
ipaddr = 127.0.0.1
proto = *
secret = radiusd123
require_message_authenticator = no
nas_type = other # localhost isn't usually a NAS...
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
client 192.168.10.0/24 {
secret = radiusd123
shortname = bezmiliana
}
El fichero proxy.conf
proxy server {
synchronous = no
retry_delay = 5
retry_count = 3
dead_time = 120
default_fallback = yes
post_proxy_authorize = yes
}
realm LOCAL {
type = other
authhost = LOCAL
accthost = LOCAL
}
realm BEZMI.IES {
type = ntlm_auth
authhost = LOCAL
accthost = LOCAL
}
El fichero mods-enabled/mschap
mschap {
ntlm_auth = "/bin/ntlm_auth --request-nt-key --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"
passchange {
}
}
El fichero mods-enabled/ntlm_auth
exec ntlm_auth {
wait = yes
program = "/bin/ntlm_auth --request-nt-key --domain=ATENEA --username=%{%{Stripped-User-Name}:-%{User-Name:-None}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00}"
}
El fichero mods-enabled/realm
Este fichero define los separadores que podemos encontrar entre el nombre de dominio y el nombre de usuario.
realm IPASS {
format = prefix
delimiter = "/"
}
realm suffix {
format = suffix
delimiter = "@"
}
realm realmpercent {
format = suffix
delimiter = "%"
}
realm ntdomain {
format = prefix
delimiter = "\\"
}
Configuración de Freeradius
La configuración de Freeradius se almacena en /etc/raddb. Dentro de esta carpeta encontramos el fichero radiusd.conf que normalmente no será necesario editar. Sería necesario modificarlo, por ejemplo, si en un equipo con dos adaptadores de red queremos que freeradius actúe sólo en uno de ellos.
En radius vamos a configurar diferentes mecanismos de autenticación: PEAP, TLS y LDAP.