10 septembre 2013

Gestion de la politique des mots de passe sous Linux

I. Présentation

Il est important d’avoir une bonne gestion et une bonne configuration de la politique des mots de passe sur son système. Il est d'abord important de déterminer ce qui est un mot de passe fort, communément, il doit suivre les recommandations suivantes :
  • comprend au moins huit caractères
  • ne contient ni votre nom d’utilisateur, ni votre vrai nom, ni le nom de la société
  • ne contient pas de mot entier
  • contient des caractères provenant de chacune des quatre catégories suivantes (minuscule, majuscule, chiffre, caractères spéciaux)
Sous Linux, nous pouvons gérer une multitude de paramètres dont :
  •  Le nombre de tentatives maximum
  •  La longueur minimale du mot de passe
  •  Nombre de caractères différents entre deux mots de passe consécutifs

II. PAM

Les mots de passes se gèrent avec PAM  Pluggable Authentication Module ») qui s’occupe de l’authentification des utilisateurs. PAM nous permet avec l’ajout d’un module de gérer plusieurs des paramètres ci-dessus. Nous allons donc commencer par installer ce module :
Nous pourrons ensuite nous rendre dans « /etc/pam.d/ » où se situent les différents fichiers de configuration PAM. Nous pouvons aller modifier le fichier « /etc/pam.d/common-password » qui gère les règles de construction des mots de passe lors de la création des utilisateurs où de la modification de ceux-ci. On voit alors la ligne suivante :
PolitquePasswd01
Nous voyons d’abord que cette ligne utilise le module « pam_cracklib » que nous venons d’installer. Nous pouvons étudier les différents paramètres qui sont précisés :
  •  « Retry = 3 » : Autorise trois essais pour la saisie du mot de passe
  •  « Minlen=8 » : Détermine la longueur minimale d’un mot de passe
  •  « Difok = 3 » : Indique le nombre de caractères qui doivent être différents entre un ancien et un nouveau mot de passe.
Si on entre la commande « adduser test2 » avec un mot de passe faible comme « 2 », nous voyons ce message d’erreur :
PolitquePasswd02
Nous voyons que PAM analyse donc le mot de passe saisi et nous indique ce qui ne va pas dans sa construction. On voit par exemple qu’il le voit comme trop court (il fait moins de 8 caractères) et comme un palindrome (comme les mots laval ou kayak) car il ne fait qu’un seul caractère. Si nous agissons en « root », nous pourrons forcer la création d’un mot de passe qui ne respecte pas notre politique de mot de passe.
Le module pam_cracklib s’appuie également sur une liste de mot qu’il compare aux mots de passe saisies afin d’éviter que les utilisateurs mettent des mots « clairs » en tant que mots de passe. Par défaut, il utilise un dictionnaire anglais (wenglish). Par exemple si l’on veut utiliser le mot de passe « Password7 ! », il nous renverra le message suivant :
PolitquePasswd03
C’est une sécurité supplémentaire dont s’occupe PAM pour la création des mots de passe. En effet, dans la plupart des attaques de type brute force, les attaquants utilisent un dictionnaire de mots qu’ils lisent automatiquement mots par mots et les envoient pour tester les mots de passe courants. Un mot de passe qui signifie quelque chose comme un mot «réel » est donc déconseillé car il peut être présent dans ce genre de dictionnaire.
Le module « cracklib » permet de faire un test du mot de passe que nous voulons passer. Il faut pour cela utiliser la commande « cracklib-check » comme suivant :
PolitquePasswd04
On est donc averti à l’avance du respect de la politique des mots de passe.
Note : 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 qui ne respecte pas notre politique des mots de passe car nous sommes enroot. Si un utilisateur 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.

Aucun commentaire :

Enregistrer un commentaire