2021-02-10 14:35 Temps de lecture : 7 min

3 façons de sécuriser un serveur SSH sous Linux

SSH est un outil formidable qui facilite l'accès à distance à des ordinateurs et serveurs Linux via un réseau, voire Internet. Cependant, malgré ses avantages indéniables, il présente des failles de sécurité qui peuvent rendre son utilisation risquée. Pour un utilisateur lambda, l'installation d'outils de sécurité SSH complexes n'est généralement pas indispensable. Il est préférable de suivre ces étapes fondamentales pour renforcer la sécurité d'un serveur SSH sous Linux.

Changer le port de connexion par défaut

La méthode la plus simple et rapide pour sécuriser un serveur SSH consiste à modifier le port qu'il utilise. Par défaut, le serveur SSH fonctionne sur le port 22. Pour changer cela, ouvrez une fenêtre de terminal et connectez-vous au serveur SSH hébergeant la machine distante.

ssh utilisateur@adresse-ip-locale

Une fois connecté, passez d'un utilisateur standard à l'utilisateur root. Si vous possédez le compte root, la commande su est une option adéquate. Sinon, vous devrez utiliser sudo pour y accéder.

su -

ou

sudo -s

Maintenant que vous avez les droits d'administrateur, ouvrez le fichier de configuration SSH avec l'éditeur Nano.

nano /etc/ssh/sshd_config

Parcourez le fichier de configuration jusqu'à atteindre la ligne "Port 22". Supprimez le caractère "#" s'il est présent, puis remplacez "22" par un autre nombre. Généralement, un port supérieur à 100, voire un port dans la plage des 1000, est suffisant. Après avoir modifié le numéro de port, enregistrez vos changements en utilisant la combinaison de touches Ctrl+O, puis quittez l'éditeur avec Ctrl+X.

La simple modification du fichier de configuration n'appliquera pas immédiatement le changement de port à votre serveur SSH. Vous devrez redémarrer manuellement le service pour que cela soit pris en compte.

systemctl restart sshd

L'exécution de la commande systemctl devrait redémarrer le démon SSH et appliquer les nouveaux paramètres. Si le redémarrage du démon échoue, une autre solution consiste à redémarrer le serveur SSH lui-même:

reboot

Après le redémarrage du démon (ou de la machine), le SSH ne sera plus accessible via le port 22. La connexion SSH nécessitera donc la spécification manuelle du port modifié.

Note: remplacez "1234" par le port que vous avez défini dans le fichier de configuration SSH.

ssh -p 1234 utilisateur@adresse-ip-locale

Désactiver la connexion par mot de passe

Une autre méthode efficace pour sécuriser un serveur SSH est de désactiver la connexion par mot de passe et de privilégier l'authentification via des clés SSH. L'utilisation de clés SSH instaure une relation de confiance entre votre serveur SSH et les machines distantes qui possèdent la clé correspondante. Il s'agit d'un fichier de mot de passe chiffré qui est très difficile à déchiffrer.

Commencez par configurer les clés SSH sur votre serveur. Une fois les clés configurées, ouvrez un terminal et accédez au fichier de configuration SSH.

su -

ou

sudo -s

Puis, ouvrez le fichier de configuration avec Nano:

nano /etc/ssh/sshd_config

Par défaut, les serveurs SSH gèrent l'authentification via le mot de passe de l'utilisateur. Bien qu'un mot de passe robuste soit une bonne solution, une clé SSH chiffrée sur des machines de confiance est plus rapide, plus pratique et surtout plus sécurisée. Pour finaliser la transition vers une connexion "sans mot de passe", localisez dans le fichier de configuration SSH la ligne qui indique "PasswordAuthentication".

Supprimez le caractère "#" devant "PasswordAuthentication" et assurez-vous que la valeur qui suit est bien "no". Si tout est correct, enregistrez les modifications de la configuration SSH avec la combinaison de touches Ctrl+O.

Après avoir enregistré la configuration, fermez Nano avec Ctrl+X et redémarrez SSHD pour appliquer les changements.

systemctl restart sshd

Si vous n'utilisez pas systemd, redémarrez SSH avec cette commande:

service ssh restart

Désormais, lorsqu'une machine distante tentera de se connecter au serveur SSH, elle vérifiera si elle possède la bonne clé et autorisera l'accès sans mot de passe.

Désactiver le compte root

La désactivation du compte root sur votre serveur SSH est un moyen de limiter les dégâts potentiels si un utilisateur non autorisé venait à obtenir un accès via SSH. Pour désactiver le compte root, il est primordial qu'au moins un utilisateur de votre serveur SSH puisse accéder à la racine via sudo. Cela garantira que vous pourrez toujours obtenir un accès de niveau système en cas de besoin, sans avoir à utiliser le mot de passe root.

Note: assurez-vous que les utilisateurs qui peuvent accéder aux privilèges root via sudo possèdent un mot de passe sécurisé, sinon la désactivation du compte superutilisateur perd de son intérêt.

Pour désactiver root, élevez le terminal aux privilèges de superutilisateur:

sudo -s

L'utilisation de sudo -s évite la nécessité de se connecter avec su et accorde un shell root en utilisant le fichier sudoers. Maintenant que le shell dispose d'un accès superutilisateur, utilisez la commande passwd pour verrouiller le compte root avec l'option --lock.

passwd --lock root

Cette commande verrouille le mot de passe du compte root, rendant impossible la connexion via su. Désormais, les utilisateurs ne pourront se connecter au SSH qu'en tant qu'utilisateurs locaux, puis passer à un compte root en utilisant les privilèges sudo.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.