La sécurité SSH est une priorité absolue lors de la configuration de votre serveur. Les paramètres SSH par défaut ne sont généralement pas assez robustes pour protéger votre serveur des attaques externes.

Par conséquent, des ajustements supplémentaires sont nécessaires pour fournir une sécurité décente contre les attaques par force brute. L’une d’elles consiste à implémenter fail2ban pour éloigner les utilisateurs non autorisés après un certain nombre de tentatives de connexion incorrectes. De même, vous pouvez tirer parti de la pam_faillock module pour implémenter une politique de verrouillage de compte.

Ce guide montrera comment verrouiller le compte d’un utilisateur système après un nombre précis de tentatives de connexion SSH infructueuses dans les distributions basées sur RedHat. Sur les distributions basées sur Debian, vous devez utiliser le module pam_tally2 pour verrouiller les connexions SSH ayant échoué.

Ici, l’objectif est d’appliquer une sécurité de serveur simple en verrouillant le compte d’un utilisateur après un nombre consécutif d’authentifications SSH infructueuses.

Qu’est-ce que le module pam_faillock ?

Le pam_faillock module fait partie du PAM Linux (Pluggable Authentication Modules), un utilitaire composé de bibliothèques partagées qui sépare les applications des méthodes d’authentification standard.

Publicité

Il accepte les vérifications d’authentification de programmes tels que sshd, gdm, login et bien d’autres et authentifie l’utilisateur auprès de ces services ou applications dans les systèmes Linux. Nous avons brièvement expliqué la configuration de PAM pour auditer l’activité du shell de connexion des utilisateurs.

Le module enregistre les tentatives d’authentification échouées par utilisateur et verrouille temporairement le compte utilisateur si les tentatives d’authentification échouées dépassent une certaine limite. Les tentatives de connexion infructueuses sont stockées dans des fichiers par utilisateur dans le répertoire de pointage qui est /var/run/faillock/ par défaut.

Le pam_faillock module remplace pam_tally et pam_tally2 modules qui ont été obsolètes dans RHEL 7 et RHEL 8. Il offre plus de flexibilité et d’options que les deux modules.

Comment verrouiller l’utilisateur après l’échec des connexions SSH

Vous pouvez configurer la fonctionnalité ci-dessus dans le /etc/pam.d/system-auth et /etc/pam.d/password-auth fichiers, en ajoutant les entrées ci-dessous aux auth section.

$ sudo vim /etc/pam.d/system-auth
$ sudo vim /etc/pam.d/password-auth

Pour verrouiller ou refuser l’accès des utilisateurs au système après 3 tentatives SSH infructueuses et déverrouiller le compte utilisateur après 1200 secondes, ajoutez les lignes suivantes dans le auth section.

auth   required      pam_faillock.so preauth silent audit deny=3 unlock_time=1200
auth   [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600

Où:

  • audit – permet l’audit des utilisateurs.
  • deny – permet de définir le nombre de tentatives (3 dans ce cas), après quoi le compte utilisateur doit être verrouillé.
  • unlock_time – règle l’heure (600 secondes = dix minutes) pendant lesquelles le compte doit rester verrouillé.

Notez que l’ordre de ces lignes est très important, de mauvaises configurations peuvent entraîner le verrouillage de tous les comptes d’utilisateurs.

Le auth section dans les deux fichiers doit avoir le contenu ci-dessous organisé dans cet ordre :

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authselect is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so try_first_pass nullok
auth        required      pam_deny.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=1200
auth        [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600

Ensuite, naviguez vers le account section et ajoutez la ligne suivante dans les deux fichiers ci-dessus.

account     required      pam_faillock.so

Après avoir ajouté les paramètres ci-dessus, il devrait apparaître comme suit.

Configurer Pam_Faillock Dans Pam
Configurer Pam_Faillock Dans Pam
Configurer Pam_Faillock Dans Pam

Comment verrouiller la racine après l’échec des connexions SSH

Vous pouvez ajouter le even_deny_root paramètre à auth section pour verrouiller à la fois l’utilisateur et l’utilisateur normal. Dans cet exemple, le temps de déverrouillage pour les utilisateurs réguliers est 1200 secondes (20 minutes) et 3600 secondes (60 min ou 1 h) pour l’utilisateur root après 3 tentatives de connexion SSH infructueuses.

auth    required       pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200
auth    [default=die]  pam_faillock.so authfail  audit  deny=3 even_deny_root unlock_time=3600

Une fois que vous avez tout configuré. Vous pouvez redémarrer les services d’accès à distance comme sshdpour que la politique ci-dessus prenne effet, c’est-à-dire si les utilisateurs utilisent ssh pour se connecter au serveur.

$ sudo systemctl restart sshd

Ensuite, nous allons exécuter un test et vérifier si la configuration fonctionne.

Comment tester les tentatives de connexion infructueuses des utilisateurs SSH

À partir des paramètres ci-dessus, nous avons configuré le système pour verrouiller le compte d’un utilisateur après 3 tentatives d’authentification infructueuses.

Dans ce scénario, l’utilisateur tecmint essaie de passer à l’utilisateur aaronkilikmais après 3 logins incorrects à cause d’un mot de passe erroné, indiqué par le « Permission refusée » message, l’utilisateur d’aaronkilik compte est verrouillé comme indiqué par le « échec d’authentification” message de la quatrième tentative.

Échec Des Tentatives De Connexion De L'Utilisateur Test
Échec Des Tentatives De Connexion De L'Utilisateur Test
Échec Des Tentatives De Connexion De L’utilisateur Test

L’utilisateur racine est également informé des tentatives de connexion infructueuses sur le système, comme indiqué dans la capture d’écran ci-dessous.

Message D'Échec Des Tentatives De Connexion
Message D'Échec Des Tentatives De Connexion
Message D’échec Des Tentatives De Connexion

Comment afficher les connexions SSH ayant échoué

Vous pouvez voir tous les journaux d’authentification SSH ayant échoué à l’aide du blocage utilitaire qui permet d’afficher et de modifier le journal des échecs d’authentification.

Vous pouvez afficher les tentatives de connexion échouées pour un utilisateur particulier comme celui-ci.

# faillock --user aaronkilik
Afficher Les Tentatives De Connexion Infructueuses De L'Utilisateur
Afficher Les Tentatives De Connexion Infructueuses De L'Utilisateur
Afficher Les Tentatives De Connexion Infructueuses De L’utilisateur

Pour afficher toutes les tentatives de connexion infructueuses, exécutez faillock sans aucun argument comme suit :

# faillock 

Comment déverrouiller l’utilisateur après l’échec des connexions SSH

Pour effacer les journaux d’échec d’authentification d’un utilisateur, exécutez cette commande.

# faillock --user aaronkilik --reset 
OR
# fail --reset	#clears all authentication failure records

Désactiver le verrouillage de l’utilisateur après l’échec des connexions SSH

Enfin, pour indiquer au système de ne pas verrouiller un utilisateur ou les comptes d’un utilisateur après plusieurs tentatives de connexion infructueuses, ajoutez l’entrée mise en évidence en gras, juste au-dessus de l’endroit où pam_faillock est d’abord appelé sous le auth section dans les deux fichiers (/etc/pam.d/system-auth et /etc/pam.d/password-auth) comme suit.

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authselect is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so try_first_pass nullok
auth        required      pam_deny.so
auth   [success=1 default=ignore] pam_succeed_if.so user in tecmint:aaronkilik
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=1200
auth        [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600

Comment désactiver le module Faillock

Pour désactiver le pam_failock module, exécutez la commande suivante :

# authconfig --disablefaillock --update
Désactiver Le Module Faillock
Désactiver Le Module Faillock
Désactiver Le Module Faillock

Pour plus d’informations, consultez le pam_faillock et blocage pages de manuel.

# man pam_faillock
# man faillock 

C’est tout! Dans cet article, nous avons montré comment appliquer une sécurité de serveur simple en verrouillant le compte d’un utilisateur après un nombre x de connexions incorrectes ou de tentatives d’authentification infructueuses.

C’est un moyen pratique de renforcer votre sécurité SSH contre les attaques par force brute. Utilisez le formulaire de commentaire ci-dessous pour nous faire part de vos questions ou de vos réflexions.

4.8/5 - (13 votes)
Publicité
Article précédentWhatsApp peut maintenant être utilisé sur plusieurs iPhones
Article suivantLes téléphones pliables Samsung Galaxy sont prêts pour une énorme mise à niveau de la mode
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici