5 meilleures pratiques pour empêcher les attaques de connexion à force brute SSH dans Linux

5 meilleures pratiques pour empêcher les attaques de connexion à force brute SSH dans Linux

Serveurs en cours d'exécution Ssh sont généralement une cible douce pour les attaques brutales. Les pirates proposent constamment des outils logiciels innovants et des robots pour automatiser les attaques de force brute, ce qui augmente encore le risque d'intrusion.

Dans ce guide, nous explorons certains des conseils que vous pouvez mettre en œuvre pour protéger vos serveurs SSH à partir d'attaques de force brute contre les distributions Linux basées à Rhel et les dérivés Debian.

Désactiver l'authentification du mot de passe SSH et activer l'authentification SSH-Key

La méthode d'authentification par défaut pour Ssh est l'authentification du nom d'utilisateur / mot de passe. Mais comme nous l'avons vu, l'authentification du mot de passe est sujette à des attaques à force brute. Pour être en toute sécurité, il est recommandé d'implémenter l'authentification SSH par clé où l'authentification est rendue possible par des paires clés SSH publics et privés. La clé privée reste sur le PC du client pendant que la clé publique est copiée sur le serveur.

Pendant l'authentification de la clé SSH, le serveur vérifie si le PC client possède la clé privée. Si la vérification est réussie, une session de shell est créée ou la commande envoyée au serveur distant est exécutée avec succès. Nous avons un guide complet sur la façon de configurer l'authentification basée sur les clés SSH.

Même après avoir configuré l'authentification basée sur les clés, votre serveur est toujours sensible aux attaques de force brute pour la simple raison que l'authentification du mot de passe est toujours active. Cela doit être désactivé.

Par conséquent, modifiez le fichier de configuration SSH par défaut.

$ sudo vim / etc / ssh / sshd_config 

Met le PasswordAuthentication paramètre Non comme montré.

PasswordAuthentication Non 
Désactiver l'authentification du mot de passe SSH

Ensuite, enregistrez le fichier et rechargez SSH pour appliquer les modifications.

$ sudo systemctl reload ssh 

Mettre en œuvre l'outil de prévention des intrusions Fail2ban

Écrit en Python, Fail2ban est un cadre de prévention des intrusions open source qui analyse les fichiers journaux des services pour les défaillances d'authentification et interdit les IP qui échouent à plusieurs reprises l'authentification du mot de passe vérifie un temps spécifié.

Fail2ban Surveille constamment les fichiers journaux du serveur pour les tentatives d'intrusion et autres activités néfastes, après un nombre prédéfini de défaillances d'authentification - dans la plupart des cas, 3 tentatives de connexion échouées - Fail2ban bloque automatiquement l'hôte distant d'accès au serveur, et l'hôte est conservé dans un 'Prison'Pour une durée spécifique.

Ce faisant, Fail2ban réduit considérablement le taux de tentatives d'authentification de mot de passe incorrectes. Consultez notre guide sur la façon d'installer et de configurer Fail2ban sur Linux pour sécuriser votre serveur à partir d'attaques BruteForce.

Limiter le nombre maximum de tentatives d'authentification SSH

Un autre moyen simple de protéger votre serveur à partir d'attaques par force brute est de limiter le nombre de tentatives de connexion SSH. Par défaut, ceci est défini sur 3, mais si par hasard, cela est défini sur une valeur plus élevée, définissez-la sur 3 tentatives de connexion au plus.

Par exemple, pour définir les tentatives de connexion maximales sur 3 définir le Maxauthtries paramètre 3 comme montré

MaxAuthtries = 3 

Encore une fois, enregistrez les modifications et rechargez le service SSH.

$ sudo systemctl reload ssh 

Implémentez les emballages TCP pour limiter l'accès SSH des clients

TCP Wrappers est une bibliothèque qui fournit un hôte Liste de contrôle d'accès (ACL) qui restreint l'accès aux services TCP par des clients distants en fonction de leurs adresses IP

Hôtes éloignés de l'accès aux services sur le système. Les emballages TCP utilisent le / etc / hôtes.permettre et / etc / hôtes.refuser Fichiers de configuration (dans cet ordre) pour déterminer si le client distant est autorisé à accéder à un service spécifique ou non.

Habituellement, ces fichiers sont commentés et tous les hôtes sont autorisés via la couche TCP Wrappers. Les règles pour permettre l'accès à un service donné sont placées dans le / etc / hôtes.permettre déposer et prendre la priorité sur les règles du /etc / hôtes.refuser déposer.

La meilleure pratique recommande de bloquer toutes les connexions entrantes. Par conséquent, ouvrez le / etc / hôtes.refuser déposer.

$ sudo vim / etc / hôtes.refuser 

Ajouter la ligne suivante.

Tout: tout 

Enregistrer les modifications et quitter le fichier.

Puis accédez au / etc / hôtes.permettre déposer.

$ sudo vim / etc / hôtes.permettre 

Configurez les hôtes ou les domaines qui peuvent se connecter au serveur via SSH comme indiqué. Dans cet exemple, nous n'autorisons que deux hôtes distants à se connecter au serveur (173.82.227.89 et 173.82.255.55) et nier le reste.

SSHD: 173.82.227.89 173.82.255.55 SSHD: Tout: nier 
Limiter l'accès SSH aux clients

Enregistrer les modifications et quitter le fichier de configuration.

Pour le tester, essayez de vous connecter au serveur à partir d'un hôte qui ne fait pas partie de ceux auxquels vous avez autorisé l'accès. Vous devez obtenir une erreur d'autorisation comme indiqué.

$ ssh [Protégé par e-mail] KEX_EXCHANGE_IDENTIFICATION: LIRE: Connexion Réinitialiser par la connexion par les pairs Réinitialiser par 173.82.235.7 Port 22 Connexion perdue 

Implémenter l'authentification SSH deux facteurs

Authentification à deux facteurs Fournit une couche de sécurité supplémentaire à l'authentification du mot de passe, rendant ainsi votre serveur plus sécurisé à partir d'attaques brutales. Un largement utilisé Authentification à deux facteurs la solution est Application Google Authenticator Et nous avons un guide bien documenté sur la façon dont vous pouvez configurer l'authentification à deux facteurs.

Conclusion

C'était un résumé de 5 meilleures pratiques que vous pouvez mettre en œuvre pour empêcher Force brute ssh Connectez-vous et assurez-vous la sécurité de votre serveur. Vous pouvez également lire comment sécuriser et durcir le serveur OpenSSH.