Pour PEAP, nous avons besoin du mot de passe chiffré. Il faut soit stocker le mot de passe chiffré dans l’attribut ldap Userpassword ou bien se servir d’un autre attribut de mot de passe.
Chiffrement du mot de passe
L’utilitaire smbencrypt permet de chiffrer le mot de passe pour peap. Cet utilitaire fait partie du paquet freeradius-utils.
[root@localhost ~]# /usr/bin/smbencrypt motdepassecompliqué
LM Hash NT Hash
-------------------------------- --------------------------------
BAC14D04669EE1D1AAD3B435B51404EE FBBF55D0EF0E34D39593F55C5F2CA5F2
[root@localhost ~]#
[root@localhost ~]# cat import.ldif
dn: uid=clem,ou=utilisateur,dc=demo,dc=com
changetype: modify
add: userpassword
userpassword: BAC14D04669EE1D1AAD3B435B51404EE
[root@localhost ~]#
Mise à jour du schéma ldap pour utiliser l’attribut sambaNTPassword
On peut utiliser l’attribut ldap sambaNTPassword pour stocker ce mot de passe.
Il faut donc dans un premier temps modifier le schéma pour ajouter cet attributs. Ajout du schéma samba à LDAP
Le schéma se trouve dans le logiciel samba.
Donc:
[root@localhost ~]# wget http://ftp.samba.org/pub/samba/stable/samba-3.6.4.tar.gz
[root@localhost ~]# tar -xzvf samba-3.6.4.tar.gz
[root@localhost schema]# cp /root/samba-3.6.4/examples/LDAP/samba.schema /etc/openldap/schema/
[root@localhost schema]# cat schema-convert
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
[root@localhost schema]#
Ouvrir ensuite le fichier ldif qui correspond au schéma ldap
[root@localhost cn=schema]# pwd
/etc/openldap/schema/ldif-output/cn=config/cn=schema
[root@localhost cn=schema]# ls
cn={0}core.ldif cn={1}cosine.ldif cn={2}inetorgperson.ldif cn={3}nis.ldif cn={4}samba.ldif
[root@localhost cn=schema]#vi cn={4}samba.ldif
Modifier les premières lignes:
dn: cn=samba,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: samba
Supprimer les lignes suivantes à la fin du fichier
structuralObjectClass: olcSchemaConfig
entryUUID: 0ff1fcde-2ec8-1031-89ea-ff117b89f3c5
creatorsName: cn=config
createTimestamp: 20120510084412Z
entryCSN: 20120510084412.961025Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20120510084412Z
On importe ensuite le schéma dans LDAP
[root@localhost cn=schema]# ldapadd -Y EXTERNAL -H ldapi:/// -f ./cn\=\{4\}samba.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=samba"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
Import d’un utilisateur avec tous les attributs
Fichier ldif
[root@localhost ~]# cat import.ldif
dn: uid=clem, ou=utilisateur,dc=demo,dc=com
objectClass: inetOrgPerson
objectClass: radiusprofile
objectClass: sambaSamAccount
uid: clem
userPassword: password
cn: clem
sn: snclem
radiustunneltype: VLAN
radiustunnelmediumtype: 6
radiustunnelprivategroupid: 4
SambaNTPassword: 878D8014606CDA29677A44EFA1353FC7
SambaSid:
[root@localhost ~]#