Instalación de FreeRadius y autentificación remota con OpenLDAP
Instalamos Freeradius y sus dependencias:
apt-get install freeradius freeradius-ldap
Eliminamos y creamos de nuevo el archivo de configuración donde habilitaremos qué clientes tienen acceso a internet:
cp /etc/freeradius/clients.conf /etc/freeradius/clients.conf.backup
rm -rf /etc/freeradius/clients.conf
nano /etc/freeradius/clients.conf
Y le añadimos la siguiente configuración:
client localhost {
ipaddr = 127.0.0.1
secret = secretkey
nastype = other
}
client 192.168.10.0/24 {
secret = secretkey
nastype = other
}
Ahora modificamos el archivo de configuración radiusd.conf:
cp /etc/freeradius/radiusd.conf /etc/freeradius/radiusd.conf.backup
rm -rf /etc/freeradius/radiusd.conf
nano /etc/freeradius/radiusd.conf
Y le añadimos ésta configuración:
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius
radacctdir = ${logdir}/radacct
name = freeradius
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/${name}
db_dir = ${raddbdir}
libdir = /usr/lib/freeradius
pidfile = ${run_dir}/${name}.pid
user = freerad
group = freerad
max_request_time = 30
cleanup_delay = 5
max_requests = 1024
listen {
type = auth
ipaddr = *
port = 0
}
listen {
ipaddr = *
port = 0
type = acct
}
hostname_lookups = no
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
log {
destination = files
file = ${logdir}/radius.log
syslog_facility = daemon
stripped_names = no
auth = no
auth_badpass = no
auth_goodpass = no
}
checkrad = ${sbindir}/checkrad
security {
max_attributes = 200
reject_delay = 1
status_server = yes
}
proxy_requests = yes
$INCLUDE proxy.conf
$INCLUDE clients.conf
thread pool {
start_servers = 5
max_servers = 32
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 0
}
modules {
$INCLUDE ${confdir}/modules/
}
instantiate {
exec
expr
expiration
logintime
}
$INCLUDE policy.conf
$INCLUDE sites-enabled/
Ahora modificaremos el módulo que permite la autentificación mediante LDAP:
cp /etc/freeradius/modules/ldap /etc/freeradius/modules/ldap.backup
rm -rf /etc/freeradius/modules/ldap
nano /etc/freeradius/modules/ldap
Y le añadimos ésta configuración (modificando los campos necesarios con nuestros datos):
ldap {
server = "192.168.10.2"
port = "389"
basedn = "dc=home,dc=local"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
dictionary_mapping = ${confdir}/ldap.attrmap
edir_account_policy_check = no
set_auth_type = yes
}
Y ahora debemos autorizar el ldap en los siguientes archivos:
cp /etc/freeradius/sites-avaliable/default /etc/freeradius/sites-avaliable/default.backup
rm -rf /etc/freeradius/sites-avaliable/default
nano /etc/freeradius/sites-avaliable/default
Con la siguiente configuración:
authorize {
ldap
}
authenticate {
Auth-Type LDAP {
ldap
}
}
preacct {
}
accounting {
}
session {
radutmp
}
post-auth {
exec
Post-Auth-Type REJECT {
attr_filter.access_reject
}
}
pre-proxy {
}
post-proxy {
}
Y tambiénel siguiente:
cp /etc/freeradius/sites-avaliable/inner-tunel etc/freeradius/sites-avaliable/inner-tunnel.backup
rm -rf /etc/freeradius/sites-avaliable/inner-tunnel
nano /etc/freeradius/sites-avaliable/inner-tunnel
Con esta configuración:
server inner-tunnel {
authorize {
ldap
}
authenticate {
Auth-Type LDAP {
ldap
}
}
session {
radutmp
}
post-auth {
Post-Auth-Type REJECT {
attr_filter.access_reject
}
}
pre-proxy {
}
post-proxy {
}
}
Verificación y testeo
Para comprobar si todo ha ido correctamente usaremos este comando mientras el servicio freeradius está apagado:
freeradius -XXX
Dará un informe bastante largo, debemos fijarnos de que al final ponga:
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.
En caso negativo tendremos que mirar que hayamos puesto los datos correctos en los archivos que dijimos antes. En ese caso fijaos especialmente en la dirección del servidor LDAP.
Ahora probaremos la autentificación con el servidor LDAP. Para ello activaremos el servicio freeradius y pondremos lo siguiente:
radtest userid ldap-password localhost 0 secretkey
En nuestro caso es así:
radtest pepilote P@ssw0rd localhost 0 P@ssw0rd
Si al final el reporte termina con la frase “rad_recv: Acces-Accept packet from host 127.0.0.1 port 1812, id=xxx, legth=xx” es que todo funciona correctamente.
En cambio si nos da “rad_recv: Acces-Reject” es que hemos puesto mal nuestros datos.
No hay comentarios:
Publicar un comentario