GNU/Linux >> Tutoriels Linux >  >> Linux

[Linux] :Top 12 des fonctionnalités de sécurité à activer sur le serveur SSH !

Vous pouvez trouver plusieurs façons d'accéder à distance à un shell (ligne de commande) sur la plupart des systèmes Linux/Unix. L'une des méthodes les plus anciennes consiste à utiliser le programme telnet. Accéder à un shell via telnet pose des menaces de sécurité car les messages passant entre le client et le serveur sont en texte brut ! Ainsi, quiconque peut « renifler » la connexion entre les deux peut voir votre nom d'utilisateur, votre mot de passe et bien d'autres. Pour ces raisons, vous avez besoin d'un programme plus sophistiqué que telnet pour vous connecter à un hôte distant.

SSH, qui est un acronyme pour Secure SHell, a été conçu et créé pour fournir la meilleure sécurité lors de l'accès à distance à un autre ordinateur. Non seulement il crypte la session, mais il fournit également de meilleures fonctionnalités d'authentification, ainsi que des fonctionnalités telles que le transfert de fichiers sécurisé, le transfert de session X, le transfert de port, etc., afin que vous puissiez augmenter la sécurité des autres protocoles. Autoriser la connexion à distance via SSH est utile à des fins administratives, mais peut constituer une menace pour la sécurité de votre serveur. Souvent la cible d'attaques par force brute, l'accès SSH doit être correctement limité pour empêcher des tiers d'accéder à votre serveur. Dans cet article, nous verrons comment sécuriser SSH.

Il existe deux fichiers de configuration "ssh_config" et "sshd_config" sous le répertoire /etc/ssh/. Le fichier ssh_config contient la configuration relative aux connexions SSH sortantes. où le fichier sshd_config contient des paramètres de configuration qui contrôlent les connexions SSH entrantes vers le serveur lui-même. ~/.ssh/ correspond au répertoire de configuration SSH des utilisateurs.

1. Comment définir des noms d'utilisateur/mots de passe forts

Le serveur SSH en cours d'exécution et exposé au monde extérieur serait la cible principale des attaques par force brute ! En règle générale, un pirate recherchera le port 22 pour trouver des machines sur lesquelles ssh est en cours d'exécution, puis tentera une attaque par force brute contre celui-ci. Avec des mots de passe forts en place, vous pouvez bloquer les pirates avant qu'ils ne réussissent. J'espère que vous utilisez déjà des mots de passe forts, mais si ce n'est pas le cas, essayez de choisir des mots de passe contenant :

  1. Minimum de 8 caractères
  2. Mélange de lettres majuscules et minuscules
  3. Mélange de lettres et de chiffres
  4. Caractères non alphanumériques (par exemple, des caractères spéciaux tels que !" £ $ % ^ etc.)

Si vos utilisateurs choisissent toujours des mots de passe faibles, alors créez des noms d'utilisateur qui seraient difficiles à deviner par les pirates ! Cela rend les pirates difficiles à deviner les noms d'utilisateur sans lesquels ils ne peuvent pas forcer brutalement le mot de passe (assurez-vous que les utilisateurs ne divulguent pas les noms d'utilisateur). Évitez les noms d'utilisateur courants tels que admin, henry, bob, etc.

2. Comment désactiver la connexion à distance avec des mots de passe vides

Cette fonctionnalité nécessite d'indiquer explicitement au serveur SSH d'interdire la connexion à distance pour les comptes avec des mots de passe vides. À l'aide de votre éditeur préféré, ouvrez /etc/ssh/sshd_config fichier et recherchez les lignes ci-dessous :

#PermitEmptyPasswords no

Supprimez le symbole # et modifiez le non à oui .

PermitEmptyPasswords yes

Après modification n'oubliez pas de redémarrer sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

3. Comment désactiver la connexion à distance pour l'utilisateur root sur une machine Linux

Vous pouvez consulter notre article précédent : Comment désactiver la connexion à distance pour l'utilisateur root sur une machine Linux

4. Comment autoriser uniquement des utilisateurs spécifiques à se connecter via SSH

Vous pouvez consulter notre article précédent : comment autoriser ou refuser à des comptes d'utilisateurs spécifiques de se connecter à distance au serveur Linux.

5. Comment changer le port d'écoute SSH par défaut

Par défaut, le serveur SSH écoute les connexions sur le port 22. Les attaquants utilisent un logiciel d'analyse de port tel que nmap pour rechercher un port ouvert. Il est conseillé de remplacer le port SSH par un nombre supérieur à 1 024, car la plupart des analyseurs de ports n'analysent pas les ports supérieurs.

À l'aide de votre éditeur préféré, ouvrez le fichier /etc/ssh/sshd_config et recherchez la ligne indiquant :

Port 22

Changez le numéro de port comme :

Port 2222

après modification n'oubliez pas de redémarrer sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

Une fois le numéro de port du serveur SSH modifié, vous pouvez vous connecter à distance en spécifiant le numéro de port comme indiqué ci-dessous :

ssh -p 2222 useranme@servername

6. Autoriser uniquement le protocole SSH 2

Le serveur SSH prend en charge deux protocoles, à savoir 1 et 2. L'ancien protocole 1 est sujet à des problèmes de sécurité, y compris l'intercepteur et des vulnérabilités de sécurité. Le protocole SSH 2 est plus sécurisé que le protocole 1. Le serveur SSH sur le dernier système d'exploitation est livré avec le protocole 2 activé. Dans le cas où il fait référence à plusieurs protocoles comme indiqué ci-dessous, modifiez pour activer uniquement le protocole 2 comme indiqué ci-dessous :

À l'aide de votre éditeur préféré, ouvrez le fichier /etc/ssh/sshd_config et recherchez la ligne indiquant :

Protocol 2,1

Changez la ligne pour qu'elle indique uniquement le protocole 2 !

Protocol 2

Après modification n'oubliez pas de redémarrer sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

7. Comment limiter la connexion à distance à des utilisateurs spécifiques à partir d'une adresse IP spécifique ?

Si vous êtes sûr que votre serveur SSH serait utilisé par des utilisateurs d'hôtes très spécifiques. Par exemple :un serveur SSH accessible uniquement par des utilisateurs d'un réseau local d'organisation, alors il est préférable de permettre aux utilisateurs de se connecter à partir d'un hôte spécifique. Pour cela suivez la procédure ci-dessous :

À l'aide de votre éditeur préféré, ouvrez le fichier /etc/ssh/sshd_config et ajoutez la ligne ci-dessous :

AllowUsers [email protected]

Vous pouvez également bloquer une plage d'adresses IP comme ci-dessous :

AllowUsers [email protected].*
AllowUsers [email protected].*.*

Après modification n'oubliez pas de redémarrer sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

8. Comment arrêter les attaques SSH automatisées basées sur des robots ?

Vous pouvez consulter notre article précédent - Comment arrêter les attaques SSH automatisées basées sur des bots ?

9. Comment hacher les fichiers hôtes connus

Reportez-vous à notre article précédent : Comment hacher les fichiers hôtes connus du répertoire ~/.ssh/

10. Comment configurer l'intervalle de délai d'expiration de la déconnexion en cas d'inactivité pour SSH

Les utilisateurs se connectent souvent à distance et oublient de se déconnecter ! Une session inactive peut entraîner un risque de sécurité. Les administrateurs doivent définir un délai d'inactivité pour déconnecter ces sessions inactives. Pour définir l'intervalle de temporisation pour la déconnexion en veille, suivez les instructions ci-dessous :

À l'aide de votre éditeur préféré, ouvrez /etc/ssh/sshd_config fichier et recherchez les lignes ci-dessous :

#ClientAliveInterval 0

Supprimez le symbole # et modifiez ClientAliveInterval sur 300 (l'intervalle de temporisation est en secondes, c'est-à-dire 300 secondes =15 minutes). Une fois cet intervalle écoulé, l'utilisateur inactif sera automatiquement déconnecté.

ClientAliveInterval 300

Après modification n'oubliez pas de redémarrer sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

11. Comment configurer l'analyseur de journaux pour SSH

La journalisation de l'activité des utilisateurs fournira toujours à l'administrateur des informations supplémentaires sur l'activité des utilisateurs sur le serveur. En plus d'outils tels que LogWatch, ils peuvent vous simplifier la vie en lisant tous les journaux pendant une période donnée et en créant un rapport dans un format lisible et convivial.

À l'aide de votre éditeur préféré, ouvrez /etc/ssh/sshd_config fichier et recherchez les lignes ci-dessous :

#LogLevel INFO

Supprimez le symbole # et redémarrez le service sshd comme indiqué ci-dessous :

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

12. Vérifiez la configuration SSH avant de redémarrer le démon "sshd"

Lorsque vous apportez des modifications à sshd_config , assurez-vous de n'avoir laissé aucune erreur. Exécutez la commande ci-dessous pour vérifier si sshd_config contient des erreurs avant de redémarrer SSH serveur.

# /usr/sbin/sshd -t

maintenant, redémarrez le service comme ci-dessous :

# /etc/init.d/sshd restart

(ou)

# service sshd restart

Linux
  1. Top 7 des conseils de renforcement de la sécurité pour le serveur CentOS 8 / RHEL 8

  2. Meilleures pratiques de sécurité OpenSSH

  3. Comment activer le service SSH dans Ubuntu 22.04 LTS

  4. Activer SSH sur CentOS 8 - Meilleure méthode ?

  5. Dépanner SSH

Comment installer le serveur SSH dans Ubuntu 20.04

Comment activer le serveur SSH sur Ubuntu 22.04

Top 10 des fonctionnalités SSH que vous DEVEZ connaître pour être plus productif

Utilisation du transfert de port SSH comme outil de sécurité sous Linux

Comment activer le ping sur Windows Server 2008 R2

5 meilleures pratiques de sécurité Linux SSH pour sécuriser vos systèmes