Introduction
La sécurité des mots de passe est un élément essentiel pour protéger les systèmes et les données contre les accès non autorisés. Les mots de passe faibles ou compromis sont l'un des points d'entrée les plus courants pour les attaquants. La mise en œuvre d'une politique de mots de passe robuste est une pratique de sécurité fondamentale.
Dans ce laboratoire, vous apprendrez à mettre en œuvre plusieurs bonnes pratiques pour la sécurité des mots de passe sur un système Linux. Vous configurerez les règles de complexité des mots de passe, mettrez en place l'authentification multifacteur (MFA), comprendrez le rôle des gestionnaires de mots de passe, imposerez la rotation des mots de passe et découvrirez l'importance de la formation des utilisateurs.
Comprendre les exigences de complexité des mots de passe
Dans cette étape, vous allez imposer des règles de complexité des mots de passe pour garantir que les utilisateurs créent des mots de passe robustes. Un mot de passe fort comprend généralement un mélange de lettres majuscules, de lettres minuscules, de chiffres et de caractères spéciaux, et a une longueur suffisante. Nous utiliserons le module d'authentification enfichable (PAM) pam_pwquality pour y parvenir.
Tout d'abord, installons le paquet libpam-pwquality, qui fournit les outils nécessaires.
sudo apt-get install libpam-pwquality -y
Maintenant, vous devez configurer la pile PAM pour utiliser ce module lors des changements de mot de passe. Nous allons éditer le fichier /etc/pam.d/common-password. Ce fichier contient la configuration commune pour la gestion des mots de passe.
Ouvrez le fichier à l'aide de l'éditeur nano :
sudo nano /etc/pam.d/common-password
Trouvez la ligne contenant pam_unix.so et ajoutez la ligne suivante au-dessus de celle-ci. Cela garantit que la vérification de la qualité a lieu avant que le mot de passe ne soit effectivement modifié par le module pam_unix.
password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
Décomposons ces options :
retry=3: L'utilisateur dispose de 3 tentatives pour saisir un mot de passe conforme.minlen=12: La longueur minimale du mot de passe est de 12 caractères.ucredit=-1: Exige au moins une lettre majuscule.lcredit=-1: Exige au moins une lettre minuscule.dcredit=-1: Exige au moins un chiffre.ocredit=-1: Exige au moins un caractère spécial (autre).
Votre fichier devrait ressembler à ceci (certaines lignes peuvent différer) :
## /etc/pam.d/common-password
...
password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
password [success=1 default=ignore] pam_unix.so obscure sha512
...
Appuyez sur Ctrl+X, puis sur Y, et enfin sur Entrée pour enregistrer le fichier et quitter nano.
Testons maintenant la nouvelle politique. Nous allons essayer de changer le mot de passe de l'utilisateur labex.
passwd
Entrez d'abord votre mot de passe actuel (vous pouvez simplement appuyer sur Entrée car aucun mot de passe n'est défini pour labex). Ensuite, essayez de définir un mot de passe faible comme password. Le système devrait le rejeter et afficher un message d'erreur car il ne répond pas aux exigences de complexité.
(current) UNIX password:
New password:
BAD PASSWORD: The password is shorter than 12 characters
Retype new password:
Sorry, passwords do not match.
passwd: Authentication token manipulation error
passwd: password unchanged
Essayez maintenant à nouveau avec un mot de passe fort comme Labex!P@ssw0rd. Ce mot de passe devrait être accepté.
Vous avez configuré avec succès les exigences de complexité des mots de passe sur votre système.
Implémenter l'authentification multifacteur
Dans cette étape, vous apprendrez à implémenter l'authentification multifacteur (MFA). La MFA ajoute une deuxième couche de sécurité en exigeant des utilisateurs qu'ils fournissent deux facteurs de vérification ou plus pour obtenir l'accès. Nous utiliserons le module PAM Google Authenticator pour ajouter l'authentification par mot de passe à usage unique basé sur le temps (TOTP).
Tout d'abord, installez le paquet libpam-google-authenticator.
sudo apt-get install libpam-google-authenticator -y
Ensuite, vous devez générer une configuration MFA pour votre utilisateur. Exécutez la commande suivante en tant qu'utilisateur labex (pas avec sudo).
google-authenticator
La commande vous posera une série de questions. Dans le cadre de ce laboratoire, répondez-y comme suit :
Do you want authentication tokens to be time-based (y/n): Appuyez suryetEntrée.- Vous verrez un code QR, une clé secrète et des codes de secours d'urgence. Dans un scénario réel, vous scanneriez le code QR avec une application d'authentification sur votre téléphone. Pour ce laboratoire, nous allons simplement continuer.
Do you want me to update your "/home/labex/.google_authenticator" file? (y/n): Appuyez suryetEntrée. Cela enregistre votre clé secrète.Do you want to disallow multiple uses of the same authentication token?: Appuyez suryetEntrée.Do you want to increase the time-skew window?: Appuyez surnetEntrée.Do you want to enable rate-limiting for the authentication module?: Appuyez suryetEntrée.
Cela crée un fichier .google_authenticator dans votre répertoire personnel (/home/labex).
Maintenant, configurons SSH pour utiliser ce jeton MFA. Premièrement, nous devons indiquer à PAM de l'exiger pour les sessions SSH.
Ouvrez le fichier /etc/pam.d/sshd :
sudo nano /etc/pam.d/sshd
Ajoutez la ligne suivante à la fin du fichier :
auth required pam_google_authenticator.so
Enregistrez et quittez le fichier (Ctrl+X, Y, Entrée).
Ensuite, nous devons activer l'authentification par réponse à une question dans la configuration du serveur SSH.
Ouvrez /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config
Trouvez la ligne ChallengeResponseAuthentication no et changez-la en yes. Si la ligne est commentée avec un #, supprimez le #.
## /etc/ssh/sshd_config
...
ChallengeResponseAuthentication yes
...
Enregistrez et quittez le fichier. Sur un système réel, vous redémarreriez le service SSH. Cependant, dans cet environnement conteneurisé, le redémarrage de services comme sshd n'est pas pris en charge. L'essentiel est de comprendre les étapes de configuration nécessaires pour activer la MFA pour SSH.
Utiliser des gestionnaires de mots de passe
Dans cette étape, nous allons discuter de l'importance des gestionnaires de mots de passe. La réutilisation de mots de passe sur différents services constitue un risque de sécurité majeur. Si un service est compromis, les attaquants peuvent utiliser le mot de passe divulgué pour accéder à vos autres comptes. Un gestionnaire de mots de passe vous aide à générer, stocker et gérer des mots de passe uniques et robustes pour chaque service.
KeePassXC est un gestionnaire de mots de passe populaire, open-source et gratuit qui stocke vos mots de passe dans une base de données sécurisée et chiffrée. Bien qu'il s'agisse d'une application graphique, nous l'installerons pour comprendre comment de tels outils sont intégrés dans le flux de travail d'un utilisateur.
Installons KeePassXC en utilisant apt-get.
sudo apt-get install keepassxc -y
Une fois l'installation terminée, vous pouvez la vérifier en recherchant l'existence de la commande.
which keepassxc
Vous devriez voir la sortie suivante, indiquant que l'application est installée et disponible dans le chemin de votre système.
/usr/bin/keepassxc
Dans un environnement de bureau, vous lanceriez KeePassXC, créeriez une nouvelle base de données chiffrée avec un mot de passe maître fort, et commenceriez à ajouter vos identifiants de connexion pour divers sites web et services. L'application peut également générer automatiquement des mots de passe très robustes pour vous. Le principe clé est de retenir un mot de passe maître fort pour déverrouiller le gestionnaire, et de laisser le gestionnaire s'occuper de tous vos autres mots de passe complexes.
Rotation régulière des mots de passe
Dans cette étape, vous apprendrez à imposer la rotation des mots de passe, également appelée vieillissement des mots de passe. Changer régulièrement les mots de passe limite la fenêtre d'opportunité pour un attaquant qui aurait pu voler un mot de passe.
Sous Linux, vous pouvez définir des politiques de vieillissement des mots de passe à l'échelle du système dans le fichier /etc/login.defs. Vous pouvez également définir des politiques pour des utilisateurs individuels avec la commande chage. Nous allons nous concentrer sur la commande chage.
Tout d'abord, visualisons les paramètres actuels de vieillissement des mots de passe pour l'utilisateur labex.
sudo chage -l labex
Vous verrez une sortie similaire à celle-ci, la plupart des valeurs étant définies sur never.
Last password change : May 20, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Le Maximum number of days between password change est défini sur 99999, ce qui signifie effectivement que le mot de passe n'expire jamais. Changeons cela pour imposer un changement de mot de passe tous les 90 jours.
Utilisez la commande chage avec l'option -M pour définir l'âge maximum.
sudo chage -M 90 labex
Maintenant, vérifiez à nouveau les paramètres pour confirmer le changement.
sudo chage -l labex
La sortie devrait maintenant indiquer que le nombre maximum de jours est de 90. La date Password expires sera également mise à jour en conséquence.
Last password change : May 20, 2024
Password expires : Aug 18, 2024
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Vous avez configuré avec succès une politique de rotation des mots de passe pour un utilisateur.
Éduquer les utilisateurs à l'hygiène des mots de passe
Dans cette étape, nous allons nous concentrer sur l'élément humain de la sécurité. Les contrôles techniques sont essentiels, mais ils sont plus efficaces lorsque les utilisateurs pratiquent également une bonne hygiène des mots de passe. Éduquer les utilisateurs sur les meilleures pratiques de sécurité est un contrôle crucial, non technique.
Voici quelques points clés d'une bonne hygiène des mots de passe :
- Ne réutilisez pas vos mots de passe : Utilisez un mot de passe unique pour chaque compte.
- Ne partagez pas vos mots de passe : Ne partagez jamais votre mot de passe avec qui que ce soit, y compris le personnel informatique.
- Méfiez-vous du phishing : Soyez méfiant à l'égard des e-mails ou des messages qui demandent vos identifiants de connexion.
- Verrouillez votre écran : Verrouillez toujours votre ordinateur lorsque vous vous en éloignez.
- Utilisez des phrases de passe : Une phrase de passe longue comme
correct-horse-battery-staplepeut être plus sécurisée et plus facile à retenir qu'un mot de passe court et complexe commeJ%7d*fQ!.
Pour simuler la création d'un document de politique destiné aux utilisateurs, créons un fichier texte simple dans notre répertoire de projet qui décrit ces règles.
Tout d'abord, créez le fichier et ajoutez la première règle en utilisant la commande echo et la redirection de sortie >.
echo "1. Ne partagez votre mot de passe avec personne." > ~/project/password_policy.txt
Maintenant, ajoutons deux règles supplémentaires au fichier en utilisant l'opérateur d'ajout >>.
echo "2. Utilisez un mot de passe unique pour chaque service." >> ~/project/password_policy.txt
echo "3. Méfiez-vous des e-mails de phishing demandant des identifiants." >> ~/project/password_policy.txt
Enfin, affichez le contenu de votre nouveau document de politique en utilisant la commande cat.
cat ~/project/password_policy.txt
Vous devriez voir la sortie suivante :
1. Ne partagez votre mot de passe avec personne.
2. Utilisez un mot de passe unique pour chaque service.
3. Méfiez-vous des e-mails de phishing demandant des identifiants.
Cet exercice simple démontre comment les politiques de sécurité peuvent être documentées et partagées. Dans une organisation réelle, cela ferait partie d'un programme de sensibilisation à la sécurité plus large.
Résumé
Dans ce laboratoire, vous avez mis en œuvre avec succès plusieurs bonnes pratiques clés pour la sécurité des mots de passe dans un environnement Linux. Une approche multicouche qui combine des contrôles techniques avec l'éducation des utilisateurs offre la défense la plus solide contre l'accès non autorisé.
Vous avez appris à :
- Imposer la création de mots de passe forts en configurant les exigences de complexité avec
pam_pwquality. - Ajouter une deuxième couche de sécurité critique en configurant l'authentification multifacteur (MFA) avec
pam_google_authenticator. - Comprendre le rôle des gestionnaires de mots de passe comme KeePassXC dans la création et le stockage de mots de passe uniques et forts.
- Mettre en œuvre des politiques de rotation des mots de passe à l'aide de la commande
chagepour limiter le risque lié aux identifiants compromis. - Reconnaître l'importance de l'éducation des utilisateurs et de la documentation des politiques de sécurité pour une bonne hygiène des mots de passe.
En appliquant ces pratiques, vous pouvez améliorer considérablement la posture de sécurité de tout système que vous gérez.


