Bibliothèque qui fume

Publié le par Peck

Cet article est maintenant sur http://linux-attitude.fr/post/Bibliotheque-qui-fume

Niveau
:
Résumé : libpam-cracklib ; passwd -e

Vos mots de passes sont nazes ? Vous avez des utilisateurs qui ont des mots de passe faibles ? Alors c'est que vous avez oublié cracklib lors de votre installation.

Cracklib
Cracklib est une bibliothèque qui permet de vérifier la force ou la faiblesse d'un mot de passe (paquet cracklib2 et cracklib-runtime). Ceci se fait avec quelques tests basiques puis à partir d'un dictionnaire de mots de passe.

Par défaut, le dictionnaire n'est pas compilé, en root tapez
$ update-cracklib # exécuté tous les jours en cron

Pour tester si cracklib considère un mot de passe comme faible, utilisez crack_testlib :
$ echo "azerty" | crack_testlib
> enter potential passwords, one per line...
> azerty: ok

Bon ça commence mal, la base est un peu légère. Donc commençons par un petit dictionnaire. Téléchargez http://prdownloads.sourceforge.net/cracklib/cracklib-words.gz et décompressez.

Sous debian, modifiez /etc/cracklib/cracklib.conf et ajoutez votre fichier dans cracklib_dictpath_src. Enfin tapez :
$ update-cracklib

Si vous n'êtes pas sous debian, vous n'avez probablement pas update-cracklib, dans ce cas si c'est un fichier préparé (comme ici) :
$ crack_packer /var/cache/cracklib/cracklib_dict < votrefichier
Sinon
$ crack_mkdict votrefichier | crack_packer /var/cache/cracklib/cracklib_dict

Et on recommence
$ echo "azerty" | crack_testlib
> enter potential passwords, one per line...
> azerty: it is based on a dictionary word

C'est mieux !
Maintenant vous trouverez bien d'autres fichiers de mot de passe sur le web. Par exemple http://lastbit.com/dict.asp ou http://www.cotse.com/tools/wordlists.htm à vous de voir.



PAM
Utilisée conjointement avec passwd cracklib permet d'empêcher les utilisateurs de changer leur mot de passe pour toto. Comment faire ?

$ apt-get install libpam-cracklib
# ou yum ou ...

Éditez /etc/pam.d/passwd et remplacez votre ancien :
password   required   pam_unix.so nullok obscure min=4 max=8 md5
ou équivalent, par :
password required         pam_cracklib.so retry=3 minlen=6 difok=3
password required         pam_unix.so use_authtok nullok md5

Les paramètres sont :
retry : nombre d'essais autorisés
minlen : taille minimale du mot de passe
difok : nombre de caractères minimal qui doivent différer entre 2 mots de passe

Et voila ! Maintenant changez votre mot de passe pour azerty pour voir. Attention, root a seulement droit à un warning, rien ne lui est interdit :-)

Oui, mais vous débarquez trop tard et tout le monde a déjà un mot de passe disponible au marché aux puces. Qu'à cela ne tienne, vous allez les forcer à changer. Il suffit de faire expirer leur mot de passe. Et au prochain login, le changement se fera.
Pour cela, rien de plus simple :
$ passwd -e user

A vous de jouer !


Mais encore
Notez que cracklib ne sert pas qu'au système. Elle peut être utilisée partout où on peut trouver des mots de passe.

Par exemple pour vos sites en PHP, utilisez simplement http://fr3.php.net/crack

Pour vos application en C -> lisez /usr/share/doc/cracklib2/README.gz

En perl http://search.cpan.org/~daniel/Crypt-Cracklib-1.1/Cracklib.pm

En shell crack_testlib

...

Publié dans admin

Pour être informé des derniers articles, inscrivez vous :

Commenter cet article