Recherche de site Web

5 meilleures pratiques pour prévenir les attaques de connexion SSH Brute-Force sous Linux


Dans le monde technologique d’aujourd’hui, la sécurité est primordiale. Il est crucial de protéger nos systèmes contre tout accès non autorisé, et l'un des moyens les plus courants d'obtenir un accès non autorisé à un système Linux consiste à effectuer une attaque de connexion par force brute sur SSH. SSH (Secure Shell) est un protocole réseau utilisé pour accéder et gérer des systèmes distants en toute sécurité. Dans cet article, nous aborderons 5 bonnes pratiques pour empêcher les attaques de connexion par force brute SSH sous Linux.

Utilisez des mots de passe forts

La première étape pour sécuriser votre serveur SSH consiste à utiliser des mots de passe forts. Les mots de passe forts doivent comporter au moins 8 caractères, avec un mélange de lettres majuscules et minuscules, de chiffres et de caractères spéciaux. Évitez d'utiliser des mots de passe faciles à deviner tels que « password123 » ou « admin123 », qui peuvent être facilement déchiffrés par des attaques par force brute.

Pour créer des mots de passe forts, vous pouvez utiliser des générateurs de mots de passe en ligne, des gestionnaires de mots de passe ou même une combinaison de mots aléatoires. De plus, il est essentiel de changer votre mot de passe régulièrement, au moins une fois tous les trois mois.

Utiliser l'authentification par clé publique

L'authentification par clé publique est une méthode de connexion à un serveur SSH plus sécurisée que l'utilisation d'un mot de passe. Cette méthode consiste à créer une paire de clés publiques et privées, avec la clé publique stockée sur le serveur et la clé privée conservée en toute sécurité sur votre machine locale.

Lorsque vous vous connectez au serveur SSH, le serveur vérifiera votre clé publique pour authentifier votre identité. Cette méthode est plus sécurisée que l'utilisation d'un mot de passe car même si un attaquant parvient à mettre la main sur votre mot de passe, il ne pourra pas se connecter sans votre clé privée.

Pour utiliser l'authentification par clé publique, vous pouvez générer une paire de clés à l'aide de la commande ssh-keygen sur votre ordinateur local. Ensuite, copiez la clé publique dans le fichierauthorized_keys du serveur. Après cela, vous pouvez vous connecter au serveur en utilisant votre clé privée.

Modifier le port SSH par défaut

Par défaut, les serveurs SSH écoutent sur le port 22, bien connu des attaquants. Changer le port par défaut en un port aléatoire ou non standard peut rendre plus difficile aux attaquants de trouver votre serveur SSH et de lancer une attaque par force brute.

Pour changer le port SSH par défaut, vous devez modifier le fichier de configuration du serveur SSH, généralement situé dans /etc/ssh/sshd_config. Recherchez la ligne qui spécifie le numéro de port et remplacez-la par une valeur différente. Après cela, redémarrez le service SSH pour appliquer les modifications.

Il est essentiel de garder à l'esprit que la modification du port SSH par défaut n'empêchera pas toutes les attaques, mais elle peut rendre plus difficile la recherche de votre serveur par les attaquants.

Limiter l'accès SSH

Limiter l'accès SSH peut aider à empêcher tout accès non autorisé à votre serveur. Vous pouvez restreindre l'accès à des adresses IP ou à des plages de réseau spécifiques à l'aide d'un pare-feu. Ce faisant, vous pouvez autoriser l'accès uniquement à partir de sources fiables, telles que votre réseau professionnel ou votre réseau domestique.

Pour limiter l'accès SSH à l'aide d'un pare-feu, vous devez créer une règle qui autorise le trafic entrant vers le port SSH uniquement à partir d'adresses IP ou de plages réseau approuvées. Par exemple, si vous souhaitez autoriser l'accès uniquement à partir de l'adresse IP 192.168.1.100, vous pouvez créer une règle comme celle-ci -

iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT

Cette règle autorise le trafic entrant vers le port SSH uniquement à partir de l'adresse IP 192.168.1.100. Vous pouvez ajouter plus d'adresses IP ou de plages de réseau selon vos besoins.

Installer et utiliser Fail2ban

Fail2ban est un outil logiciel qui peut vous aider à protéger votre serveur SSH contre les attaques de connexion par force brute. Fail2ban surveille les journaux du serveur pour détecter les tentatives de connexion infructueuses et bloque l'adresse IP de l'attaquant après un certain nombre de tentatives infructueuses. Cela rend plus difficile pour les attaquants de lancer avec succès une attaque par force brute.

Pour installer Fail2ban sur votre serveur Linux, vous pouvez utiliser le gestionnaire de packages spécifique à votre distribution. Par exemple, sur les systèmes basés sur Debian, vous pouvez utiliser la commande apt-get -

sudo apt-get install fail2ban

Après l'installation, vous devez configurer Fail2ban pour surveiller vos journaux SSH. Par défaut, Fail2ban est livré avec un fichier de configuration pour SSH, situé dans /etc/fail2ban/jail.conf. Vous pouvez modifier ce fichier pour spécifier le nombre de tentatives de connexion échouées après lequel une adresse IP doit être bloquée.

Par exemple, si vous souhaitez bloquer une adresse IP après trois tentatives de connexion infructueuses, vous pouvez ajouter les lignes suivantes à la section SSH du fichier de configuration -

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Après avoir apporté des modifications, redémarrez le service Fail2ban pour appliquer la nouvelle configuration.

Désactiver la connexion root

Par défaut, l'utilisateur root a un accès complet au système et constitue une cible privilégiée pour les attaquants. Il est recommandé de désactiver la connexion root directe via SSH et d'utiliser à la place un compte utilisateur standard avec les privilèges sudo. De cette façon, même si un attaquant parvient à déchiffrer le mot de passe d'un compte utilisateur normal, il n'aura pas d'accès root au système.

Pour désactiver la connexion root, vous devez modifier le fichier de configuration du serveur SSH (/etc/ssh/sshd_config) et définir l'option PermitRootLogin sur "no".

Utiliser l'authentification à deux facteurs

L'authentification à deux facteurs (2FA) ajoute une couche de sécurité supplémentaire au processus de connexion SSH. En plus du mot de passe ou de la clé privée, 2FA exige que l'utilisateur fournisse un deuxième facteur, tel qu'un code généré par une application pour smartphone ou un jeton physique.

Pour activer 2FA pour SSH, vous pouvez utiliser un outil comme Google Authenticator ou Authy, qui génère des mots de passe à usage unique basés sur le temps (TOTP). Vous devrez installer l'outil 2FA sur votre ordinateur local et votre serveur SSH et configurer les deux pour utiliser le même secret TOTP.

Surveiller les journaux SSH

La surveillance de vos journaux SSH peut vous aider à détecter et à prévenir les attaques de connexion par force brute et autres incidents de sécurité. Vous pouvez utiliser des outils tels que Logwatch, Logrotate ou Logwatcher pour surveiller vos journaux SSH et vous alerter lorsqu'une activité inhabituelle est détectée.

Il est également important de consulter régulièrement vos journaux SSH pour identifier toute tentative de connexion suspecte, toute adresse IP inhabituelle ou toute tentative de connexion infructueuse. Ce faisant, vous pouvez rapidement prendre des mesures pour prévenir une éventuelle faille de sécurité.

Gardez votre système à jour

Garder votre système Linux à jour avec les derniers correctifs et mises à jour de sécurité est essentiel pour prévenir les vulnérabilités et les exploits connus. Vous devez régulièrement vérifier les mises à jour et les appliquer dès que possible.

De plus, il est essentiel de vérifier régulièrement toute modification non autorisée de la configuration ou des fichiers de votre serveur SSH, car elles pourraient être le signe d'une faille de sécurité.

Utiliser un hôte Bastion ou un Jump Server

Un hôte bastion ou serveur de saut est un serveur dédié qui agit comme un point d'entrée unique à votre réseau ou infrastructure. Toutes les connexions SSH à votre réseau sont acheminées via un hôte bastion, qui peut être configuré pour appliquer des politiques de sécurité, telles que le contrôle d'accès et l'authentification.

L'utilisation d'un hôte bastion ou d'un serveur de saut peut vous aider à réduire la surface d'attaque de votre réseau et à empêcher tout accès non autorisé à vos systèmes.

Conclusion

En résumé, sécuriser votre serveur SSH est essentiel pour empêcher tout accès non autorisé à votre système Linux. En suivant les 5 bonnes pratiques mentionnées ci-dessus, vous pouvez réduire considérablement le risque d'attaque de connexion par force brute sur votre serveur SSH. N'oubliez pas d'utiliser des mots de passe forts, d'activer l'authentification par clé publique, de modifier le port SSH par défaut, de limiter l'accès SSH, et d'installer et d'utiliser Fail2ban pour surveiller vos journaux SSH. En mettant en œuvre ces pratiques, vous pouvez assurer la sécurité de votre système Linux et protéger vos données contre tout accès non autorisé.