Comment appliquer une politique de complexité des mots de passe?


14

J'ai besoin de configurer un serveur Ubuntu pour suivre une politique stricte de mot de passe d'entreprise qui spécifie ce qui suit:

  • au moins un majuscule
  • au moins une minuscule
  • au moins un chiffre
  • au moins un caractère spécial

J'ai jeté un coup d'œil et je n'ai trouvé que les instructions pour spécifier la longueur du mot de passe; mais, je n'ai pas encore trouvé quelque chose qui se rapporte à la spécification du contenu du mot de passe concernant les points ci-dessus.

Toute aide serait appréciée.

Réponses:


19

La complexité du mot de passe est appliquée par le pam_cracklibmodule.

Afin de modifier la politique de mot de passe de votre ordinateur local, vous devrez modifier votre /etc/pam.d/common-passwordfichier.

Dans une fenêtre de terminal ( Ctrl+ Alt+ T), entrez la commande suivante:

sudo -i gedit /etc/pam.d/common-password

Ajoutez la ligne suivante au fichier (avant pam_unix.soou selon le module PAM utilisé principalement pour l'authentification, comme le montrent les exemples de la page de manuel) et enregistrez le fichier:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Cette instruction implémente les exigences de mot de passe suivantes:

  • dcredit == chiffre
  • ucredit == caractère majuscule
  • lcredit == minuscule
  • ocredit== autre caractère (caractères spéciaux, y compris ! , @ # $ %)

Cela devrait répondre à vos besoins.

Vous pouvez également utiliser les variables minlengthet retriesrestreindre davantage les exigences de mot de passe.

Voici un autre bon exemple de modification d'une politique de mot de passe de cette manière qui serait de placer la ligne suivante dans le /etc/pam.d/common-passwordfichier:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Cette entrée définira un maximum de trois tentatives pour obtenir un mot de passe acceptable avec une longueur minimale de 10 caractères.

Cela définit l'obligation pour les utilisateurs d'avoir un minimum de trois caractères différents du dernier mot de passe.

Cela répondra également à l'exigence selon laquelle le mot de passe doit contenir au moins un chiffre, un caractère en minuscule et un en majuscule.

Voir également cet article sur la configuration de règles de stratégie de mot de passe plus strictes sous Linux .


3
Excellente réponse! J'ajouterais, en ce qui concerne les nouvelles tentatives, qu'il est important d'être prudent lorsque vous envisagez une stratégie pour empêcher les utilisateurs de se connecter qui ont trop de tentatives de connexion échouées récemment. Cela peut conduire à la viabilité de l'une des attaques de déni de service les plus simples et les plus faciles à exécuter sur un compte (essayez de ne pas vous connecter X fois jusqu'à ce que le compte soit «verrouillé» et que l'utilisateur légitime ne puisse pas entrer) .
Eliah Kagan

Une réponse fantastique, merci :) Une question cependant, il semble que l' rootutilisateur soit capable d'ignorer les exigences de mot de passe ... Est-il possible d'imposer cela pour l'utilisateur root aussi?
Stephen RC

@Valorin Quelle partie des exigences de mot de passe l'utilisateur root ne respecte-t-il pas?
Kevin Bowen

@maggotbrain Tout cela, il lance un avertissement mais l'enregistre toujours, c'était le mot de passe 'snare': paste.ubuntu.com/1543154
Stephen RC

@Valorin Donc, vous avez activé le compte appelé "root" et pouvez utiliser ce compte avec ce mot de passe, n'est-ce pas? Quels avertissements recevez-vous? Malheureusement, je n'ai pas de machine avec un compte root activé pour le tester moi-même. Cela ressemble à un bug, mais a besoin de plus d'informations.
Kevin Bowen

0

Il y a une fourchette de pam_cracklib par Tomas Mraz: pam_pwquality avec des options légèrement meilleures.

Ajoutez-le avec apt install libpam-pwquality ou passwd se plaindra:

Le module est inconnu

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.