Bonnes ID ~ Clément Oudot

Aller au contenu | Aller au menu | Aller à la recherche

LDAP a lu lah

Fil des billets

jeudi, décembre 22 2011

Sortie de Self Service Password 0.7

Présentation

Self Service Password est une interface web très simple permettant à un utilisateur de changer son mot de passe dans un annuaire LDAP. Cet annuaire peut être Active Directory ou un annuaire LDAP conforme au standard.

Le logiciel est en PHP, sous licence GPL.

recaptcha.png

Fonctionnalités principales

  • Mode Samba (pour les mots de passe NT et LM)
  • Mode Active directory (pour les mots de passe AD), avec déverrouillage et réinitialisation à la prochaine connexion
  • Mode Shadow account
  • Politique des mots de passe locale :
    • Taille minimale/maximale
    • Caractères interdits
    • Compteurs pour les majuscules, minuscules, chiffres et caractères spéciaux
    • Non réutilisation du mot de passe actuel
    • Complexité (nombre de classes de caractères différentes)
  • Messages d'aide
  • Réinitialisation par questions/réponses
  • Réinitialisation par un challenge par mail
  • reCAPTCHA (Google API)
  • Notification par mail après changement de mot de passe

L'application est désormais disponible en 8 langues : anglais, français, allemand, espagnol, brésilien, néerlandais, catalan et polonais !

Quelques liens

vendredi, décembre 2 2011

Sortie des RPMs OpenLDAP 2.4.28 sur LDAP Tool Box Project

OpenLDAPlogo.png

La version 2.4.28 d'OpenLDAP est sortie en début de semaine, et les RPMs du projet LDAP Tool Box ont suivi peu après.

Ces RPMs apportent les fonctionnalités suivantes:

  • Backend BDB, HDB, MDB et LDAP
  • Tous les overlays officiels
  • Certains overlays "contrib" (lastbind et smbk5pwd)
  • Support SSL (via OpenSSL)
  • Support de la délégation SASL
  • Support SLAPI
  • Autoconfiguration de la rotation des logs
  • Script d'initialisation en version 1.3
  • Module pwdChecker pour la politique des mots de passe

Le script d'initialisation propose de nombreuses fonctionnalités, comme la sauvegarde et la restauration des données. Ces simples commandes suffisent:

# service slapd backup
# service slapd restore

Il permet également de démarrer simplement OpenLDAP en mode debug:

# service slapd debug

Ce script est bien entendu compatible avec cn=config, et permettra dans sa prochaine version la sauvegarde et restauration de la configuration :

# service slapd backupconfig
# service slapd restoreconfig

Cette fonctionnalité sera fournie dans la prochaine version (1.4).

Pour télécharger tout ça, rendez-vous sur le site du projet LDAP Tool Box : http://ltb-project.org

mercredi, juillet 27 2011

Sortie de Self Service Password 0.6

Présentation

Self Service Password est une interface web très simple permettant à un utilisateur de changer son mot de passe dans un annuaire LDAP. Cet annuaire peut être Active Directory ou un annuaire LDAP conforme au standard.

Le logiciel est en PHP, sous licence GPL.

recaptcha.png

Fonctionnalités principales

  • Mode Samba (pour les mots de passe NT et LM)
  • Mode Active directory (pour les mots de passe AD)
  • Politique des mots de passe locale :
    • Taille minimale/maximale
    • Caractères interdits
    • Compteurs pour les majuscules, minuscules, chiffres et caractères spéciaux
    • Non réutilisation du mot de passe actuel
    • Complexité (nombre de classes de caractères différentes)
  • Messages d'aide
  • Réinitialisation par questions/réponses
  • Réinitialisation par un challenge par mail
  • reCAPTCHA (Google API)
  • Notification par mail après changement de mot de passe

L'application est désormais disponible en 6 langues : anglais, français, allemand, espagnol, brésilien et néerlandais.

Quelques liens

lundi, avril 11 2011

LDAP Tool Box Self Service Password sort en version 0.5

ltb-logo.png

On n'est jamais mieux servi que par soi-même

C'est en tout cas ce que chaque employé d'un service de support informatique vous dira. Traiter les demandes d'utilisateurs ayant perdu leur mot de passe, ou tout simplement voulant changer leur mot de passe, est une activité sans beaucoup de valeur ajoutée.

Pour tenter de réduire le temps investi sur ce sujet, des logiciels dits de "Self Service" sont arrivés. Le principe est simple : si l'utilisateur perd son mot de passe, il se rend sur l'application et demande un nouveau mot de passe, tout seul, comme un grand.

Génial, où est-ce qu'on peut l'acheter ?

Le projet LDAP Tool Box fournit une petite interface Web remplissant ce rôle, elle est nommée avec grande originalité Self Service Password (SSP pour les intimes).

SSP propose les fonctions suivantes :

  • Changement du mot de passe dans un annuaire LDAP
  • Support de Active Directory
  • Support de Samba
  • Politique des mots de passe locale (taille, types de caractères, etc.)
  • Réinitialisation par questions/réponses
  • Réinitialisation par challenge mail

Grâce à de nombreuses contributions, l'interface est disponible en français, anglais, allemand, espagnol, brésilien et hollandais.

La version 0.5 est sortie ce week-end (pas de repos pour les libristes), elle est disponible en archive simple, en paquet RPM ou paquet Debian. N'attendez plus pour l'essayer !

vendredi, mars 25 2011

Nouveaux RPMs pour OpenLDAP 2.4.24 sur LTB-project

ltb-logo.png

La version 2.4.24 d'OpenLDAP est sortie en début d'année. Les RPMs ont été mis en ligne sur LTB-project et sont téléchargeables ici.

Les paquets fournis par LTB-Project incluent en plus d'OpenLDAP un script d'initialisation et un module de contrôle de mot de passe pour l'overlay ppolicy.

Le script d'initialisation est en version 1.2, qui apporte en particulier une fonctionnalité supplémentaire : le démarrage en mode "debug". Cela permet de demander le lancement d'OpenLDAP dans la console avec un niveau de logs configurable (niveau "stats").

Par exemple :

root@ader:~# service slapd debug
slapd[3519]: [INFO] Using /etc/default/slapd for configuration
slapd[3524]: [INFO] Halting OpenLDAP...
slapd[3528]: [OK] OpenLDAP stopped after 1 seconds
slapd[3529]: [INFO] no data backup done
slapd[3530]: [INFO] Halting OpenLDAP replication...
slapd[3531]: [INFO] no replica found in configuration, aborting stopping slurpd
slapd[3532]: [INFO] Launching OpenLDAP replication...
slapd[3533]: [INFO] no replica found in configuration, aborting lauching slurpd
slapd[3534]: [INFO] no db_recover done
slapd[3535]: [INFO] Launching OpenLDAP...
slapd[3536]: [OK] file descriptor limit set to 1024
@(#) $OpenLDAP: slapd 2.4.23 (Dec  8 2010 14:28:30) $
        clement@ader:/home/clement/Programmes/openldap-2.4.23/servers/slapd
slapd starting
conn=1000 fd=13 ACCEPT from IP=127.0.0.1:48634 (IP=0.0.0.0:389)
conn=1000 op=0 BIND dn="" method=128
conn=1000 op=0 RESULT tag=97 err=0 text=
connection_input: conn=1000 deferring operation: binding
conn=1000 op=1 SRCH base="" scope=2 deref=0 filter="(objectClass=*)"
conn=1000 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
conn=1000 op=2 UNBIND
conn=1000 fd=13 closed

Liens :

vendredi, mars 4 2011

Sujet du jour : comment instaurer une politique des mots de passe commune à OpenLDAP et Samba ?

LDAP.png

La politique c'est pas fait pour les politiciens

Rappelons d'abord qu'une politique des mots de passe est un ensemble de règles permettant :

  • de contrôler les authentifications (blocage de compte après plusieurs tentatives infructueuses)
  • de contrôler les changements de mot de passe (expiration, force du mot de passe, réinitalisation à la prochaine connexion, présence dans un historique, etc.)



Samba et OpenLDAP sont sur un bateau

Pour ceux qui ont pratiqué Samba, il est assez simple de gérer la politique des mots de passe Samba (à l'aide des outils Samba ou des Samba LDAP tools). Cependant cette politique ne s'applique qu'à Samba, et ses mots de passes spécifiques (sambaLMPassword et sambaNTPassword).

Pour ceux qui ont pratiqué OpenLDAP, il est aussi assez simple de gérer la politique des mots de passe, en activant l'overlay ppolicy. Cependant cette politique ne s'applique qu'au mot de passe LDAP (userPassword).

Je ne veux voir qu'une politique !

C'est donc bien joli tout ça, mais il me faut une solution pour gérer de manière unique ces contraintes suivantes :

  • Taille du mot de passe au moins de 8 caractères
  • Stockage des 4 derniers mots de passe dans un historique

Bien entendu cela devra être appliqué pour une modification du mot de passe à travers Samba (donc potentiellement à travers la GINA Windows) et à travers une interface Web de changement de mot de passe LDAP.

Et on est bien d'accord que si je change le mot de passe LDAP par l'interface Web, les mots de passe Samba sont aussi mis à jour.

Et plus vite que ça !

Samba

Configurons Samba pour qu'il ne modifie que le mot de passe LDAP. En effet, on va déléguer le reste du travail à OpenLDAP :

# vi /etc/samba/smb.conf

---8<---
ldap passwd sync = only
---8<---

Cela va en fait indiquer à Samba de ne changer que le champ 'userPassword', et ne de pas toucher aux champs 'sambaLMPassword' et 'sambaNTPassword'.

À noter que Samba utilise l'opération étendue password modify pour changer le mot de passe.

OpenLDAP

Il faut activer deux overlays :

  • ppolicy : politique des mots de passe OpenLDAP (contrôle des authentifications et des changements de mot de passe)
  • smbk5pwd : modification des mots de passe Samba et Kerberos en parallèle du mot de passe LDAP, uniquement sur l'opération étendue de changement de mot de passe

L'overlay smbk5pwd n'est pas un overlay officiel, il se trouve dans le répertoire contribs/slapd-modules/smbk5pwd. Certains distributions l'incluent toutefois dans leurs paquetages OpenLDAP (par exemple CentOS), sinon il faut compiler l'overlay à la main.

# vi /etc/openldap/slapd.conf

---8<---
modulepath /usr/lib/openldap/
moduleload ppolicy.la
moduleload smbk5pwd.la

database bdb
overlay ppolicy
ppolicy_default ou=default,ou=ppolicy,dc=example,dc=com

overlay smbk5pwd
smbk5pwd-enable samba
---8<---

Et on configure par exemple la politique des mots de passe avec cette entrée :

dn: ou=default,ou=ppolicy,dc=example,dc=com
objectClass: organizationalUnit
objectClass: pwdPolicy
objectClass: top
ou: default
pwdAttribute: userPassword
pwdCheckQuality: 2
pwdInHistory: 4
pwdMinLength: 10

Croisons les doigts

Changement de mot de passe d'un utilisateur par Samba :

  • Mot de passe valide :
# smbpasswd coudot
New SMB password:
Retype new SMB password:
  • Mot de passe invalide (trop court ou dans l'historique) :
# smbpasswd coudot
New SMB password:
Retype new SMB password:
ldapsam_modify_entry: LDAP Password could not be changed for user coudot: Constraint violation
        Password fails quality checking policy
Failed to modify entry for user coudot.
Failed to modify password entry for user coudot

L'erreur LDAP remontée est bien celle de la politique des mots de passe OpenLDAP.

Ça ira pour cette fois

Cette solution a le mérite de fonctionner, mais on s'aperçoit vite qu'il est impossible par exemple d'avoir un seul compteur d'authentification erronées (car Samba ne fait pas de BIND LDAP), ou encore d'avoir une seule information pour forcer la réinitialisation à la prochaine connexion.

Reste à espérer que les travaux sur Samba 4 amélioreront l'interopérabilité des deux politiques.

mercredi, juillet 21 2010

Nouveaux RPMs pour OpenLDAP 2.4.23 sur LTB-project

ltb-logo.png

Ce mois-ci est sortie la version 2.4.23 d'OpenLDAP, étiquetée comme stable par ses développeurs.

Les RPMs ont été mis en ligne très rapidement sur LTB-project et sont téléchargeables ici.

Il est fortement conseillé de migrer vers cette version car les précédentes ont fait l'objet d'alertes de sécurité.

Les paquets fournis par LTB-Project incluent en plus d'OpenLDAP un script d'initialisation et un module de contrôle de mot de passe pour l'overlay ppolicy.

LTB-Project a également publié récemment une mise à jour des plugins LDAP Nagios et Cacti.

Liens :

jeudi, avril 1 2010

Le protocole LDAP sous brevet logiciel

Le protocole LDAP est né dans les années 90 (du siècle dernier) afin de fournir une alternative "légère" à X.500. Depuis, de nombreux éditeurs et communautés ont fourni des serveurs répondant à la norme LDAP, en particulier LDAPv3 publiée en 1998 (avant le bogue de l'an 2000).

L'un de ces éditeurs s'appelle Microsoft, et son produit Active Directory implémente, entre autres, le protocole LDAP.

En réaction au rachat de SUN par Oracle, qui détient l'un des produits LDAP concurrents les plus solides, Microsoft vient de décider d'engager des poursuites judiciaires en faisant jouer ses brevets sur le protocole LDAP.

L'idée derrière tout ça est bien entendu de s'imposer sur le marché des annuaires, mais surtout mettre en avant les innovations techniques d'Active Directory :

  • Encodage du mot de passe avec un format propriétaire, pour plus de sécurité, dans un attribut non standard (on laisse le champ userPassword en tant que "pot de miel" pour détecter les attaques par dictionnaire)
  • Protocole de réplication propriétaire et fermé, là aussi pour effrayer les éventuels pirates
  • Modification du schéma standard, en particulier suppression de la classe d'objet person qui ne sert vraiment à rien (on la remplace par account)
  • Gestion de la politique des mots de passe par Group Policy, sous format propriétaire, pour que l'on abandonne enfin le draft ppolicy (toujours pas passé en RFC !)
  • Fin de support pour un certain nombre d'extensions, en particulier les filtres étendus, afin de ne pas alourdir le protocole

En définitive, les idées de Microsoft sont bonnes et devraient permettre au protocole LDAP de mieux se diffuser dans les SI, pour offrir alors une alternative crédible aux bases de données.

mercredi, mars 24 2010

Sortie de Perl-LDAP 0.40

Perl

Graham Barr a annoncé récemment la disponibilité de la version 0.40 de Perl-LDAP, l'une des bibliothèque les plus abouties pour interagir avec un annuaire LDAP (en particulier pour son support de nombreux contrôles et opérations étendus).

Il l'annonce dans un message paru sur la liste le 11 mars: lire le message.

En particulier, les changements intéressants sont :

  • Correction de bugs sur le protocole Syncrepl
  • Correction de bugs sur les filtres
  • Ajout du contrôle Refresh

Cette nouvelle version est disponible sur le CPAN et devrait bientôt être mise en ligne sur le site officiel.

samedi, novembre 14 2009

Le projet LDAP Tool Box

ltb-logo.png

J'ai présenté il y a quelques semaines sur le site LinuxFr le projet LDAP Tool Box : Article LinuxFR

Ce projet est une compilation des différents scripts et programmes que nous utilisons dans les projets de gestion d'identités basés sur des logiciels libres. On retrouve en particulier :

  • Scripts de supervision Nagios et Cacti
  • Script de lancement et d'arrêt d'OpenLDAP
  • Interface de changement de mot de passe
  • Script d'alerte d'expiration des comptes
  • RPMs OpenLDAP pour RHEL5
  • Convertisseur de CSV ou LDIF en LDIF

Depuis cet article, de nombreux messages de soutien sont arrivés, et également des contributions qui ont permis de sortir de nouvelles versions des différents programmes. En particulier ont été publiés les RPMs pour OpenLDAP 2.4.19 et une version 0.2 de l'interface de changement de mot de passe.

Merci donc aux développeurs, aux utilisateurs et contributeurs du projet LTB.

Site du projet LTB

vendredi, septembre 26 2008

Sortie de Perl-LDAP 0.38

Une nouvelle version de la librairie Perl-LDAP est sortie fin septembre, essentiellement liée à des correctifs sur l'utilisation de la politique des mots de passe :

  • Utilisation d'un mauvais champ pour stocker l'erreur
  • Bug dans le décodage du contrôle
  • Possibilité d'utiliser le contrôle dans l'opération étendue modifypassword (nommée setPassword dans la librairie Perl)

Une des conséquences les plus importantes est l'utilisation de pp_error() au lieu de error() pour récupérer le message d'erreur du contrôle. Cela impose de modifier vos codes sources pour prendre en compte le renommage de la fonction. Le code de LemonLDAP::NG est bien entendu déjà corrigé sur le dépôt subversion.

Je recommande donc d'exiger au minimum la version 0.38 de Perl-LDAP si vous utilisez la politique des mots de passe.

lundi, mars 31 2008

Sortie de Perl-LDAP 0.35 et politique des mots de passe

Perl

Ce week-end une nouvelle version des bibliothèques Perl Net::LDAP est sortie en version 0.35, apportant un certain nombre d'améliorations (listées ici), dont un nouveau module dédié au contrôle LDAP Password Policy.

Rappelons que ce contrôle permet par exemple de bloquer des comptes suites à plusieurs authentifications ratées, de conserver un historique des mots de passe, d'avoir une taille minimale, de chiffrer à la volée, etc. Si vous souhaitez plus d'informations sur ce standard (qui n'en n'est pas vraiment un puisque la RFC n'est encore qu'un brouillon), vous trouverez une documentation ici.

L'installation se fait de manière très classique :

# perl Makefile.PL
# make
# make test
# make install

Ainsi, vous pouvez à présent dans vos programmes Perl récupérer les messages spécifiques de ce contrôle :

        use Net::LDAP;
        use Net::LDAP::Control::PasswordPolicy;
        use Net::LDAP::Constant qw( LDAP_CONTROL_PASSWORDPOLICY );

        $ldap = Net::LDAP->new( "ldap.example.com" );

        $pp = Net::LDAP::Control::PasswordPolicy->new;

        $mesg = $ldap->bind( "cn=Bob Smith,dc=example,dc=com",
                             password => "secret",
                             control => [ $pp ] );

        # Get password policy reponse
        my($resp)  = $mesg->control( LDAP_CONTROL_PASSWORDPOLICY );

        if (defined($resp)) {
          my $v = $resp->error;
          print "Password policy error $v\n" if defined $v;
          $v = $resp->time_before_expiration;
          print "Password expires in $v second(s)\n" if defined $v;
        }