Bonjour à tous, après mes derniers postes qui étaient consacrés à la configuration d’équipement réseau, me revoici sur Linux. Cette fois-ci nous allons mettre en oeuvre une politique de gestion des mots de passe avec les utilitaires suivants : libpam-pwquality

Même si Linux est sécurisé par conception, il y a de nombreuses chances de violation de sécurité notamment en ce qui concerne les mots de passe faibles. En tant qu’administrateur système, vous devez fournir des règles pour que les utilisateurs de votre parc informatique élaborent des mots de passe fort.

Parce que, la plupart du temps, des violations du système se produisent en raison de mots de passe faibles. Ce didacticiel décrit comment définir des politiques de mot de passe tels que la longueur, la complexité ainsi que la période d’expiration du mot de passe.

Pour ce tutoriel, j’utilise Debian 10.X

Pour définir la longueur minimale du mot de passe, modifier le fichier suivant :

sudo nano /etc/pam.d/common-password
# Trouvez la ligne suivante  : 
password [success=2 default=ignore] pam_unix.so obscure sha512


Ajouter l’instruction suivante à la fin de la ligne : minlen=8. Ici, je fixe la longueur minimale du mot de passe à 8 caractères.

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

Paramétrage de la complexité


Grâce au paquet « universel » libpam-pwquality , nous allons pouvoir gérer la complexité du mot de passe. C’est-à-dire majuscules, minuscules, caractères spéciaux etc. qui doivent être dans un mot de passe.

sudo apt-get install libpam-pwquality
# Éditons de nouveau le fichier suivant, et localisons la ligne "password requisite":
sudo nano /etc/pam.d/common-password


Pour définir au moins deux majuscules dans le mot de passe. (Si vous souhaitez plus d’une majuscule dans le mot de passe, libre à vous de changer le chiffre 2 en un chiffre/nombre supérieur…)

password    requisite             pam_pwquality.so retry=3 ucredit=-2


Définissez au moins une lettre minuscule :

password    requisite             pam_pwquality.so retry=3 dcredit=-1


Définissez au moins un caractère spécial :

password    requisite             pam_pwquality.so retry=3 ocredit=-1

Pour que les trois conditions ci-dessus, soit appliqués, il vous faudrait inscrire les conditions les unes à la suite des autres sur une seule et même ligne .

Voici un récapitulatif des modifications que nous avons effectués dans le fichier /etc/pam.d/common-password :

Vérifions que les conditions ont bien été prises en compte : choisissez un utilisateur, et essayez de ne pas respecter les conditions que vous avez inscrit en amont dans le fichier de configuration /etc/pam.d/common-password

Et voilà ! Nous avons défini au moins (au minimum) deux majuscules, une minuscule et un caractère spécial pour le Mdp, avec une taille supérieure ou égale à 8. D’autres paramètres de complexité peuvent être réglés.

Attention : Quand nous agissons en root, le PAM se contente de nous avertir lors du non-respect de la politique de sécurité. Nous pourrons tout de même forcer un mot de passe « faible » qui ne respecte pas notre politique des mots de passe car nous sommes root. Si un utilisateur standard souhaite changer son mot de passe, il sera bloqué quoi qu’il arrive si son mot de passe ne respecte pas la politique des mots de passe.

Expiration du mot de passe

Afin de ne pas utiliser le même mot de passe pendant x année, beaucoup d’entité impose un renouvellement de mot de passe au bout d’un certain nombre de jours. (par défaut : 99999 jours soient environ 273 ans 🙂

Ce nombre étant bien trop grand, nous pouvons bien entendue le modifier. Éditons le fichier suivant :

sudo nano /etc/login.defs
PASS_MAX_DAYS 100 
# 100 jours avant que le système vous ordonne de changer de mdp
PASS_MIN_DAYS 0 
# le nombre de jour minimal avant de rechanger de mot de passe (0 étant la valeur par défaut) 
PASS_WARN_AGE 7 
# le message d'avertissement apparaîtra 7 jours avant l'expiration du mot de passe à la connexion de l'utilisateur. 

N’oubliez pas que ces paramètres auront un impact uniquement sur les utilisateurs nouvellement créés.

Fin –

À Bientôt 🙂

Brlndtech


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"