Comment sécuriser un serveur SSH

Comment sécuriser un serveur SSH

La sécurisation des connexions SSH vous aide à protéger votre système Linux et vos données. Les administrateurs système et les utilisateurs à domicile doivent également sécuriser les ordinateurs connectés à Internet. Voici 10 façons simples de vous aider à sécuriser votre serveur SSH .

Quelques notions de base sur la sécurité SSH

SSH signifie Secure Shell. Le protocole ou outil logiciel SSH permet aux administrateurs système et aux utilisateurs d'établir des connexions sécurisées avec des ordinateurs distants à l'aide de ce protocole.

Le protocole SSH est un protocole crypté conçu pour fournir une connexion sécurisée sur un réseau non sécurisé tel qu'Internet. SSH sous Linux est construit sur la version portable du projet OpenSSH. Il est implémenté dans un modèle client-serveur classique avec un serveur SSH acceptant les connexions des clients SSH. Le client est utilisé pour se connecter au serveur et exposer la session aux utilisateurs distants. Le serveur accepte la connexion et lance la session.

Dans sa configuration par défaut, le serveur SSH « écoutera » les connexions entrantes sur le port 22 du protocole de contrôle de transmission (TCP). Puisqu'il s'agit d'un port standardisé et populaire, il constitue une cible pour les menaces et les robots malveillants.

Les acteurs malveillants lancent des robots qui analysent des plages d' adresses IP à la recherche de ports ouverts. Il sonde ensuite ces ports à la recherche de vulnérabilités exploitables. Penser que je suis en sécurité, qu'il existe de nombreuses cibles plus grandes et meilleures que moi que les méchants peuvent cibler est complètement faux. Ces robots ne choisissent leurs cibles sur la base d’aucun critère, ils cherchent simplement un moyen de pénétrer dans le système.

Vous serez une victime si vous ne sécurisez pas votre système.

Friction de sécurité

Un point de friction de sécurité est toute situation dans laquelle la tâche principale est empêchée ou retardée en raison d’exigences de sécurité.

Les frictions en matière de sécurité provoquent un inconfort (à tous les niveaux) pour les utilisateurs et les autres lorsque vous mettez en œuvre des mesures de sécurité. Les nouveaux utilisateurs de systèmes informatiques peuvent se demander s'ils devront réellement saisir un mot de passe à chaque fois qu'ils se connecteront à l'ordinateur central. Pour eux, il s’agit également d’une forme de friction sécuritaire.

L’introduction de mesures de sécurité entraînera souvent une certaine forme de friction pour certaines personnes. Les propriétaires d'entreprises doivent payer pour ces mesures. Les utilisateurs d'ordinateurs devront peut-être changer leurs habitudes ou mémoriser différentes informations d'authentification, ajoutant ainsi des étapes pour se connecter avec succès. Les administrateurs système auront un travail supplémentaire à faire pour mettre en œuvre et maintenir les nouvelles mesures de sécurité.

Le renforcement et le verrouillage d'un système d'exploitation Linux ou de type Unix peuvent être rapides. Les mesures de sécurité présentées ici sont un ensemble d'étapes faciles à suivre qui amélioreront la sécurité informatique sans avoir recours à des applications tierces ni à une intervention approfondie du pare-feu .

Utiliser le protocole SSH version 2

En 2006, le protocole SSH a été mis à jour de la version 1 à la version 2. Il s'agit d'une mise à niveau significative. Il existe de nombreux changements et améliorations, notamment en matière de chiffrement et de sécurité, et la version 2 n'est pas rétrocompatible avec la version 1. Pour empêcher les connexions des clients de la version 1, vous pouvez spécifier que les ordinateurs n'acceptent que les connexions de la version 2.

Pour ce faire, éditez le fichier /etc/ssh/sshd_config à l'aide de la commande suivante :

sudo gedit /etc/ssh/sshd_config

Comment sécuriser un serveur SSH

Ajoutez la ligne suivante :

Protocol 2

Comment sécuriser un serveur SSH

Et enregistrez le fichier, puis redémarrez le processus démon SSH à l'aide de la commande suivante :

sudo systemctl restart sshd

Comment sécuriser un serveur SSH

Testez la nouvelle configuration en action en passant à une autre machine et en essayant de vous connecter en SSH à la machine de test. Nous utiliserons l'option -1 (protocole 1) pour forcer la commande ssh à utiliser la version 1 du protocole.

ssh -1 [email protected]

Comment sécuriser un serveur SSH

Demande de connexion refusée. Assurez-vous que vous pouvez toujours vous connecter au protocole 2. Nous utiliserons -2 (protocole 2) pour tester.

ssh -2 [email protected]

Comment sécuriser un serveur SSH

Le fait que le serveur SSH demande un mot de passe est un signe positif que la connexion a été établie et que vous interagissez avec le serveur. Les clients SSH modernes utiliseront par défaut le protocole 2, nous n'avons pas besoin de spécifier le protocole 2 à condition que le client soit à jour.

ssh [email protected]

Comment sécuriser un serveur SSH

La connexion a été acceptée.

Évitez la porte 22

Le port 22 est le port standard pour les connexions SSH. Si un port différent est utilisé, cela ajoute un peu de sécurité par obscurité (STO) à votre système. La sécurité par l’ambiguïté ne doit jamais être considérée comme une véritable mesure de sécurité. En fait, certains robots d'attaque plus intelligents sondent tous les ports ouverts et décident quel service ils effectuent, plutôt que de s'appuyer sur une simple liste de recherche de ports et de supposer qu'ils fournissent un service normalement. Mais l’utilisation d’un port non standard peut contribuer à réduire le mauvais trafic sur le port 22.

Pour configurer un port non standard, modifiez le fichier de configuration SSH comme ci-dessus.

Comment sécuriser un serveur SSH

Supprimez le # au début de la ligne Port et remplacez 22 par le numéro de votre choix. Enregistrez le fichier de configuration et redémarrez le démon SSH.

Sur un autre ordinateur, nous utiliserons la commande ssh pour nous connecter au serveur. La commande ssh par défaut utilise le port 22 :

ssh [email protected]

Comment sécuriser un serveur SSH

Connexion rejetée. Réessayez et spécifiez le port 470 à l'aide de l' option –p (port) :

ssh -p 479 [email protected]

Comment sécuriser un serveur SSH

Connexion confirmée.

Connectez le filtre à l'aide de TCP Wrappers

Les TCP Wrappers sont une liste de contrôle d'accès facile à comprendre. Il vous permet de refuser et d'autoriser les connexions en fonction des caractéristiques de la demande de connexion telles que l'adresse IP ou le nom d'hôte. Les TCP Wrappers doivent être utilisés avec, et non à la place, un pare-feu correctement configuré.

TCP Wrappers est préinstallé sur les machines Ubuntu 18.04 LTS . Il doit être installé sur Manjaro 18.10 et Fedora 30.

Pour installer sur Fedora, utilisez la commande suivante :

sudo yum install tcp_wrappers

Comment sécuriser un serveur SSH

Pour installer sur Manjaro, utilisez cette commande :

sudo pacman -Syu tcp-wrappers

Comment sécuriser un serveur SSH

Deux fichiers sont inclus, un fichier contient la liste autorisée et un fichier contient la liste refusée. Modifiez la liste de refus à l'aide de la commande suivante :

sudo gedit /etc/hosts.deny

Comment sécuriser un serveur SSH

La commande ci-dessus ouvrira l'éditeur gedit avec le fichier refusant de s'y charger.

Comment sécuriser un serveur SSH

Il faut ajouter la ligne :

ALL : ALL

Et enregistrez le fichier. Cette ligne bloquera tout accès non autorisé. Maintenant, nous devons accorder des autorisations aux connexions que vous souhaitez accepter. Pour ce faire, vous devez éditer le fichier de permissions :

sudo gedit /etc/hosts.allow

Comment sécuriser un serveur SSH

La commande ci-dessus ouvrira l'éditeur gedit contenant le fichier téléchargeable.

Comment sécuriser un serveur SSH

Nous avons ajouté le nom du démon SSH, SSHD, et l'adresse IP de l'ordinateur qui permet d'établir la connexion. Enregistrez le fichier et voyez si les restrictions et autorisations sont en vigueur.

Tout d’abord, vous allez essayer de vous connecter depuis un ordinateur qui n’est pas dans le fichier hosts.allow :

Comment sécuriser un serveur SSH

Connexion rejetée. Nous allons essayer de nous connecter depuis une machine avec l'adresse IP 192.168.4.23 :

Comment sécuriser un serveur SSH

Connexion acceptée.

L'exemple ici permet à une seule machine de se connecter. Les wrappers TCP sont assez flexibles, ils prennent en charge les noms d'hôte, les caractères génériques et les masques de sous-réseau pour accepter les connexions à partir de plages d'adresses IP.

Rejeter les demandes de connexion sans mot de passe

Bien que ce ne soit pas une bonne chose, les administrateurs système Linux peuvent créer des comptes d'utilisateurs sans mot de passe. Cela signifie qu'aucun mot de passe n'est requis pour les connexions à distance à partir de ce compte. Ces connexions seront acceptées mais non authentifiées.

Le paramètre par défaut pour SSH accepte les demandes de connexion sans mot de passe. Nous pouvons le modifier facilement et nous assurer que toutes ces connexions sont authentifiées.

Vous devez modifier le fichier de configuration SSH.

Comment sécuriser un serveur SSH

Faites défiler le fichier vers le bas jusqu'à ce que vous voyiez la ligne indiquant #PermitEmptyPasswords no . Supprimez # au début de la ligne et enregistrez le fichier. Redémarrez le démon SSH.

Utilisez des clés SSH au lieu de mots de passe

Les clés SSH offrent un moyen sécurisé de se connecter à un serveur SSH. Les mots de passe peuvent être déchiffrés, devinés ou forcés brutalement . Les clés SSH ne sont pas vulnérables à ce type d'attaques.

Lors de la génération d'une clé SSH, vous créez une paire de clés. L’une est la clé publique et l’autre la clé privée. La clé publique est installée sur les serveurs auxquels vous souhaitez vous connecter. La clé privée est conservée en toute sécurité sur votre ordinateur.

Les clés SSH permettent d'établir des connexions sans mot de passe, ce qui est plus sécurisé que les connexions utilisant l'authentification par mot de passe.

Lors d'une demande de connexion, l'ordinateur distant utilise une copie de la clé publique pour créer un message crypté renvoyé à l'ordinateur. Puisqu’il est chiffré avec la clé publique, l’ordinateur peut le déchiffrer avec la clé privée.

L'ordinateur extrait ensuite certaines informations du message, les crypte et les renvoie au serveur. Si le serveur peut le déchiffrer avec une copie de la clé publique. Si les informations contenues dans le message correspondent à ce que le serveur vous a envoyé, la connexion sera confirmée.

Ici, la connexion est établie au serveur au 192.168.4.11 par l'utilisateur avec la clé SSH. Notez qu'ils ne sont pas invités à saisir un mot de passe.

ssh [email protected]

Comment sécuriser un serveur SSH

Désactivez complètement l'authentification par mot de passe

Vous pouvez désactiver complètement l'authentification par mot de passe si vous utilisez des clés SSH. Nous devons modifier le fichier de configuration SSH.

Comment sécuriser un serveur SSH

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne qui commence par #PasswordAuthentication yes . Supprimez # au début de la ligne, remplacez oui par non et enregistrez le fichier. Redémarrez le démon SSH.

Désactiver le transfert X11

Le transfert X11 permet aux utilisateurs distants d'exécuter des applications graphiques depuis votre serveur via une session SSH, mais est facilement exploité par des acteurs malveillants. Il est préférable de le désactiver en éditant le fichier de configuration SSH.

Comment sécuriser un serveur SSH

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne #X11Forwarding no , supprimez le # au début de la ligne et enregistrez le fichier. Redémarrez le démon SSH.

Définir la valeur du délai d'inactivité

Si une connexion SSH est établie avec un ordinateur et qu'il n'y a aucune activité dessus pendant un certain temps, cela peut présenter un risque pour la sécurité.

Par conséquent, vous devez définir un délai d'attente. La connexion SSH sera déconnectée s'il n'y a aucune activité dans le délai imparti. Encore une fois, nous devons éditer le fichier de configuration SSH.

Comment sécuriser un serveur SSH

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne qui commence par #ClientAliveInterval 0 . Supprimez le # au début de la ligne, remplacez le chiffre 0 par la valeur souhaitée. Habituellement, les gens le fixent à 300 secondes, soit 5 minutes. Enregistrez le fichier et redémarrez le démon SSH.

Définir une limite sur le nombre de saisies de mot de passe

Définir une limite sur le nombre de confirmations peut aider à empêcher les tentatives de devinette de mot de passe et les attaques par force brute. Après le nombre spécifié de demandes d'authentification, l'utilisateur sera déconnecté du serveur SSH. Par défaut, il n'y a pas de limite au nombre de tentatives de mot de passe, mais vous pouvez le modifier dans le fichier de configuration SSH.

Comment sécuriser un serveur SSH

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne commençant par #MaxAuthTries 0 . La suppression du # au début de la ligne modifie le numéro à la valeur souhaitée. Vous pouvez le définir sur 3. Enregistrez le fichier lorsque vous apportez des modifications et redémarrez le démon SSH.

Vous pouvez tester cela en essayant de vous connecter et en saisissant un mauvais mot de passe.

Comment sécuriser un serveur SSH

Notez que le nombre MaxAuthTries est supérieur au nombre de tentatives autorisées à l'utilisateur. Après deux tentatives infructueuses, vous êtes déconnecté, ce qui signifie que MaxAuthTries est défini sur 3.

Désactiver la connexion root

Il est conseillé de ne pas vous connecter en tant que root, utilisez simplement en tant qu'utilisateur normal sous Linux et utilisez sudo pour effectuer des actions nécessitant des autorisations root. Vous ne devez pas non plus autoriser root à se connecter au serveur SSH. Seuls les utilisateurs normaux sont autorisés à se connecter. S'ils doivent effectuer une tâche de niveau administratif, ils peuvent également utiliser sudo. Si vous devez autoriser l'utilisateur root à se connecter, vous pouvez le forcer à utiliser une clé SSH.

Modifiez le fichier de configuration pour désactiver la connexion root.

Comment sécuriser un serveur SSH

Faites défiler le fichier jusqu'à ce que vous voyiez la ligne qui commence par #PermitRootLogin prohibit-password , supprimez le # au début de la ligne.

  • Si vous souhaitez empêcher root de se connecter, remplacez prohibit-password par no.
  • Si vous autorisez root à se connecter mais forcez l’utilisation d’une clé SSH, laissez le mot de passe interdit intact.

Enregistrez les modifications et redémarrez le démon SSH.

Dernière étape

Bien sûr, si vous n'avez pas besoin que SSH soit exécuté sur votre ordinateur, désactivez-le avec la commande suivante :

sudo systemctl stop sshd
sudo systemctl disable sshd

Je vous souhaite du succès !


Comment utiliser lhistorique du Presse-papiers dans Windows 10

Comment utiliser lhistorique du Presse-papiers dans Windows 10

L'historique du presse-papiers Windows a été considérablement amélioré avec la mise à jour d'octobre de Windows 10.

Comment désactiver les notifications Focus Assist sur Windows 10

Comment désactiver les notifications Focus Assist sur Windows 10

La fonction Focus Assist de Windows 10 masque automatiquement les notifications lorsque vous jouez à des jeux ou utilisez d'autres applications en plein écran. Mais Cortana aime annoncer qu'il s'agit d'une notification cachée. Voici comment désactiver ces notifications ennuyeuses de Focus Assist.

Comment afficher le widget météo sur la barre des tâches de Windows 10

Comment afficher le widget météo sur la barre des tâches de Windows 10

Si vous souhaitez consulter les informations météorologiques et réafficher le widget météo sur la barre des tâches de Windows 10, suivez les instructions ci-dessous.

Différence entre Ethernet et LAN

Différence entre Ethernet et LAN

Ethernet et LAN sont étroitement liés, dans lesquels Ethernet est la principale technologie qui fait du concept de LAN une réalité. La principale différence entre Ethernet et LAN est que le fonctionnement d'Ethernet n'est pas centralisé, alors que LAN est l'inverse.

4 façons douvrir des images WebP sous Windows 10

4 façons douvrir des images WebP sous Windows 10

Certains utilisateurs se demandent ce qu'est exactement le format WebP et où est-il utilisé ? En quoi WebP est-il différent des autres formats d’image ? Dans ce guide, découvrez comment ouvrir des images WebP sous Windows 10.

4 étapes pour nettoyer les lunettes de réalité virtuelle Samsung Gear VR

4 étapes pour nettoyer les lunettes de réalité virtuelle Samsung Gear VR

Nettoyer les lunettes de réalité virtuelle Gear VR n'est pas un processus difficile, mais vous devez connaître certains des conseils ci-dessous pour pouvoir bien le faire.

Fond décran Google Pixel 6, fond décran Pixel 6

Fond décran Google Pixel 6, fond décran Pixel 6

En plus du nouveau design, de la configuration et du prix, Google Pixel 6 propose également de nouveaux ensembles de fonds d'écran. Vous pouvez vous référer aux ensembles de fonds d'écran ci-dessous de Google Pixel 6.

Comment autoriser ou bloquer laccès au Microsoft Store dans Windows 10

Comment autoriser ou bloquer laccès au Microsoft Store dans Windows 10

Le Microsoft Store de Windows 10 propose des applications, des jeux, de la musique, des films et bien plus encore. que les utilisateurs peuvent acheter ou gratuitement. Si vous ne l'aimez pas, vous pouvez bloquer l'accès à la boutique selon les instructions de l'article suivant.

Différence entre ordinateur de bureau et serveur

Différence entre ordinateur de bureau et serveur

Le bureau et le serveur sont-ils identiques ? Si un ordinateur ordinaire est différent d’un serveur, quelle est cette différence ? Comment distinguer ordinateur de bureau et serveur ? Quantrimang.com a compilé quelques idées principales pour vous permettre d'identifier le bureau et le serveur.

Comment installer OpenSSH sur Windows 10

Comment installer OpenSSH sur Windows 10

Vous pouvez désormais utiliser OpenSSH sur Windows 10 pour vous connecter à des serveurs distants à l'aide de SSH sans installer d'outils tiers. Cet article vous montrera comment installer le client OpenSSH sur Windows 10.