Lorsqu’il s’agit d’accéder à des périphériques distants tels que des serveurs, des routeurs et des commutateurs, le protocole SSH est fortement recommandé étant donné sa capacité à chiffrer le trafic et à éloigner quiconque pourrait essayer d’écouter vos connexions.
Quoi qu’il en soit, les paramètres par défaut de SSH ne sont pas infaillibles et des ajustements supplémentaires sont nécessaires pour rendre le protocole plus sûr. Dans ce guide, nous explorons différentes méthodes que vous pouvez utiliser pour sécuriser et renforcer l’installation d’OpenSSH sur le serveur.
1. Configuration de l’authentification sans mot de passe SSH
Par défaut, SSH oblige les utilisateurs à fournir leurs mots de passe lors de la connexion. Mais voici la chose: les pirates peuvent deviner les mots de passe ou même effectuer une attaque par force brute en utilisant des outils de piratage spéciaux et accéder à votre système. Pour être prudent, l’utilisation de Authentification sans mot de passe SSH est fortement encouragé.
La première étape consiste à générer une paire de clés SSH qui consiste en un Clé publique et un Clé privée. le Clé privée réside sur votre système hôte tandis que le Clé publique est ensuite copié sur le serveur distant.
Une fois la Clé publique est copié avec succès, vous pouvez désormais vous connecter en toute sécurité au serveur distant sans avoir à fournir de mot de passe.
L’étape suivante consiste à désactiver l’authentification par mot de passe. Pour y parvenir, vous devez modifier le fichier de configuration SSH.
$ sudo vim /etc/ssh/sshd_config
Dans le fichier de configuration, faites défiler et recherchez la directive suivante. Décommenter et modifier l’option 'yes'
à 'no'
PasswordAuthentication no
Redémarrez ensuite le démon SSH.
# sudo systemctl restart sshd
À ce stade, vous n’aurez accès au serveur distant qu’en utilisant l’authentification par clé SSH.
2. Désactiver les demandes de connexion sans mot de passe de l’utilisateur SSH
Un autre moyen recommandé de renforcer la sécurité de votre serveur consiste à désactiver les connexions SSH des utilisateurs sans mot de passe. Cela semble un peu étrange, mais parfois, les administrateurs système peuvent créer des comptes d’utilisateurs et oublier d’attribuer des mots de passe – ce qui est une très mauvaise idée.
Pour rejeter les demandes d’utilisateurs sans mot de passe, dirigez-vous à nouveau vers le fichier de configuration à l’adresse /etc/ssh/sshd_config
et assurez-vous d’avoir la directive ci-dessous:
PermitEmptyPasswords no
Redémarrez ensuite le service SSH pour que la modification soit effectuée.
$ sudo systemctl restart sshd
3. Désactiver les connexions racine SSH
Il est évident que ce qui peut arriver si un pirate parvient à forcer votre mot de passe root. Autoriser la connexion root à distance est toujours une mauvaise idée qui pourrait compromettre la sécurité de votre système.
Pour cette raison, il est toujours recommandé de désactiver la connexion root distante SSH et de s’en tenir à un utilisateur non root normal. Encore une fois, dirigez-vous vers le fichier de configuration et modifiez cette ligne comme indiqué.
PermitRootLogin no
Une fois que vous avez terminé, redémarrez le service SSH pour que la modification soit effectuée.
$ sudo systemctl restart sshd
Désormais, la connexion root à distance sera désactivée.
4. Utilisez le protocole SSH 2
SSH est disponible en deux versions: SSH protocole 1 et protocole 2. SSH protocole 2 a été introduit en 2006 et est plus sûr que protocole 1 grâce à ses contrôles cryptographiques solides, son cryptage en masse et ses algorithmes robustes.
Par défaut, SSH utilise protocole 1. Pour changer cela en plus sécurisé Protocole 2, ajoutez la ligne ci-dessous au fichier de configuration:
Protocol 2
Comme toujours, redémarrez SSH pour que les modifications prennent effet.
$ sudo systemctl restart sshd
À l’avenir, SSH utilisera Protocole 2 par défaut.
Pour tester si SSH protocole 1 n’est plus pris en charge, exécutez la commande:
$ ssh -1 [email protected]
Vous obtiendrez une erreur indiquant « Le protocole SSH v.1 n’est plus pris en charge».
Dans ce cas, la commande était:
$ ssh -1 [email protected]
De plus, vous pouvez simplement spécifier le -2
tag juste pour être sûr que Protocole 2 est le protocole par défaut utilisé.
$ ssh -2 [email protected]
5. Définissez la valeur d’inactivité du délai de connexion SSH
Laisser votre PC sans surveillance pendant de longues périodes avec une connexion SSH inactive peut poser un risque pour la sécurité. Quelqu’un peut simplement passer et reprendre votre session SSH et faire ce qu’il veut. Pour résoudre le problème, il est donc prudent de définir une limite de délai d’inactivité qui, une fois dépassée, la session SSH sera fermée.
Encore une fois, ouvrez votre fichier de configuration SSH et localisez la directive «ClientAliveInterval». Attribuez une valeur raisonnable, par exemple, j’ai défini la limite sur 180 secondes.
ClientAliveInterval 180
Cela implique que la session SSH sera abandonnée si aucune activité n’est enregistrée après 3 minutes, ce qui équivaut à 180 secondes.
Redémarrez ensuite le démon SSH pour effectuer les modifications apportées.
$ sudo systemctl restart sshd
6. Limitez l’accès SSH à certains utilisateurs
Pour une couche de sécurité supplémentaire, vous pouvez définir les utilisateurs qui ont besoin du protocole SSH pour se connecter et effectuer des tâches à distance sur le système. Cela empêche tout autre utilisateur qui pourrait essayer d’accéder à votre système sans votre approbation.
Comme toujours, ouvrez le fichier de configuration et ajoutez la directive « AllowUsers»Suivi du nom des utilisateurs que vous souhaitez accorder. Dans l’exemple ci-dessous, j’ai autorisé les utilisateurstecmint‘ et ‘James‘d’avoir un accès à distance au système via SSH. Tout autre utilisateur qui tente d’accéder à distance sera bloqué.
AllowUsers tecmint james
Redémarrez ensuite SSH pour que les modifications persistent.
$ sudo systemctl restart sshd
7. Configurer une limite pour les tentatives de mot de passe
Vous pouvez également ajouter une couche de sécurité en limitant le nombre de tentatives de connexion SSH de sorte qu’après un certain nombre de tentatives infructueuses, la connexion soit interrompue. Alors, une fois de plus, dirigez-vous vers le fichier de configuration et localisez le « MaxAuthTries»Et définissez une valeur pour le nombre maximal de tentatives.
Dans cet exemple, la limite a été définie sur 3 tentatives comme indiqué.
MaxAuthTries 3
Et enfin, redémarrez le service SSH comme dans les scénarios précédents.
Vous pouvez également trouver les articles suivants liés à SSH utiles:
Conclusion
C’était un résumé de certaines des mesures que vous pouvez prendre pour sécuriser vos connexions à distance SSH. Il est important d’ajouter que vous devez toujours attribuer des mots de passe forts aux utilisateurs ayant un accès à distance pour contrecarrer les attaques par force brute. Nous espérons que ce guide vous a été utile. Vos commentaires sont les bienvenus.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer:
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, guides et livres Linux sur le Web. Des millions de personnes visitent TecMint! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT pour tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous vous remercions de votre soutien sans fin.
.