Création d'une politique de mot de passe sous Linux

Bonjour à nouveau! Les cours du nouveau groupe de cours commencent demain "Administrateur Linux", à cet égard, nous publions un article utile sur le sujet.

Création d'une politique de mot de passe sous Linux

Dans le tutoriel précédent, nous vous avons expliqué comment utiliser pam_cracklibrendre les mots de passe sur les systèmes plus complexes Red Hat 6 ou CentOS. Dans Red Hat 7 pam_pwquality remplacé cracklib comme pam module par défaut pour vérifier les mots de passe. Module pam_pwquality également pris en charge sur Ubuntu et CentOS, ainsi que sur de nombreux autres systèmes d'exploitation. Ce module facilite la création de politiques de mot de passe pour garantir que les utilisateurs acceptent vos normes de sécurité des mots de passe.

Pendant longtemps, l’approche courante en matière de mots de passe consistait à forcer l’utilisateur à utiliser des majuscules, des minuscules, des chiffres ou d’autres symboles. Ces règles de base concernant la complexité des mots de passe ont été largement promues au cours des dix dernières années. Il y a eu de nombreuses discussions pour savoir si c'était une bonne pratique ou non. Le principal argument contre la mise en place de conditions aussi complexes était que les utilisateurs écrivent leurs mots de passe sur des morceaux de papier et les stockent de manière non sécurisée.

Une autre politique récemment remise en question oblige les utilisateurs à changer leur mot de passe tous les x jours. Certaines études ont montré que cela nuisait également à la sécurité.

De nombreux articles ont été écrits sur le sujet de ces discussions, qui étayent tel ou tel point de vue. Mais ce n’est pas ce dont nous parlerons dans cet article. Cet article explique comment définir correctement la complexité du mot de passe plutôt que de gérer la politique de sécurité.

Paramètres de stratégie de mot de passe

Ci-dessous, vous verrez les options de politique de mot de passe et une brève description de chacune. Beaucoup d'entre eux sont similaires aux paramètres du module cracklib. Cette approche facilite le portage de vos politiques depuis le système existant.

  • difok – Le nombre de caractères de votre nouveau mot de passe qui ne doivent PAS être présents dans votre ancien mot de passe. (Par défaut 5)
  • Minlen – Longueur minimale du mot de passe. (Par défaut 9)
  • ucrédit – Le nombre maximum de crédits pour l'utilisation des caractères majuscules (si paramètre > 0), ou le nombre minimum requis de caractères majuscules (si paramètre < 0). La valeur par défaut est 1.
  • lcrédit — Le nombre maximum de crédits pour l'utilisation de caractères minuscules (si paramètre > 0), ou le nombre minimum requis de caractères minuscules (si paramètre < 0). La valeur par défaut est 1.
  • décréditer — Le nombre maximum de crédits pour l'utilisation de chiffres (si paramètre > 0), ou le nombre minimum de chiffres requis (si paramètre < 0). La valeur par défaut est 1.
  • ocrédit — Le nombre maximum de crédits pour l'utilisation d'autres symboles (si paramètre > 0), ou le nombre minimum requis d'autres symboles (si paramètre < 0). La valeur par défaut est 1.
  • classe min – Définit le nombre de cours requis. Les classes incluent les paramètres ci-dessus (caractères majuscules, caractères minuscules, chiffres, autres caractères). La valeur par défaut est 0.
  • répétition maximale – Le nombre maximum de fois qu'un caractère peut être répété dans un mot de passe. La valeur par défaut est 0.
  • répétition de classe maximale — Le nombre maximum de caractères consécutifs dans une classe. La valeur par défaut est 0.
  • gecoscheck – Vérifie si le mot de passe contient des mots provenant des chaînes GECOS de l'utilisateur. (Informations utilisateur, c'est-à-dire nom réel, emplacement, etc.) La valeur par défaut est 0 (désactivé).
  • chemin de dictée – Passons aux dictionnaires cracklib.
  • gros mots – Mots séparés par des espaces et interdits dans les mots de passe (Nom de l'entreprise, le mot « mot de passe », etc.).

Si le concept de prêt semble étrange, ce n’est pas grave, c’est normal. Nous en parlerons davantage dans les sections suivantes.

Configuration de la politique de mot de passe

Avant de commencer à modifier les fichiers de configuration, il est conseillé de rédiger à l'avance une politique de mot de passe de base. Par exemple, nous utiliserons les règles de difficulté suivantes :

  • Le mot de passe doit avoir une longueur minimale de 15 caractères.
  • Le même caractère ne doit pas être répété plus de deux fois dans le mot de passe.
  • Les classes de caractères peuvent être répétées jusqu'à quatre fois dans un mot de passe.
  • Le mot de passe doit contenir des caractères de chaque classe.
  • Le nouveau mot de passe doit comporter 5 nouveaux caractères par rapport à l'ancien.
  • Activez la vérification GECOS.
  • Interdire les mots « password, pass, word, putorius »

Maintenant que nous avons défini la politique, nous pouvons modifier le fichier /etc/security/pwquality.confpour augmenter les exigences en matière de complexité des mots de passe. Vous trouverez ci-dessous un exemple de fichier avec des commentaires pour une meilleure compréhension.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Comme vous l'avez peut-être remarqué, certains paramètres de notre fichier sont redondants. Par exemple, le paramètre minclass est redondant puisque nous utilisons déjà au moins deux caractères de la classe utilisant des champs [u,l,d,o]credit. Notre liste de mots inutilisables est également redondante, puisque nous avons interdit de répéter 4 fois un cours (tous les mots de notre liste sont écrits en minuscules). J'ai inclus ces options uniquement pour montrer comment les utiliser pour configurer votre politique de mot de passe.
Une fois que vous avez créé votre politique, vous pouvez forcer les utilisateurs à modifier leur mot de passe lors de leur prochaine connexion. système.

Une autre chose étrange que vous avez peut-être remarquée est que les champs [u,l,d,o]credit contenir un nombre négatif. En effet, les nombres supérieurs ou égaux à 0 donneront du crédit pour l'utilisation du caractère de votre mot de passe. Si le champ contient un nombre négatif, cela signifie qu'une certaine quantité est requise.

Que sont les prêts ?

Je les appelle prêts parce que cela traduit leur objectif aussi précisément que possible. Si la valeur du paramètre est supérieure à 0, vous ajoutez un nombre de « crédits de caractères » égal à « x » à la longueur du mot de passe. Par exemple, si tous les paramètres (u,l,d,o)credit défini sur 1 et la longueur requise du mot de passe était de 6, vous aurez alors besoin de 6 caractères pour satisfaire à l'exigence de longueur, car chaque majuscule, minuscule, chiffre ou autre caractère vous donnera un crédit.

Si vous installez dcredit à 2, vous pouvez théoriquement utiliser un mot de passe de 9 caractères et obtenir 2 crédits de caractères pour les nombres, et la longueur du mot de passe pourrait déjà être de 10.

Regardez cet exemple. J'ai défini la longueur du mot de passe sur 13, le crédit sur 2 et tout le reste sur 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Ma première vérification a échoué car le mot de passe comportait moins de 13 caractères. La fois suivante, j'ai remplacé la lettre « I » par le chiffre « 1 » et j'ai reçu deux crédits pour les chiffres, ce qui a rendu le mot de passe égal à 13.

Test de mot de passe

Forfait libpwquality fournit la fonctionnalité décrite dans l'article. Il est également livré avec un programme pwscore, conçu pour vérifier la complexité des mots de passe. Nous l'avons utilisé ci-dessus pour vérifier les prêts.
Utilitaire pwscore lit à partir de Stdin. Exécutez simplement l'utilitaire et écrivez votre mot de passe, il affichera une erreur ou une valeur de 0 à 100.

Le score de qualité du mot de passe est lié au paramètre minlen dans le fichier de configuration. En général, un score inférieur à 50 est considéré comme un « mot de passe normal », et un score supérieur est considéré comme un « mot de passe fort ». Tout mot de passe qui réussit les contrôles de qualité (en particulier la vérification forcée cracklib) doit résister aux attaques par dictionnaire, et un mot de passe avec un score supérieur à 50 avec le paramètre minlen même par défaut brute force attaques.

Conclusion

réglage pwquality – c’est facile et simple comparé à la gêne d’utilisation cracklib avec édition directe des fichiers pam. Dans ce guide, nous avons couvert tout ce dont vous aurez besoin lors de la configuration des politiques de mot de passe sur les systèmes Red Hat 7, CentOS 7 et même Ubuntu. Nous avons également parlé du concept de prêt, qui est rarement abordé en détail, ce sujet restait donc souvent flou pour ceux qui ne l'avaient jamais rencontré auparavant.

Sources:

page de manuel pwquality
page de manuel pam_pwquality
page de manuel pwscore

Liens utiles:

Choisir des mots de passe sécurisés – Bruce Schneier
Lorrie Faith Cranor parle de ses études sur les mots de passe à la CMU
Le tristement célèbre dessin animé xkcd sur Entropy

Source: habr.com

Ajouter un commentaire