Ajouter de la sécurité avec une authentification PAM

Reprenons l'installation du serveur précédent avec l'utilisateur toto. Par défaut un connexion via SSH se fait sans contrôle.

Voici la liste des contrôles que nous souhaitons mettre en place :

  • Le mot de passe doit faire plus de 10 caractères
  • On veut qu'il ait au moins un chiffre, une majuscule et une minuscule
  • Que l'utilisateur ait deux chances pour saisir son mot de passe
  • L'utilisateur n'aura pas le droit de réutiliser son ancien mot de passe

Pour cela on a besoin des paquets suivants :

apt-get install libpam-cracklib libcrack2

Au moment d'une authentification le fichier common-password est sollicité alors on lui renseigne un module de cracklib.

nano nano /etc/pam.d/common-password

On ajouter cette ligne au début du fichier :

 password    requisite           pam_cracklib.so retry=2 minlen=10 difok=3 dcredit=-1 ucredit=-1 lcredit=-1

Les options en détails :

  • retry = nombre d'essaie
  • minlen = la taille minimum du mot de passe
  • difok = L'utilisateur ne peut pas réutiliser ses 3 anciens mot de passe (par défaut 5)
  • dcredit = au minimum un chiffre
  • ucredit = au minimum une lettre majuscule
  • lcredit = au minimum une lettre minuscule

Pour renseigner d'autres paramètres, la documentation est disponible à cette adresse : https://linux.die.net/man/8/pam_cracklib

A titre d'information, il existe également le module pwquality (paquet libpam-pwquality)