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.
Muchas gracias por la nota del final, después de 5 horas volviéndome tonto buscando porque no me pillaba mi modulo ldap y me seguía cargando la configuración por defecto ya estaba desesperado.
De no haber leído tu nota, ya estaría tirando el ordenador por la ventana, jeje.
Me alegro que haya servido de ayuda ;)
A mi tambien me salvo el dia, muchas gracias por la nota. En Centos 6 tenia un respaldo de /etc/raddb/modules/ldap.ori que estaba causando conflictos, ya llevaba un buen tiempo con este problema, lo borre y listo. Saludos,
gil
Hola a todos, me arroja el siguiente error el radius:
[ldap] ldap_search() failed: Operations error
[ldap] search failed
A que se puede deber?
Gracias!