Recherche de site Web

5 meilleures pratiques de sécurité pour les serveurs OpenSSH


SSH (Secure Shell) est un protocole réseau open source qui est utilisé pour connecter des serveurs Linux locaux ou distants afin de transférer des fichiers, d’effectuer des sauvegardes à distance, d’exécuter des commandes à distance et d’autres tâches liées au réseau via la commande scp ou la commande sftp entre deux serveurs qui se connectent sur un canal sécurisé sur le réseau.

Dans cet article, je vais vous montrer quelques outils et astuces simples qui vous aideront à renforcer la sécurité de votre serveur ssh. Vous trouverez ici des informations utiles sur la façon de sécuriser et de protéger les serveurs ssh contre les attaques par force brute et par dictionnaire.

1. Refuser les hôtes

DenyHosts est un script de sécurité de prévention des intrusions open source basé sur des journaux pour les serveurs SSH, écrit dans un langage de programmation python destiné à être exécuté par les administrateurs système Linux et les utilisateurs pour surveiller et analyser les journaux d’accès au serveur SSH à la recherche d’échecs de tentatives de connexion, connues sous le nom d’attaques basées sur un dictionnaire et d’attaques par force brute.

Le script fonctionne en bannissant les adresses IP après un certain nombre de tentatives de connexion infructueuses et en empêchant également ces attaques d’accéder au serveur.

Caractéristiques de DenyHosts
  • Garde une trace de /var/log/secure pour trouver toutes les tentatives de connexion réussies et échouées et les filtre.
  • Garde un œil sur toutes les tentatives de connexion infructueuses de l’utilisateur et de l’hôte incriminé.
  • Surveille en permanence chaque utilisateur existant et inexistant (par exemple. xyz) lors d’une tentative de connexion infructueuse.
  • Garde une trace de chaque utilisateur, hôte et tentative de connexion suspecte (en cas d’échec de connexion) bannit cette adresse IP d’hôte en ajoutant une entrée dans le fichier /etc/hosts.deden.
  • Envoie éventuellement une notification par e-mail des hôtes récemment bloqués et des connexions suspectes.
  • Conserve également toutes les tentatives de connexion d’utilisateur valides et invalides ayant échoué dans des fichiers séparés afin de faciliter l’identification de l’utilisateur valide ou invalide attaqué. Ainsi, nous pouvons supprimer ce compte ou changer le mot de passe, ou désactiver le shell pour cet utilisateur.

2. Fail2Ban

Fail2ban est l’un des frameworks open-source de détection/prévention des intrusions les plus populaires, écrit dans un langage de programmation python. Il fonctionne en analysant les fichiers journaux tels que /var/log/secure, /var/log/auth.log, /var/log/pwdfail, etc. à la recherche d’un trop grand nombre de tentatives de connexion infructueuses.

Fail2ban est utilisé pour mettre à jour le fichier hosts.deny de Netfilter/iptables ou TCP Wrapper, afin de rejeter l’adresse IP d’un attaquant pendant une durée déterminée. Il a également la capacité de débloquer une adresse IP bloquée pour une certaine période de temps définie par les administrateurs. Cependant, une certaine minute de débannissement est plus que suffisante pour arrêter de telles attaques malveillantes.

Caractéristiques de Fail2Ban
  • Multithread et hautement configurable.
  • Prise en charge de la rotation des fichiers journaux et peut gérer plusieurs services tels que (sshd, vsftpd, apache, etc.).
  • Surveille les fichiers journaux et recherche des modèles connus et inconnus.
  • Utilise Netfilter/Iptables et la table TCP Wrapper (/etc/hosts.deny) pour bannir l’IP des attaquants.
  • Exécute des scripts lorsqu’un motif donné a été identifié pour la même adresse IP plus de X fois.

3. Désactiver la connexion root

Par défaut, les systèmes Linux sont préconfigurés pour permettre les connexions à distance ssh pour tout le monde, y compris l’utilisateur root lui-même, ce qui permet à tout le monde de se connecter directement au système et d’obtenir un accès root. Malgré le fait que le serveur ssh permet un moyen plus sûr de désactiver ou d’activer les connexions root, c’est toujours une bonne idée de désactiver l’accès root, ce qui permet de garder les serveurs un peu plus sûrs.

Il y a tellement de gens qui essaient de forcer les comptes root via des attaques SSH en fournissant simplement différents noms de compte et mots de passe, l’un après l’autre. Si vous êtes administrateur système, vous pouvez consulter les journaux du serveur ssh, où vous trouverez un certain nombre de tentatives de connexion infructueuses. La principale raison d’un certain nombre de tentatives de connexion infructueuses est d’avoir des mots de passe suffisamment faibles, ce qui est logique pour les pirates/attaquants.

Si vous avez des mots de passe forts, vous êtes probablement en sécurité, cependant, il est préférable de désactiver la connexion root et d’avoir un compte séparé habituel pour vous connecter, puis d’utiliser sudo ou su pour obtenir un accès root chaque fois que nécessaire.

4. Affichage de la bannière SSH

C’est l’une des fonctionnalités les plus anciennes disponibles depuis le début du projet ssh, mais j’ai à peine vu qu’elle soit utilisée par quiconque. Quoi qu’il en soit, je pense que c’est une fonctionnalité importante et très utile que j’ai utilisée pour tous mes serveurs Linux.

Ce n’est pas à des fins de sécurité, mais le plus grand avantage de cette bannière est qu’elle est utilisée pour afficher des messages d’avertissement ssh pour les accès autorisés par l’ONU et des messages de bienvenue pour les utilisateurs autorisés avant l’invite de mot de passe et après que l’utilisateur se soit connecté.

5. Connexion SSH sans mot de passe

Une connexion SSH sans mot de passe avec SSH keygen établira une relation de confiance entre deux serveurs Linux, ce qui facilitera grandement le transfert et la synchronisation des fichiers.

Ceci est très utile si vous avez affaire à des sauvegardes automatisées à distance, à l’exécution de scripts à distance, au transfert de fichiers, à la gestion de scripts à distance, etc. sans entrer le mot de passe à chaque fois.

Pour sécuriser davantage votre serveur SSH, lisez notre article sur Comment sécuriser et renforcer le serveur OpenSSH

Articles connexes: