Comment forcer les utilisateurs à changer leurs mots de passe sous Linux

Les mots de passe sont la clé de voûte de la sécurité des comptes. Nous vous montrerons comment réinitialiser les mots de passe, définir les périodes d’expiration des mots de passe et appliquer les changements de mot de passe sur votre réseau Linux.

Le mot de passe existe depuis près de 60 ans

Nous prouvons aux ordinateurs que nous sommes ce que nous prétendons être depuis le milieu des années 60, lorsque le mot de passe a été introduit pour la première fois. La nécessité étant la mère de l’invention, la Système de partage de temps compatible développé à la Massachusetts Institute of Technology avait besoin d’un moyen d’identifier différentes personnes sur le système. Il fallait également empêcher les gens de voir les fichiers des autres.

Fernando J. Corbató a proposé un schéma qui attribue un nom d’utilisateur unique à chaque personne. Pour prouver que quelqu’un était bien ce qu’il prétendait être, il a dû utiliser un mot de passe privé et personnel pour accéder à son compte.

Le problème avec les mots de passe est qu’ils fonctionnent comme une clé. Quiconque possède une clé peut l’utiliser. Si quelqu’un trouve, devine ou calcule votre mot de passe, cette personne peut accéder à votre compte. Jusqu’à authentification multifacteur est universellement disponible, le mot de passe est la seule chose qui empêche les personnes non autorisées (acteurs de la menace, dans la cybersécurité-parler) de votre système.

Les connexions à distance effectuées par un Secure Shell (SSH) peuvent être configurées pour utiliser des clés SSH au lieu de mots de passe, et c’est génial. Cependant, il ne s’agit que d’une seule méthode de connexion et ne couvre pas les connexions locales.

De toute évidence, la gestion des mots de passe est vitale, tout comme la gestion des personnes qui utilisent ces mots de passe.

L’anatomie d’un mot de passe

Qu’est-ce qui rend un mot de passe bon, de toute façon? Eh bien, un bon mot de passe doit avoir tous les attributs suivants:

Il est impossible de deviner ou de comprendre.
Vous ne l’avez utilisé nulle part ailleurs.
Il n’a pas été impliqué dans un violation de données.

le Ai-je été pwned (HIBP) contient plus de 10 milliards d’ensembles d’identifiants violés. Avec des chiffres aussi élevés, il y a de fortes chances que quelqu’un d’autre ait utilisé le même mot de passe que vous. Cela signifie que votre mot de passe peut être dans la base de données, même si ce n’est pas votre compte qui a été violé.

Si votre mot de passe se trouve sur le site Web de HIBP, cela signifie qu’il figure sur les listes d’acteurs de menaces de mots de passe. attaque par force brute et par dictionnaire outils utilisés lorsqu’ils essaient de pirater un compte.

Un mot de passe vraiment aléatoire (comme 4HW @ HpJDBr% * Wt @ # b ~ aP) est pratiquement invulnérable, mais, bien sûr, vous ne vous en souviendrez jamais. Nous vous recommandons vivement d’utiliser un gestionnaire de mots de passe pour les comptes en ligne. Ils génèrent des mots de passe complexes et aléatoires pour tous vos comptes en ligne, et vous n’avez pas à vous en souvenir – le gestionnaire de mots de passe fournit le mot de passe qui vous convient.

  Comment changer la lettre de lecteur sous Windows 10

Pour les comptes locaux, chaque personne doit générer son propre mot de passe. Ils devront également savoir ce qu’est un mot de passe acceptable et ce qui ne l’est pas. Il faudra leur dire de ne pas réutiliser les mots de passe sur d’autres comptes, et ainsi de suite.

Ces informations se trouvent généralement dans la politique de mot de passe d’une organisation. Il demande aux gens d’utiliser un nombre minimum de caractères, de mélanger des lettres majuscules et minuscules, d’inclure des symboles et des signes de ponctuation, etc.

Cependant, selon un tout nouveau paper d’une équipe à L’université de Carnegie Mellon, toutes ces astuces ajoutent peu ou rien à la robustesse d’un mot de passe. Les chercheurs ont constaté que les deux facteurs clés de la robustesse des mots de passe sont qu’ils ont au moins 12 caractères de long et suffisamment forts. Ils ont mesuré la force du mot de passe à l’aide d’un certain nombre de logiciels de piratage, de techniques statistiques et de réseaux de neurones.

Un minimum de 12 caractères peut sembler intimidant au début. Cependant, ne pensez pas en termes de mot de passe, mais plutôt en termes de phrase de passe de trois ou quatre mots indépendants séparés par des signes de ponctuation.

Par exemple, le Vérificateur de mot de passe Experte a déclaré qu’il faudrait 42 minutes pour casser «chicago99», mais 400 milliards d’années pour casser «chimney.purple.bag». Il est également facile à retenir et à taper et ne contient que 18 caractères.

Vérification des paramètres actuels

Avant de modifier quoi que ce soit à voir avec le mot de passe d’une personne, il est prudent de consulter ses paramètres actuels. Avec la commande passwd, vous pouvez revoir leurs paramètres actuels avec son option -S (status). Notez que vous devrez également utiliser sudo avec passwd si vous travaillez avec les paramètres de mot de passe de quelqu’un d’autre.

Nous tapons ce qui suit:

sudo passwd -S mary

sudo passwd -S mary dans une fenêtre de terminal.

Une seule ligne d’informations est imprimée dans la fenêtre du terminal, comme illustré ci-dessous.

Sortie de sudo passwd -S mary dans une fenêtre de terminal.

Vous voyez les informations suivantes (de gauche à droite) dans cette réponse brève:

Le nom de connexion de la personne.
L’un des trois indicateurs possibles suivants apparaît ici:
P: indique que le compte dispose d’un mot de passe valide et fonctionnel.
L: signifie que le compte a été verrouillé par le propriétaire du compte root.
NP: Un mot de passe n’a pas été défini.

Date de la dernière modification du mot de passe.
Âge minimum du mot de passe: la période minimale (en jours) qui doit s’écouler entre les réinitialisations de mot de passe effectuées par le propriétaire du compte. Cependant, le propriétaire du compte root peut toujours changer le mot de passe de n’importe qui. Si cette valeur est 0 (zéro), il n’y a pas de restriction sur la fréquence des changements de mot de passe.
Âge maximum du mot de passe: le propriétaire du compte est invité à modifier son mot de passe lorsqu’il atteint cet âge. Cette valeur est donnée en jours, donc une valeur de 99 999 signifie que le mot de passe n’expire jamais.
Période d’avertissement de changement de mot de passe: si un âge maximum de mot de passe est appliqué, le propriétaire du compte recevra des rappels pour changer son mot de passe. Le premier d’entre eux sera envoyé le nombre de jours indiqué ici avant la date de réinitialisation.
Période d’inactivité du mot de passe: si quelqu’un n’accède pas au système pendant une période qui chevauche la date limite de réinitialisation du mot de passe, le mot de passe de cette personne ne sera pas modifié. Cette valeur indique le nombre de jours de la période de grâce après une date d’expiration de mot de passe. Si le compte reste inactif ce nombre de jours après l’expiration d’un mot de passe, le compte est verrouillé. Une valeur de -1 désactive la période de grâce.

  Comment basculer Outlook entre le mode tactile et le mode souris

Définition de l’âge maximum du mot de passe

Pour définir une période de réinitialisation du mot de passe, vous pouvez utiliser l’option -x (jours maximum) avec un nombre de jours. Vous ne laissez pas d’espace entre -x et les chiffres, vous devez donc le taper comme suit:

sudo passwd -x45 mary

sudo passwd -x45 mary dans une fenêtre de terminal.

On nous dit que la valeur d’expiration a été modifiée, comme indiqué ci-dessous.

Notification du changement d'expiration du mot de passe dans une fenêtre de terminal.

Utilisez l’option -S (status) pour vérifier que la valeur est maintenant 45:

sudo passwd -S mary

sudo passwd -S mary dans une fenêtre de terminal.

Désormais, dans 45 jours, un nouveau mot de passe doit être défini pour ce compte. Les rappels commenceront sept jours avant cela. Si un nouveau mot de passe n’est pas défini à temps, ce compte sera verrouillé immédiatement.

Application d’un changement de mot de passe immédiat

Vous pouvez également utiliser une commande afin que les autres utilisateurs de votre réseau devront changer leur mot de passe la prochaine fois qu’ils se connecteront. Pour ce faire, vous utiliserez l’option -e (expire), comme suit:

sudo passwd -e mary

sudo passwd -e mary dans une fenêtre de terminal.

On nous dit alors que les informations d’expiration du mot de passe ont changé.

Sortie de sudo passwd -e mary dans une fenêtre de terminal.

Vérifions avec l’option -S et voyons ce qui s’est passé:

sudo passwd -S mary

sudo passwd -S mary dans une fenêtre de terminal.

La date du dernier changement de mot de passe est fixée au premier jour de 1970. La prochaine fois que cette personne essaiera de se connecter, elle devra changer son mot de passe. Ils doivent également fournir leur mot de passe actuel avant de pouvoir en saisir un nouveau.

L'écran de réinitialisation du mot de passe.

Devez-vous appliquer les changements de mot de passe?

Forcer les gens à changer régulièrement de mot de passe relevait du bon sens. Il s’agissait de l’une des étapes de sécurité de routine pour la plupart des installations et considéré comme une bonne pratique commerciale.

La pensée est maintenant l’opposé polaire. Au Royaume-Uni, le Centre national de cybersécurité conseille fortement contre le renouvellement régulier des mots de passe, et le Institut national des normes et de la technologie aux États-Unis est d’accord. Les deux organisations recommandent d’appliquer un changement de mot de passe uniquement si vous savez ou soupçonnez qu’un connu des autres.

Forcer les gens à changer leurs mots de passe devient monotone et encourage les mots de passe faibles. Les gens commencent généralement à réutiliser un mot de passe de base avec une date ou un autre numéro marqué dessus. Ou, ils les écriront parce qu’ils doivent les changer si souvent qu’ils ne s’en souviennent pas.

Les deux organisations que nous avons mentionnées ci-dessus recommandent les directives suivantes pour la sécurité des mots de passe:

Utilisez un gestionnaire de mots de passe: pour les comptes en ligne et locaux.
Activez l’authentification à deux facteurs: partout où il s’agit d’une option, utilisez-la.
Utilisez une phrase de passe forte: une excellente alternative pour les comptes qui ne fonctionneront pas avec un gestionnaire de mots de passe. Trois mots ou plus séparés par des signes de ponctuation ou des symboles sont un bon modèle à suivre.
Ne jamais réutiliser un mot de passe: évitez d’utiliser le même mot de passe que celui que vous utilisez pour un autre compte et n’utilisez certainement pas celui répertorié sur Ai-je été pwned.

Les conseils ci-dessus vous permettront de mettre en place un moyen sécurisé d’accéder à vos comptes. Une fois que vous avez ces directives en place, respectez-les. Pourquoi changer votre mot de passe s’il est fort et sécurisé? S’il tombe entre de mauvaises mains – ou si vous pensez que c’est le cas – vous pouvez alors le changer.

  Comment transcrire l'audio dans Microsoft Word

Parfois, cette décision n’est pas entre vos mains. Si les pouvoirs qui appliquent le mot de passe changent, vous n’avez pas beaucoup de choix. Vous pouvez plaider votre cause et faire connaître votre position, mais à moins que vous ne soyez le patron, vous devrez suivre la politique de l’entreprise.

La commande chage

Vous pouvez utiliser la commande chage pour modifier les paramètres concernant le vieillissement du mot de passe. Cette commande tire son nom de «modifier le vieillissement». C’est comme la commande passwd avec les éléments de création de mot de passe supprimés.

L’option -l (liste) présente les mêmes informations que la commande passwd -S, mais d’une manière plus conviviale.

Nous tapons ce qui suit:

sudo chage -l eric

sudo chage -l eric dans une fenêtre de terminal.

Une autre touche intéressante est que vous pouvez définir une date d’expiration de compte à l’aide de l’option -E (expiration). Nous adopterons une date (au format année-mois-date) pour fixer une date d’expiration au 30 novembre 2020. À cette date, le compte sera verrouillé.

Nous tapons ce qui suit:

sudo chage eric -E 2020-11-30

sudo chage eric -E 2020-11-30 dans une fenêtre de terminal.

Ensuite, nous tapons ce qui suit pour nous assurer que cette modification a été effectuée:

sudo chage -l eric

sudo change -l eric dans une fenêtre de terminal.

Nous constatons que la date d’expiration du compte est passée de «jamais» au 30 novembre 2020.

Pour définir une période d’expiration du mot de passe, vous pouvez utiliser l’option -M (jours maximum), ainsi que le nombre maximum de jours pendant lesquels un mot de passe peut être utilisé avant de devoir être modifié.

Nous tapons ce qui suit:

sudo chage -M 45 mary

sudo change -M 45 mary dans une fenêtre de terminal.

Nous tapons ce qui suit, en utilisant l’option -l (list), pour voir l’effet de notre commande:

sudo chage -l mary

sudo change -l mary dans une fenêtre de terminal.

La date d’expiration du mot de passe est désormais fixée à 45 jours à compter de la date à laquelle nous l’avons définie, qui, comme nous l’avons indiqué, sera le 8 décembre 2020.

Modification du mot de passe pour tout le monde sur un réseau

Lors de la création de comptes, un ensemble de valeurs par défaut est utilisé pour les mots de passe. Vous pouvez définir les valeurs par défaut pour les jours minimum, maximum et d’avertissement. Ceux-ci sont ensuite conservés dans un fichier appelé «/etc/login.defs».

Vous pouvez taper ce qui suit pour ouvrir ce fichier dans gedit:

sudo gedit /etc/login.defs

 dans une fenêtre de terminal dans une fenêtre de terminal

Faites défiler jusqu’aux commandes de vieillissement du mot de passe.

Les contrôles de vieillissement du mot de passe dans l'éditeur gedit.

Vous pouvez les modifier selon vos besoins, enregistrer vos modifications, puis fermer l’éditeur. La prochaine fois que vous créerez un compte utilisateur, ces valeurs par défaut seront appliquées.

Si vous souhaitez modifier toutes les dates d’expiration des mots de passe pour les comptes d’utilisateurs existants, vous pouvez facilement le faire avec un script. Tapez simplement ce qui suit pour ouvrir l’éditeur gedit et créer un fichier appelé «password-date.sh»:

sudo gedit password-date.sh

sudo gedit password-date.sh dans une fenêtre de terminal.

Ensuite, copiez le texte suivant dans votre éditeur, enregistrez le fichier, puis fermez gedit:

#!/bin/bash

reset_days=28

for username in $(ls /home)
do
  sudo chage $username -M $reset_days
  echo $username password expiry changed to $reset_days
done

Cela changera le nombre maximum de jours pour chaque compte d’utilisateur à 28, et par conséquent, la fréquence de réinitialisation du mot de passe. Vous pouvez ajuster la valeur de la variable reset_days en conséquence.

Tout d’abord, nous tapons ce qui suit pour rendre notre script exécutable:

chmod +x password-date.sh

chmod + x password-date.sh dans une fenêtre de terminal.

Maintenant, nous pouvons taper ce qui suit pour exécuter notre script:

sudo ./password-date.sh

sudo ./password-date.sh dans une fenêtre de terminal.

Chaque compte est ensuite traité, comme indiqué ci-dessous.

Quatre comptes d'utilisateurs avec des valeurs d'expiration de mot de passe changées en 28 dans une fenêtre de terminal.

Nous tapons ce qui suit pour vérifier le compte de «mary»:

sudo change -l mary

sudo chage -l mary dans une fenêtre de terminal.

La valeur maximale des jours a été fixée à 28, et on nous dit qu’elle tombera le 21 novembre 2020. Vous pouvez également facilement modifier le script et ajouter plus de commandes chage ou passwd.

La gestion des mots de passe est quelque chose qui doit être pris au sérieux. Désormais, vous disposez des outils dont vous avez besoin pour prendre le contrôle.