Introduction
Le maintien de politiques de mots de passe robustes est crucial pour la sécurisation des systèmes Linux. Ce tutoriel vous guidera à travers la compréhension des fondamentaux des politiques de mots de passe Linux, la configuration des exigences de complexité des mots de passe et l'application de ces politiques pour améliorer la sécurité globale de votre environnement Linux.
Comprendre les fichiers de politique de mots de passe Linux
Les systèmes Linux utilisent plusieurs fichiers de configuration pour gérer les politiques de mots de passe. Dans cette étape, nous allons explorer ces fichiers et comprendre leur objectif dans la gestion des mots de passe.
Exploration des fichiers de configuration des politiques de mots de passe
Commençons par examiner les principaux fichiers de configuration qui contrôlent les politiques de mots de passe dans Ubuntu :
Tout d'abord, ouvrez un terminal en cliquant sur l'icône du terminal dans l'environnement de bureau.
Examinons le fichier
/etc/login.defs, qui contient les paramètres de base des politiques de mots de passe :cat /etc/login.defs | grep "^PASS_"Vous devriez voir une sortie similaire à celle-ci :
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_WARN_AGE 7Ces paramètres contrôlent :
PASS_MAX_DAYS: Nombre maximum de jours pendant lesquels un mot de passe reste validePASS_MIN_DAYS: Nombre minimum de jours requis entre les changements de mot de passePASS_WARN_AGE: Nombre de jours d'avertissement avant l'expiration du mot de passe
Un autre fichier important est
/etc/pam.d/common-password, qui gère les paramètres PAM (Pluggable Authentication Modules) pour l'authentification par mot de passe :cat /etc/pam.d/common-passwordCe fichier contient plusieurs lignes configurant la manière dont les mots de passe sont gérés, y compris les exigences de complexité.
Le système utilise la bibliothèque
pwqualitypour appliquer la qualité des mots de passe. Vérifions si elle est installée :dpkg -l | grep libpwqualitySi elle n'est pas installée, nous pouvons l'installer :
sudo apt update sudo apt install -y libpam-pwqualityMaintenant, examinons le fichier de configuration de la qualité des mots de passe :
cat /etc/security/pwquality.confCe fichier peut avoir la plupart des lignes commentées avec
#, ce qui signifie que les valeurs par défaut sont utilisées.
Comprendre les paramètres de la politique de mots de passe
Voici les principaux paramètres que vous pouvez configurer :
minlen: Longueur minimale du mot de passedcredit: Crédit pour les chiffres dans le mot de passeucredit: Crédit pour les majusculeslcredit: Crédit pour les minusculesocredit: Crédit pour les caractères spéciauxretry: Nombre de tentatives pour saisir un nouveau mot de passeenforce_for_root: S'il faut appliquer ces politiques pour l'utilisateur root
Ces paramètres fournissent un cadre complet pour contrôler la complexité et la sécurité des mots de passe dans votre système Linux.
Configuration des politiques de mots de passe de base
Dans cette étape, nous allons configurer les politiques de mots de passe de base en modifiant le fichier /etc/login.defs pour définir les exigences de vieillissement des mots de passe.
Définition des paramètres de vieillissement des mots de passe
Commençons par faire une sauvegarde du fichier d'origine :
sudo cp /etc/login.defs /etc/login.defs.backupMaintenant, ouvrez le fichier pour l'édition en utilisant nano :
sudo nano /etc/login.defsDans l'éditeur, recherchez ces paramètres (utilisez Ctrl+W pour rechercher) :
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGEModifiez ces valeurs pour mettre en œuvre une politique de vieillissement des mots de passe plus sécurisée :
- Remplacez
PASS_MAX_DAYSde99999par90(les mots de passe expirent après 90 jours) - Remplacez
PASS_MIN_DAYSde0par7(minimum 7 jours entre les changements de mot de passe) - Remplacez
PASS_WARN_AGEde7par14(avertir les utilisateurs 14 jours avant l'expiration du mot de passe)
- Remplacez
Enregistrez le fichier en appuyant sur Ctrl+O, puis sur Entrée, et quittez avec Ctrl+X.
Vérifiez vos modifications :
cat /etc/login.defs | grep "^PASS_"Vous devriez voir :
PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14
Test de la politique sur un nouvel utilisateur
Créons un utilisateur de test pour voir comment ces politiques s'appliquent :
Créez un nouvel utilisateur :
sudo useradd -m testuserDéfinissez un mot de passe pour le nouvel utilisateur :
sudo passwd testuserEntrez un mot de passe simple lorsque vous y êtes invité (nous le renforcerons dans les étapes suivantes).
Vérifiez les informations de vieillissement du mot de passe pour le nouvel utilisateur :
sudo chage -l testuserVous devriez voir que les politiques de mots de passe ont été appliquées à ce nouvel utilisateur, affichant la date d'expiration en fonction de vos paramètres.
Notez que ces modifications ne s'appliquent qu'aux nouveaux comptes ou lorsqu'un mot de passe est modifié. Les comptes existants conservent leurs paramètres précédents jusqu'à ce que vous les mettiez à jour manuellement.
Configuration des exigences de complexité des mots de passe
Dans cette étape, nous allons configurer les règles de complexité des mots de passe pour imposer des mots de passe forts sur notre système.
Mise en place des règles de complexité des mots de passe
Tout d'abord, faisons une sauvegarde du fichier de configuration PAM :
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backupMaintenant, ouvrez le fichier pour l'édition :
sudo nano /etc/pam.d/common-passwordRecherchez une ligne contenant
pam_pwquality.so. Elle peut ressembler à ceci :password requisite pam_pwquality.so retry=3Modifiez cette ligne pour ajouter des exigences de complexité. Remplacez-la par :
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_rootCette configuration signifie :
minlen=12: La longueur minimale du mot de passe est de 12 caractèresdcredit=-1: Au moins 1 chiffre est requisucredit=-1: Au moins 1 lettre majuscule est requiselcredit=-1: Au moins 1 lettre minuscule est requiseocredit=-1: Au moins 1 caractère spécial est requisenforce_for_root: Appliquer ces politiques également à l'utilisateur root
Enregistrez le fichier en appuyant sur Ctrl+O, puis sur Entrée, et quittez avec Ctrl+X.
Configuration de paramètres supplémentaires dans pwquality.conf
Maintenant, modifions le fichier de configuration pwquality pour des contrôles supplémentaires :
sudo cp /etc/security/pwquality.conf /etc/security/pwquality.conf.backup sudo nano /etc/security/pwquality.confDécommentez (supprimez le ## au début) et modifiez ces lignes, ou ajoutez-les si elles n'existent pas :
minlen = 12 dcredit = -1 ucredit = -1 lcredit = -1 ocredit = -1 difok = 4 enforce_for_root = 1Le paramètre
difok = 4exige qu'au moins 4 caractères soient différents du mot de passe précédent.Enregistrez le fichier en appuyant sur Ctrl+O, puis sur Entrée, et quittez avec Ctrl+X.
Test de la nouvelle politique de complexité des mots de passe
Testons notre nouvelle politique en changeant le mot de passe de notre utilisateur de test :
sudo passwd testuserEssayez d'entrer un mot de passe simple comme
password123. Le système devrait le rejeter car il ne répond pas aux exigences de complexité.Essayez maintenant un mot de passe complexe qui répond à toutes les exigences, tel que
Secure@Password123.Si vous avez tout configuré correctement, le système devrait accepter ce mot de passe.
Les exigences de complexité garantissent que les utilisateurs créent des mots de passe forts, ce qui rend plus difficile pour les attaquants de les deviner ou de les casser.
Mise en œuvre des contrôles d'historique des mots de passe
Dans cette étape, nous allons configurer les contrôles d'historique des mots de passe pour empêcher les utilisateurs de réutiliser leurs mots de passe récents.
Configuration de l'historique des mots de passe
Tout d'abord, faisons une sauvegarde du fichier de configuration PAM si vous ne l'avez pas déjà fait :
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup2Ouvrez le fichier pour l'édition :
sudo nano /etc/pam.d/common-passwordRecherchez une ligne contenant
pam_unix.so. Elle pourrait ressembler à ceci :password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512Modifiez cette ligne pour ajouter le paramètre
remember. Ajoutezremember=5à la fin de la ligne :password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5Cela empêchera les utilisateurs de réutiliser l'un de leurs 5 mots de passe les plus récents.
Enregistrez le fichier en appuyant sur Ctrl+O, puis sur Entrée, et quittez avec Ctrl+X.
Comprendre le fonctionnement de l'historique des mots de passe
Le paramètre remember=5 indique au système de stocker les hachages des 5 derniers mots de passe pour chaque utilisateur. Lorsqu'un utilisateur tente de modifier son mot de passe, le système compare le nouveau mot de passe à ces hachages stockés pour s'assurer qu'il n'est pas réutilisé.
L'historique des mots de passe est stocké dans le fichier /etc/security/opasswd. Vérifions si ce fichier existe :
ls -la /etc/security/opasswd
S'il n'existe pas, il sera créé automatiquement lorsque le premier utilisateur modifiera son mot de passe avec la nouvelle politique en place.
Test de l'historique des mots de passe
Essayons de changer le mot de passe de l'utilisateur de test plusieurs fois pour voir le mécanisme d'historique en action :
sudo passwd testuserDéfinissez un mot de passe complexe comme
Complex@Password1.Essayez maintenant de le changer à nouveau immédiatement :
sudo passwd testuserEssayez de définir à nouveau le même mot de passe. Le système devrait le rejeter en raison de la politique d'historique.
Essayez ceci plusieurs fois avec des mots de passe différents, puis essayez de réutiliser un mot de passe précédent. Vous devriez constater que vous ne pouvez pas réutiliser l'un de vos 5 mots de passe les plus récents.
Ce mécanisme d'historique des mots de passe ajoute une autre couche de sécurité en empêchant la réutilisation des mots de passe, ce qui est une faiblesse de sécurité courante.
Application des politiques de mots de passe aux utilisateurs existants
Dans cette dernière étape, nous allons apprendre comment appliquer nos nouvelles politiques de mots de passe aux utilisateurs existants et gérer les informations de mot de passe des utilisateurs.
Compréhension de la gestion de l'expiration des mots de passe
Lorsque vous modifiez les politiques de mots de passe dans /etc/login.defs, les nouveaux paramètres ne s'appliquent qu'aux utilisateurs nouvellement créés ou lorsque vous mettez à jour manuellement les utilisateurs existants. Voyons comment gérer les utilisateurs existants :
Tout d'abord, vérifiez l'état actuel d'un compte utilisateur :
sudo chage -l labexCela affiche les informations de vieillissement du mot de passe pour l'utilisateur actuel.
Pour forcer un utilisateur à changer son mot de passe à la prochaine connexion :
sudo chage -d 0 testuserCela définit la date de la dernière modification du mot de passe sur 0, forçant un changement de mot de passe à la prochaine connexion.
Pour définir manuellement la date d'expiration du mot de passe :
sudo chage -E $(date -d "90 days" +%Y-%m-%d) testuserCela définit la date d'expiration du compte à 90 jours à partir d'aujourd'hui.
Définition de l'âge maximal du mot de passe pour les utilisateurs existants
Pour appliquer la politique d'âge maximal du mot de passe à un utilisateur existant :
sudo chage -M 90 testuser
Cela définit l'âge maximal du mot de passe à 90 jours pour l'utilisateur.
Définition de l'âge minimal du mot de passe pour les utilisateurs existants
Pour appliquer la politique d'âge minimal du mot de passe à un utilisateur existant :
sudo chage -m 7 testuser
Cela définit l'âge minimal du mot de passe à 7 jours pour l'utilisateur.
Définition de l'avertissement d'expiration du mot de passe pour les utilisateurs existants
Pour appliquer la politique d'avertissement d'expiration du mot de passe à un utilisateur existant :
sudo chage -W 14 testuser
Cela définit la période d'avertissement d'expiration du mot de passe à 14 jours pour l'utilisateur.
Affichage des informations de mot de passe de l'utilisateur
Vous pouvez vérifier les informations de mot de passe d'un utilisateur à l'aide de plusieurs commandes :
Afficher tous les comptes d'utilisateurs locaux :
cat /etc/passwdVérifier l'état du mot de passe pour un utilisateur spécifique :
sudo passwd -S testuserLister les utilisateurs avec un paramètre de mot de passe spécifique :
awk -F: '($3 >= 1000) {print $1}' /etc/passwdCela liste tous les utilisateurs réguliers sur le système (UID >= 1000).
Application des politiques à tous les utilisateurs
Pour appliquer les nouvelles politiques de mots de passe à tous les utilisateurs réguliers du système, vous pouvez utiliser un script simple. Voici un exemple :
for user in $(awk -F: '($3 >= 1000) && ($3 < 60000) {print $1}' /etc/passwd); do
echo "Updating password policy for user: $user"
sudo chage -M 90 -m 7 -W 14 $user
done
Ce script met à jour tous les utilisateurs réguliers avec nos nouvelles politiques de vieillissement des mots de passe.
En appliquant ces politiques aux utilisateurs existants, vous assurez une sécurité cohérente des mots de passe sur l'ensemble de votre système.
Résumé
Dans ce laboratoire, vous avez appris à configurer et à appliquer des politiques de mots de passe robustes sous Linux. Vous avez :
- Exploré les fichiers de configuration clés qui contrôlent les politiques de mots de passe
- Configuré des politiques de vieillissement de base des mots de passe pour garantir des mises à jour régulières des mots de passe
- Mis en œuvre des exigences de complexité de mot de passe fortes pour imposer des mots de passe sécurisés
- Mis en place des contrôles d'historique des mots de passe pour empêcher la réutilisation des mots de passe
- Appris à appliquer les politiques de mots de passe aux utilisateurs existants
Ces configurations de politique de mots de passe sont essentielles pour maintenir un environnement Linux sécurisé. En mettant en œuvre des exigences de mot de passe fortes, une rotation régulière des mots de passe et en empêchant la réutilisation des mots de passe, vous avez considérablement amélioré la posture de sécurité de votre système contre les accès non autorisés et les violations potentielles.
N'oubliez pas que des politiques de mots de passe efficaces ne sont qu'un aspect d'une stratégie de sécurité globale. Elles doivent être combinées à d'autres mesures de sécurité telles que les mises à jour régulières du système, une gestion appropriée des utilisateurs et une surveillance continue de la sécurité.



