Radius (Remote Authentication Dial-In User Server),es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza el puerto 1812 UDP para establecer sus conexiones.
Una de las principales aplicaciones que utilizan e implementan este protocolo es, freeradius.

Freeradius permite entre otras cosas, distintas formas de autenticación y entre ellas está realizar la autenticación contra un servidor LDAP. En esta características nos centraremos. La manera de habilitar la autenticación LDAP, es la siguiente:
Modificamos los siguientes ficheros,
*Nota: importante, si hacemos backup de un fichero de configuración, no debemos dejarlo en el mismo directorio, ya que puede crear conflictos.
- /etc/freeradius/modules/ldap
ldap {
#
# Note that this needs to match the name in the LDAP
# server certificate, if you're using ldaps.
server = "NOMBRE O IP DEL SERVIDOR LDAP"
identity = "cn=admin,dc=pruebas,dc=com"
password = "Password"
basedn = "ou=people,dc=pruebas,dc=com"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
base_filter = "(objectclass=radiusprofile)"
password_attribute = userPassword
- server= Nombre del servidor LDAP, o en su defecto IP.
- identity= Usuario con privilegios en el ldap y dominio de busqueda.
- password= Password de este usuario
(es posible suprimir estos dos campos) - basedn= le decimos donde buscar en el ldap
- /etc/freeradius/sites-enabled/default
authorize {
#
# The ldap module will set Auth-Type to LDAP if it has not
# already been set
ldap
....
authenticate {
# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password.
Auth-Type LDAP {
ldap
}
Con esto sería suficiente. Reiniciamos freeradius y comprobamos mediante la herramienta Radtest:root@Demo:~# radtest Usuario Password localhost 1812 test123
Sending Access-Request of id 54 to 127.0.0.1 port 1812
User-Name = "Usuario"
User-Password = "Password"
NAS-IP-Address = xxx.xxx.xxx.xxx
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=54,
length=20
Donde "Usuario" es un usuario dado de alta en el LDAP. Si vemos los logs que
deja freeradius (ejecutando freeradius con la opción -X) encontramos:[ldap] performing user authorization for Usuario
[ldap] expand:
[ldap] ... expanding second conditional
[ldap] expand: %{User-Name}-> Usuario
[ldap] expand: (uid={%{Stripped-User-Name}:-%{User-Name}})->(uid=Usuario)
[ldap] expand: ou=people,dc=pruebas,dc=com -> ou=people,dc=pruebas,dc=com
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] performing search in ou=people,dc=pruebas,dc=com, with filter
(uid=password)
[ldap] Added User-Password = radius in check items
[ldap] No default NMAS login sequence
[ldap] looking for check items in directory...
[ldap] userPassword -> Password-With-Header == "password"
[ldap] looking for reply items in directory...
[ldap] user Usuario authorized to use remote access
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns ok
Que la petición de autenticación se lleva a cabo correctamente contra el
LDAP.*Nota: importante, si hacemos backup de un fichero de configuración, no debemos dejarlo en el mismo directorio, ya que puede crear conflictos.