Índice del artículo

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

}