Comment pouvons-nous ajouter des mots supplémentaires à la liste des mots vérifiés par le dictionnaire de mots de passe de pam_cracklib dans Red Hat Enterprise Linux 6 ?
Qu'est-ce que PAM cracklib
Red Hat Enterprise Linux peut être configuré pour vérifier que les mots de passe ne peuvent pas être devinés facilement. Sur Red Hat Enterprise Linux, cette vérification est effectuée par le module d'authentification enfichable (PAM) /lib/security/pam_cracklib.so . Il vérifie que les mots de passe ont une longueur minimale et vérifie qu'un mot de passe n'apparaît pas dans un dictionnaire.
Le dictionnaire utilisé par ce module se trouve dans /usr/lib/ et est au format cracklib. Par défaut, chacun des fichiers de dictionnaire est préfixé par le nom de fichier cracklib_dict .
Ce module a un certain nombre de paramètres, certains des plus utiles sont ci-dessous :
Paramètre | Description |
---|---|
minlen | Spécifie la longueur minimale autorisée pour un compte |
difok | Spécifie le nombre minimum de caractères qui doivent différer du mot de passe précédent |
Un exemple d'implémentation de ceci serait d'ajouter la ligne suivante au fichier /etc/pam.d/system-auth :
password required /lib/security/pam_cracklib.so retry=3 type= minlen=8 difok=3Remarque :L'argument type=n'a pas besoin de valeur sauf si vous souhaitez définir ce paramètre. Le définir modifiera le message imprimé en tant qu'invite à l'utilisateur.
Des informations supplémentaires sur le module pam_cracklib sont disponibles dans la documentation du système à :/usr/share/doc/pam-
Ajout de nouveaux mots au dictionnaire cracklib
Suivez les étapes ci-dessous pour ajouter des mots au dictionnaire que cracklib utilise pour valider les mots de passe par rapport aux mots connus du dictionnaire.
1. Assurez-vous que les rpm ci-dessous sont installés sur votre serveur CentOS/RHEL/Fedora :
pam-1.1.1-22.0.1.el6.x86_64 cracklib-2.8.16-4.el6.x86_64 cracklib-dicts-2.8.16-4.el6.x86_64 words-3.0-17.el6.noarch
Notez que la version de rpms changera en fonction de la version du système d'exploitation.
2. Vérifiez si le nouveau mot à ajouter au dictionnaire existe déjà dans le dictionnaire ou non.
# echo "pwd1234@" | cracklib-check pwd1234@: OK
Le "OK" dans la sortie indique que le nouveau mot n'est pas déjà inclus dans le dictionnaire.
3. Modifiez /usr/share/dict/linux.words et ajoutez "pwd1234@" à la fin.
# vi /usr/share/dict/linux.words pwd1234@
3. Vérifiez le fichier dans lequel l'entrée a été ajoutée.
# tail /usr/share/dict/linux.words Zyzomys Zyzzogeton zyzzyva zyzzyvas ZZ Zz zZt ZZZ pwd1234@
4. Mettez à jour le dictionnaire cracklib avec la commande ci-dessous :
# create-cracklib-dict /usr/share/dict/linux.words
5. Maintenant, vérifiez à nouveau si la même chose a été ajoutée au dictionnaire ou non ?
# echo "pwd1234@" | cracklib-check pwd1234@: it is based on a dictionary word
Le nouveau mot est déjà dans le dictionnaire comme le montre la sortie ci-dessus.
6. Maintenant, essayez également le même mot de passe de l'utilisateur
$ passwd Changing password for user test. Changing password for test. (current) UNIX password: New password: >>>>>>>>>>>>> Input pwd1234@ BAD PASSWORD: it is based on a dictionary word
Comme vous pouvez le voir dans la sortie ci-dessus, le nouveau mot ajouté au dictionnaire ne peut plus être utilisé comme mot de passe maintenant.