Le renforcement du serveur Linux est l'une des tâches importantes des administrateurs système en ce qui concerne les serveurs de production. Il est recommandé d'activer la stratégie de connexion ou de tentatives ssh, ce qui signifie que le compte de l'utilisateur doit être verrouillé automatiquement après n nombres de tentatives de connexion ou ssh échouées (ou incorrectes).
Dans les distributions Linux comme CentOS, RHEL et Fedora, cela est réalisé en utilisant le module pam "pam_faillock " et pour les distributions de type Debian, cela peut être réalisé en utilisant " pam_tally2 ” module pam.
Dans ce didacticiel, nous allons apprendre à verrouiller les comptes d'utilisateurs après n tentatives de connexion infructueuses dans CentOS, RHEL, Fedora, Debian et Ubuntu
Pour CentOS/RHEL/Fedora
Ajoutez les lignes suivantes dans deux fichiers /etc/pam.d/password-auth &/etc/pam.d/system-auth,
auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600 account required pam_faillock.so
Où,
- Audit – il activera les journaux d'audit pour les tentatives de connexion de l'utilisateur dans un fichier journal sécurisé
- Deny=3 -> il verrouillera l'utilisateur après 3 tentatives de connexion infructueuses, vous pouvez modifier ce numéro selon vos besoins
- unlock_time=600 -> cela signifie que le compte de l'utilisateur restera verrouillé pendant 10 minutes (600 secondes), si vous voulez que le compte de l'utilisateur soit verrouillé pour toujours, définissez ce paramètre sur "unlock_time=never"
Remarque :Pour verrouiller le compte root également après n connexions incorrectes, ajoutez "even_deny_root ” paramètre dans les lignes de la section auth, l'exemple est montré ci-dessous
auth required pam_faillock.so preauth silent audit even_deny_root deny=3 unlock_time=600 auth [default=die] pam_faillock.so authfail audit even_deny_root deny=3 unlock_time=600
Comme nous pouvons le voir ci-dessus, nous avons deux lignes pour la section auth et une ligne pour la section compte, l'ordre est très important lors de l'ajout de ces lignes aux fichiers. L'exemple ci-dessous montre où ces lignes doivent être ajoutées,
[[email protected] ~]# vi /etc/pam.d/password-auth
[[email protected] ~]# vi /etc/pam.d/system-auth
Après avoir apporté des modifications aux deux fichiers, redémarrez le service ssh à l'aide de la commande systemctl ci-dessous,
[[email protected] ~]# systemctl restart sshd
Testons si le compte d'utilisateur sera verrouillé après trois tentatives de connexion infructueuses ou non.
Supposons que nous ayons un compte local avec le nom "pkumar", nous essaierons de ssh notre système Linux avec ce compte avec des mots de passe incorrects,
$ ssh [email protected] [email protected]'s password: [email protected]'s password: [email protected]'s password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Affichez maintenant les journaux sécurisés à l'aide de la commande tail,
[[email protected] ~]# tail /var/log/secure
Les journaux ci-dessus confirment que le compte a été verrouillé après trois tentatives de connexion incorrectes, vérifions également à partir de la commande faillock,
[[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid 2019-12-15 01:50:39 RHOST 192.168.29.157 V 2019-12-15 01:50:43 RHOST 192.168.29.157 V 2019-12-15 01:50:47 RHOST 192.168.29.157 V [[email protected] ~]#
Pour vider ou effacer ces tentatives de connexion infructueuses, exécutez la commande faillock suivante,
[[email protected] ~]# faillock --user pkumar --reset [[email protected] ~]# faillock --user pkumar pkumar: When Type Source Valid [[email protected] ~]#
Passons à la distribution de type Debian (Ubuntu, Linux Mint et Debian)
Pour Debian, Ubuntu et Linux Mint
Ajoutez la ligne suivante dans le fichier "/etc/pam.d/common-auth",
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit
si vous souhaitez également verrouiller le compte root après trois connexions incorrectes, ajoutez la ligne suivante,
auth required pam_tally2.so onerr=fail deny=3 unlock_time=600 audit even_deny_root root_unlock_time=600
Où :
- Onerr=fail –> En cas d'erreur, émettre un échec
- deny=3 –> Après trois tentatives de connexion infructueuses, le compte sera verrouillé
- unlock_time=600 –> Cela signifie que le compte restera verrouillé pendant 10 minutes ou 600 secondes
- audit -> Cela signifie auditer les journaux dans le fichier audit.log
- even_deny_root –> Verrouiller le compte root après trois connexions incorrectes
- root_unlock_time=600 –> Le compte root restera verrouillé pendant 10 minutes ou 600 secondes après 3 tentatives de connexion infructueuses
Ajoutons la ligne de discussion ci-dessus dans le fichier "/etc/pam.d/common-auth ” à l'aide de l'éditeur vi,
[email protected]:~$ sudo vi /etc/pam.d/common-auth
Après avoir apporté les modifications ci-dessus, enregistrez et quittez le fichier et redémarrez le service ssh à l'aide de la commande suivante,
[email protected]:~$ sudo systemctl restart sshd
Testons si les comptes sont verrouillés après 3 connexions ssh incorrectes,
Supposons que nous ayons un utilisateur "devops" local, nous essaierons de ssh le système Ubuntu avec des mots de passe incorrects
$ ssh [email protected] [email protected]'s password: [email protected]'s password: d [email protected]'s password: Permission denied (publickey,password).
Maintenant, affichez le fichier journal d'authentification pour voir si des tentatives de connexion incorrectes sont capturées ou non,
[email protected]:~$ tail /var/log/auth.log
Les journaux ci-dessus confirment que le compte a été verrouillé, vérifions à partir de la commande pam_tally2,
[email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$
Pour effacer ces tentatives de connexion infructueuses, utilisez la commande pam_tally2 suivante,
[email protected]:~$ sudo pam_tally2 -u devops --reset Login Failures Latest failure From devops 6 12/15/19 07:45:02 192.168.29.157 [email protected]:~$ [email protected]:~$ sudo pam_tally2 -u devops Login Failures Latest failure From devops 0 [email protected]:~$
C'est la conclusion de l'article, n'hésitez pas à partager les retours et commentaires.