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 = "\\"
}