GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Meilleures pratiques de sécurité OpenSSH

SSH (Secure Shell) est un protocole réseau cryptographique permettant d'initier de manière sécurisée des sessions shell textuelles sur des machines distantes.

OpenSSH est le client et serveur SSH standard utilisé par la plupart des distributions Linux. Il s'agit d'un outil de connectivité sur lequel la plupart des administrateurs s'appuient pour travailler sur leurs serveurs Linux et *BSD. OpenSSH crypte tout le trafic (y compris les mots de passe) pour éliminer efficacement l'écoute clandestine, le détournement de connexion et d'autres attaques. Donc en d'autres termes "OpenSSH garantit que la connexion à votre serveur est sécurisée". Voir l'article de Wikipedia pour un excurs détaillé sur SSH.

Ce didacticiel couvre les meilleures pratiques pour configurer votre serveur SSH en toute sécurité.

Sécurité OpenSSH

Voici les six tâches les plus importantes pour sécuriser la configuration de votre serveur SSH :

  1. Utilisez un mot de passe fort.
  2. Modifier le port SSH par défaut.
  3. Utilisez toujours la version 2 du protocole.
  4. Désactivez la connexion racine.
  5. Limiter l'accès des utilisateurs.
  6. Utilisez l'authentification par clé.

Utiliser un mot de passe fort

Un mot de passe est un mot ou une chaîne de caractères utilisés pour l'authentification de l'utilisateur afin de prouver son identité ou son approbation d'accès pour accéder à une ressource. Gardez-le secret pour ceux qui ne sont pas autorisés à accéder au serveur. Utilisez un mot de passe complexe et long, il doit être facile à retenir et unique selon vous mais pas facile à deviner pour les autres . N'utilisez pas `admin123` ou `admin` etc. qui sont faciles à deviner et n'utilisez pas les anniversaires, le nom de votre femme, etc. Un bon mot de passe doit également contenir des caractères spéciaux comme '.!;/' (pas seulement les caractères a-c et 0-9). Utilisez des caractères majuscules et minuscules dans le mot de passe.

Modifier le port SSH par défaut

Le poste par défaut du service SSH est 22, vous devez le modifier pour qu'il soit moins évident que votre serveur exécute un service SSH. Le fichier de configuration SSH se trouve dans le répertoire /etc/sshd/, vous devez éditer le fichier de configuration /etc/ssh/sshd_config .

nano /etc/ssh/sshd_config

Recherchez la ligne "Port" :

Port 22

et remplacez-le par votre numéro de port préféré, exemple :1337

Port 1337

Veuillez choisir un port qui n'est pas encore utilisé sur votre serveur. Vous pouvez obtenir une liste des ports actuellement utilisés avec la commande :

netstat -ntap

Cette commande génère une liste assez longue qui affiche tous les ports et connexions ouverts. Si vous souhaitez simplement vérifier si le port souhaité est disponible, utilisez plutôt cette commande :

netstat -ntap | grep 4422

Dans cet exemple, je vais vérifier si le port 4422 est libre. Si la commande ne renvoie pas de résultat, le port est disponible et peut être utilisé pour SSH.

Toujours utiliser le protocole 2

SSH a deux versions de protocole, l'ancien protocole 1 qui n'est pas sécurisé et le nouveau protocole 2. Utilisez donc toujours le protocole 2 pour votre serveur ssh, il est plus sécurisé que le protocole 1. Plus d'informations ici.

Désactiver la connexion root

Vous devez désactiver la connexion directe pour l'utilisateur root car il existe de nombreuses attaques par force brute contre le nom du superutilisateur root. IMPORTANT :testez la connexion SSH avec votre autre utilisateur non root que vous prévoyez d'utiliser pour les connexions ssh avant de désactiver le compte root.

PermitRootLogin no

Après avoir défini "PermitRootLogin" sur "no", vous ne pouvez plus vous connecter avec un compte root, bien que vous utilisiez le mot de passe correct pour l'utilisateur root.

Limiter l'utilisateur

Vous devez ajouter un nouvel utilisateur pour vous connecter à votre serveur. Supposons que vous ayez créé les utilisateurs ruiko et mikoto pour vous connecter à votre serveur, vous pouvez alors ajouter la nouvelle ligne :

AllowUsers ruiko mikoto

dans /etc/ssh/sshd_config pour limiter l'accès SSH à ces utilisateurs.

Utiliser l'authentification basée sur une clé

Je vous ai recommandé d'utiliser cette option car elle est très facile à configurer et plus sécurisée que l'authentification par mot de passe. Vous devez d'abord créer une paire de clés publique-privée sur votre ordinateur local (de bureau), j'utilise Linux pour le créer.

Vous pouvez créer la paire de clés publique/privée avec cette commande :

ssh-keygen -t rsa -b 4096

Il créera 2 fichiers situés dans le répertoire ~/.ssh/, id_rsa comme clé privée et id_rsa.pub comme clé publique. S'il vous demande un mot de passe, vous pouvez le laisser vide ou saisir votre mot de passe. Il est recommandé d'utiliser un mot de passe pour protéger votre clé.

Téléchargez maintenant la clé publique id_rsa.pub sur votre serveur avec la commande ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Il écrira automatiquement votre clé publique dans le fichier ~/.ssh/authorized_keys/ de votre serveur.

Revenez maintenant sur votre serveur et modifiez à nouveau la configuration de votre fichier ssh.

nano /etc/ssh/sshd_config

Décommentez cette ligne :

AuthorizedKeysFile     %h/.ssh/authorized_keys

et enfin redémarrez votre serveur ssh :

systemctl restart sshd

Essayez maintenant de vous connecter à votre serveur :

ssh -p '4422' '[email protected]'

Conclusion

OpenSSH est la norme pour l'accès à distance sécurisé aux serveurs de type *Unix, remplaçant le protocole telnet non chiffré. SSH (et son sous-protocole de transfert de fichiers SCP) garantit que la connexion de votre ordinateur local au serveur est cryptée et sécurisée. L'installation de base d'OpenSSH est déjà assez sécurisée, mais nous pouvons l'améliorer en suivant le guide ci-dessus.


Ubuntu
  1. Comment installer le serveur SSH sur Ubuntu / Debian avec OpenSSH

  2. Meilleures pratiques de sécurité des serveurs Linux

  3. Meilleures pratiques de sécurité des serveurs Windows

  4. Meilleures pratiques de sécurité Wordpress sous Linux

  5. Les meilleures pratiques du serveur Nagios ?

Durcissement du serveur Linux – Meilleures pratiques

Comment installer OpenSSH sur Ubuntu 20.04

Serveur SSH

Comment installer le serveur OpenSSH sur Ubuntu 20.04 LTS

Configuration du serveur Ubuntu - Meilleures pratiques de sécurité

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