Freeradius-Ldap sur Ubuntu 18
Freeradius est un serveur d'authentification RADIUS gratuit. C'est le plus utilisé dans le monde.
À se rappeler qu'un annuaire LDAP est aussi une base de données, mais non relationnelle. Et tout ce qui est base de données a pour vocation de stocker des informations.
Comme son nom l'indique, le but de ce TP est de coupler Freeradius à Ldap.
Prérequis :
# apt install freeradius freeradius-utils freeradius-ldap ldap-utils slapd -y
- Configuration du serveur
# cd /usr/share/doc/freeradius/schemas/ldap/openldap
# gzip -d freeradius.schema.gz
# cp freeradius-clients.schema /etc/ldap/schema/
# cp freeradius.schema /etc/ldap/schema/
# cp /usr/share/slapd/slapd.conf /etc/ldap/
# cd /etc/ldap
# mv /etc/ldap/slapd.d/ /etc/ldap/slapd.d.old
# nano /etc/ldap/slapd.conf
Inclure les schémas radius
/image%2F3625927%2F20201016%2Fob_17fcfa_1.png)
Toujours dans le fichier, on donne les valeurs suivantes aux paramètres suivants :
moduleload back_hdb
backend hdb
database hdb
suffix "dc=dakar,dc=sn"
rootdn "cn=bory,dc=dakar,dc=sn"
rootpw test123 // À ajouter !
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
by dn="cn=bory,dc=dakar,dc=sn" write
by anonymous auth
by self write
by * none
# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn="cn=bory,dc=dakar,dc=sn" write
by * read
- Configuration du client
Cela se passe dans le fichier /etc/ldap/ldap.conf
BASE dc=dakar,dc=sn
URI ldap://127.0.0.1
- Redémarrer le service
# service slapd restart
- On vérifie s'il écoute sur son port standard
/image%2F3625927%2F20201016%2Fob_d9043f_2.png)
- On crée la racine de l'annuaire et une unité organisationnelle
# nano racine.ldif
dn: dc=dakar,dc=sn
objectclass: organization
objectclass: dcObject
dc: dakar
o: dakar
dn: ou=users,dc=dakar,dc=sn
objectclass: organizationalUnit
ou: users
On alimente l'annuaire
/image%2F3625927%2F20201016%2Fob_be7248_3.png)
Nous venons de créer la racine et une unité organisationnelle qui s'appelle users
- Insérons un utilisateurs dans notre annuaire
# nano users.ldif
dn: uid=john,ou=users,dc=dakar,dc=sn
objectclass: inetOrgPerson
objectclass: posixAccount
uid: john
uidNumber: 3000
gidNumber: 3000
gn: Cena
homeDirectory: /home/john
loginShell: /bin/bash
sn: john
cn: John Cena
userPassword: passer
mail: john@dakar.sn
dn: cn=john,dc=dakar,dc=sn
objectclass: posixGroup
cn: john
gidNumber: 3000
memberUid: john
On alimente l'annuaire
/image%2F3625927%2F20201016%2Fob_8fb7d9_4.png)
- On donne les paramètres de connexion de l'annuaire à freeradius :
Dans le fichier /etc/freeradius/3.0/mods-available/ldap , on donne les valeurs suivantes aux paramètres suivants :
server = 'localhost'
port = 389
identity = 'cn=bory,dc=dakar,dc=sn'
password = test123
base_dn = 'dc=dakar,dc=sn'
- On fait le mapping entre les attributs radius et ldap en ajoutant la ligne suivante control:Cleartext-Password += 'userPassword' dans la rubrique update comme suit :
# attribute ref.
update {
control:Password-With-Header += 'userPassword'
control:Cleartext-Password += 'userPassword'
# control:NT-Password := 'ntPassword'
- Dans le fichier /etc/freeradius/3.0/sites-available/default , on enlève le - devant LDAP dans la section authorize
/image%2F3625927%2F20201017%2Fob_79ab56_5.png)
- On de-commente les lignes suivantes dans la section authenticate
/image%2F3625927%2F20201017%2Fob_d99870_6.png)
- On crée un lien symbolique
# ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ldap
- On redémarre freeradius
# service freeradius restart
Essayons de nous connecter à Freeradius avec le compte de John stocké dans l'annuaire Ldap :
/image%2F3625927%2F20201017%2Fob_110da1_7.png)
Connexion établie avec succès !