Linux : Forcer le changement de mot de passe des comptes

I. Présentation

Après avoir vu l'expiration d'un compte dans un précédent tutoriel, nous allons voir comment gérer l'expiration d'un mot de passe. La différence ici est que nous allons gérer l'expiration d'un mot de passe, et son renouvellement par l'utilisateur, et non l'expiration d'un compte, qui empêche toute action/connexion de l'utilisateur.

Plus clairement, lorsqu'un mot de passe expire, l'utilisateur est forcé de le changer après une authentification correcte. Voyez plutôt :

forcer-changement-mot-de-passe-01

Nous voyons donc qu'une fois qu'un mot de passe est marqué comme "expiré", l'utilisateur peut s'authentifier une dernière fois avec mais doit, dés la phase d'authentification passée, saisir un nouveau mot de passe (différent, bien entendu).

Pour se faire, nous allons utiliser uniquement des commandes natives aux OS Unix, à savoir la commande "chage" et "passwd".

Il est à noter que le changement régulier des mots de passe des comptes utilisateurs et des comptes à privilèges fait partie des bonnes pratiques de sécurité. Pour les comptes à privilèges, un changement par semestre est un minimum.

Astuce : N'hésitez pas à utiliser les rappels agendas ainsi qu'une procédure écrite détaillant la procédure de changement de mot de passe et les changements que cela engendre. Ainsi, vous démystifiez la procédure et l'impact du changement de mot de passe et l'exécuterez plus facilement.

II. Forcer un utilisateur à changer son mot de passe

Pour forcer un utilisateur à modifier son mot de passe de compte à sa prochaine connexion sous Linux, il faut utiliser l'option "-d" de la commande "chage" qui permet de gérer les attributs de mots de passe d'un compte. Par exemple pour le compte "test01" :

chage -d0 test01

L'option "-d" permet plus précisément de passer un mot de passe en état expiré.

III. Planifier l'expiration d'un mot de passe

Afin de planifier l'expiration d'un mot de passe, c'est à dire de prévoir qu'à partir de tel jour, un utilisateur devra changer son mot de passe à sa prochaine connexion, nous utiliserons également l'option "-d" de la commande "chage" :

chage -d 2016-01-30 test01

Ainsi, le mot de passe de l’utilisateur "test01" expirera au jour du 30 janvier 2016. Comme pour l'expiration d'un compte, l'astuce suivante, qui utilise la commande "date", permet de planifier une expiration à +30 jours peu importe la date actuelle :

chage -d `date -d "30 days" +"%Y-%m-%d"` test01

Il est également possible d'effectuer cette planification une seule fois, par exemple en faisant s'expirer le mot de passe tous les 90 jours avec l'option "-M" :

chage -M 90 test01

L'option "-M" permet de gérer le nombre de jour maximum entre chaque changement de mot de passe. Nombre au delà duquel un compte sera forcé de changer son mot de passe

A noter que l'option "-m" (en minuscule) permet elle de gérer un nombre minimum de jour entre chaque changement de mot de passe.

IV. Afficher un message d'avertissement

Par défaut un message d'avertissement permet d'alerter l'utilisateur sur l'expiration prochaine de son mot de passe. Par défaut, le message d'avertissement est affiché 7 jours avant l'expiration du mot de passe. Il est toutefois possible de changer cette valeur, afin de raccourcir ou rallonger cette date d'avertissement.

Pour cela, nous utiliserons l'option "-W", par exemple si nous souhaitons afficher un message d'avertissement 15 jours avant la date d'expiration du mot de passe pour l'utilisateur "test01 :

chage -W 15 test01

V. Désactiver l'expiration du mot de passe

Si vous souhaitez faire marche arrière, la commande "chage" peut également être utilisée. Il nous suffira de réinitialiser ou désactiver les options  vues précédemment :

chage -m 0 -M 99999 -I -1 -E -1 test01

Concernant les options utilisées :

  • -I : dans le cas où le compte a une date de durée d'inactivité de paramétrée, cette valeur est désactivée par la valeur "-1"
  • -E : dans le cas où le compte est expiré, il est réactivé par la valeur "-1"
  • -m : permet de paramétrer un nombre minimum de jour requis avant le changement d'un mot de passe
  • -M : Permet de gérer le nombre de jour maximum entre chaque changement de mot de passe. Nombre au delà duquel un compte sera forcé de changer son mot de passe

En réinitialisant ces paramètres ou en les désactivant, comme l'est leur état d'origine, nous allons désactiver l'expiration d'un mot de passe. Celui-ci pourra alors être utilisé sans obligation de modification de mot de passe 🙂

IV. Visualiser les attributs de mot de passe d'un compte

Jusqu'ici, nous avons vu comment modifier les paramètres "avancés" d'un compte afin de gérer son mot de passe et plus précisément son expiration. Nous allons voir comment visualiser les attributs modifiés, plus précisément avec la commande suivante :

chage --list test01

Voici un sortie possible :

forcer-changement-mot-de-passe-02

C'est tout pour ce tutoriel, il est à mon sens intéressant de mettre en application cette bonne pratique de sécurité, et pas seulement pour les environnements Windows où elle s'est déjà démocratisée. N'hésitez pas à partager vos astuces et avis dans les commentaires

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 526.Voir tous les posts

One thought on “Linux : Forcer le changement de mot de passe des comptes

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.