Comment définissez-vous les exigences (telles que la longueur minimale) sur les mots de passe?

18

Existe-t-il un moyen de définir des exigences de mot de passe minimales, telles qu'une longueur minimale, des alphanumériques à casse mixte et au moins 1 symbole dans le code, et de les appliquer lors des modifications du code?

Thomas Ward
la source

Réponses:

21

La complexité des mots de passe dans Ubuntu est contrôlée par PAM. Malheureusement, PAM est "typiquement Unix" comme dans son approche. Cela signifie qu'il répartit sa configuration à travers un grand nombre de fichiers très déroutants.

Le fichier qui contrôle la complexité des mots de passe est:

/etc/pam.d/common-password

Il y a une ligne:

password [success=1 default=ignore] pam_unix.so obscure sha512

Ce qui définit les règles de base pour la complexité des mots de passe. Vous pouvez ajouter un remplacement de longueur minimale en le modifiant comme suit:

password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12

ou tout ce que vous voulez. Comme vous pouvez le voir, la valeur par défaut définit déjà quelques règles d'obscurité de base. Ces règles de base peuvent être vues dans:

man pam_unix

Recherchez "obscur".

Il existe un grand nombre de modules pam qui peuvent être installés.

apt-cache search libpam-

Devrait vous les montrer.

Vous aurez besoin de traquer la documentation pour eux, je le crains. Mais le "cracklib" est un ajout courant.

MISE À JOUR: J'aurais dû souligner que le paramètre par défaut "obscur" inclut des tests de complexité basés sur les mots de passe précédents et la simplicité (longueur, nombre de différents types de caractères). L'exemple de la page de manuel montre cracklib en action. Installez libpam_cracklib pour que cela fonctionne.

De plus, une fois que vous avez déterminé quoi changer, les modifications sont les mêmes dans les autres fichiers afin que vous puissiez appliquer les mêmes (ou différents) vérifications de mot de passe pour SSH et d'autres applications.

Julian Knight
la source
Selon man pam_unix, la longueur minimale du mot de passe par défaut est de 6 caractères si vous effectuez une recherche minlen.
Timo
cela ne fonctionne pas pour ubuntu 18.04 - même avec ce paramètre, je peux mettre n'importe quel mot de passe que je veux (court, palindrome, ..) - J'ai juste besoin de répéter ce mot de passe 4x :(
xhudik
Lorsque vous dites «ne fonctionne pas», ce que vous voulez dire n'est pas clair. Voulez - vous dire qu'il ne travail , mais que la répétition du mot de passe court 4 fois est une sorte de « by - pass » - le cas échéant, avec respect, vous avez tort, qui est encore un mot de passe fort. Sinon, pourriez-vous préciser?
Julian Knight
1

Les valeurs de mot de passe sont contrôlées dans le fichier

/etc/pam.d/common-password

Pour plus d'informations sur la modification du fichier, voir la page de manuel de pam_unix

Mitch
la source
1
Vous avez listé pam_unix (5), la page correcte est pam_unix (8) linux.die.net/man/8/pam_unix . En fait, les versions en ligne de la page de manuel, pour une raison quelconque, ne semblent pas énumérer la section importante sur le paramètre "obscur" - celle que j'ai incluse dans ma réponse. Si vous faites cela man pam_unix, vous pourrez le voir.
Julian Knight
1
@JulianKnight Merci pour le commentaire. J'ai corrigé le lien :)
Mitch
1

Les modules PAM préinstallés vous permettent de définir les exigences de base en fonction de la complexité. Il y a un joli module qui est un successeur du module pam_cracklib - pam_pwquality. Pour l'installer, tapez ce qui suit

apt-get install libpam-pwquality

alors familiarisez-vous avec celui-ci

man pam_pwquality

surtout avec la section "Options".

Vous pouvez maintenant modifier le mot de passe commun dans /etc/pam.d/

vi /etc/pam.d/common-password

recherchez la ligne qui contient l'instruction "mot de passe requis pam_pwquality.so" suivante et après pam_pwquality.so attachez vos options comme ceci

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

qui signifie "la taille minimale du mot de passe est de 16 caractères, dont au moins 4 en majuscules. Invite l'utilisateur à saisir son mot de passe 3 fois.

pam_pwquality vous permet de faire des exigences de mot de passe beaucoup plus complexes en combinaison avec d'autres modules comme pam_pwhistory. Bonne chance

Piotr Kowalczyk
la source