Accueil Tuto Debian / VPS – Sécurisation serveur SSH – Echange de clé
Debian VPS - Sécurisation serveur SSH - Echange de clé

Debian / VPS – Sécurisation serveur SSH – Echange de clé

par Jérémy PASTOURET

Un serveur Linux présent sur le Web avec SSH installé représente une cible intéressante pour les hackers. Dans cet article, je vais vous expliquer comment protéger votre serveur en renforçant le niveau d’authentification. Vous aurez besoin de trois éléments importants pour vous connecter à votre serveur. Sans quoi, celui-ci vous refusera l’accès. Dans un prochain article, nous irons même plus loin en installant un système qui bannit les hackers.

Génération de votre paire de clé SSH et transfert sur le serveur

Une des premières étapes consiste à créer une paire de clés SSH. L’idée, c’est d’envoyer notre clé publique à votre serveur et lui dire qu’il doit accepter uniquement les connexions avec notre clé publique. J’ai divisé la procédure en deux parties, une pour Linux et une autre pour Windows.

Sous MacOS/Linux

Vous devez ouvrir un terminal et effectuer un :

ssh-keygen -t rsa

Si la commande ne marche pas, c’est que vous n’avez pas installé SSH sur votre poste. Je vous conseille donc de lire mon précédent article.

Génération de la clé SSH

Après avoir lancé la commande, le programme vous demande si vous souhaitez enregistrer votre clé SSH dans un répertoire autre que /home/.ssh/id_rsa.pub. Je vous conseille vivement de taper sur la touche entrée sans le modifier car SSH a l’habitude de piocher dans ce répertoire.

Pour la seconde demande, il faut saisir un passphrase. C’est un peu l’équivalent d’un mot de passe. Cette clé vous permettra de déverrouiller votre clé SSH. Après avoir tapé sur entrée, le système génère enfin votre clé SSH.

Transfert de la clé publique sur le serveur

Ensuite, on a besoin d’envoyer cette clé publique à notre serveur en utilisant la commande suivante :

ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.34

Vous devez remplacer l’user par le nom d’utilisateur que vous utilisez traditionnellement et mettre votre adresse IP après l’@.

Ensuite, SSH vous demande de taper le mot de passe de connexion à votre serveur. Celui-ci va récupérer votre clé publique et l’enregistrer comme utilisateur autorisé à se connecter.

Si vous n’arrivez pas faire marcher la commande, vous pouvez copier-coller manuellement votre clé publique en suivant la procédure suivante :

cat ~/.ssh/id_rsa.pub

Maintenant, copiez le résultat dans le fichier ~/.ssh/autorized_keys. Pour cela, il faut taper la commande suivante :

~/.ssh/autorized_keys

Sous Windows

Vous devez utiliser notre nouvel ami Bitvise, si vous ne l’avez pas encore installé, je vous redirige vers mon précédent article.

Après avoir ouvert Bitvise, vous cliquez sur le bouton Client key manager que l’on peut voir sur la capture ci-dessous.

Bitvise Client Key Management

Lorsque vous cliquez dessus, une pop-up s’ouvre et vous liste vos clé RSA. Il vous suffira de cliquer sur le bouton Generate New (visible sur la capture ci-dessous) afin de créer votre première paire de clés.

Bitvise - Génération de clé SSH

Une seconde pop-up s’ouvre : tapez un PassPhrase et confirmez-le en le ressaisissant. C’est un peu l’équivalent d’un mot de passe : cette clé vous permettra de déverrouiller votre clé SSH.

Bitvise - Paramétrage de la paire de clé SSH

Il vous reste plus qu’à cliquer sur le bouton Generate pour que le programme puisse générer une paire de clés sécurisées.

Transfert de la clé publique sur le serveur

Après la génération de la clé, revenez sur la pop-up précédente. Vous y verrez votre paire de clés fraîchement crée.

Bitvise - Nouvelle paire de clé Généré

Sélectionnez-la et cliquez sur le bouton Export. Nous allons exporter uniquement la clé publique, pour que le serveur distant nous identifie avec celle-ci. En cliquant sur le bouton, une nouvelle pop-up va s’ouvrir.

Bitvise - Export de la clé publique

Attention : vous devez sélectionner le format OpenSSH reconnu par Linux et cliquer sur le bouton Export. A cet instant, l’explorateur de fichier s’ouvre pour vous demander où enregistrer l’export, donc choisissez bien l’endroit. Vous allez en avoir besoin tout de suite après.

Bitvise - Enregistrement de la clé

Après avoir renseigné un nom de clé publique et l’avoir sauvegardé, je vous propose d’aller sur la fenêtre SFTP de Bitvise pour transférer notre clé publique sur le serveur.

Bitvise - Copie de la clé SSH

Pour cela, faites un drag-and-drop dans le répertoire Téléchargements (dans la sous-fenêtre à droite).

Maintenant, nous allons revenir sur la console SSH Linux. Positionnez-vous dans le répertoire home de votre compte utilisateur et effectuez la commande suivante :

cp Téléchargements/maclepublic ~/.ssh/authorized_keys

Comme vous pouvez le voir sur l’image ci-dessous :

Bitvise - Mise en place des clés autorisées

Modification de la configuration SSH (commun avec tous les systèmes d’exploitations)

On retourne sur la console Linux du serveur que l’on paramètre : on va passer en mode administrateur. Pour cela, tapez la commande :

su

Puis tapez votre mot de passe, comme sur la capture ci-dessous.

Bitvise - Passage en root

Ensuite, nous allons faire une sauvegarde du fichier de configuration originel. Ainsi si vous vous trompez, vous pourrez reprendre la configuration de base.

Pour cela nous allons faire la commande suivante :

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origin
Bitvise - Copie du fichier de configuration SSH par sécurité

Nous allons maintenant modifier le fichier de configuration afin d’y apporter quelques retouches. Pour cela, nous allons jouer la commande suivante :

nano /etc/ssh/sshd_config
Bitvise - Modification du fichier de configuration ssh

Dans le fichier ci dessous, nous allons passer la valeur du port SSH classique 22 à 25 afin de brouiller les pistes. Ceci à l’intention des hackers susceptibles de lancer des attaques pour faire tomber notre serveur… sur le port que tout le monde connaît : le 22. Vous pouvez mettre ce que vous voulez à la place.

Bitvise - Changement de port SSH

On va aussi activer la connexion par clé publique. C’est l’objectif de ce tutoriel : se connecter avec une clé RSA. Pour ce faire, enlevez le # présent avant PubkeyAuthentication et sur AuthorizedKeysFile. En gros, on dit à SSH qu’on autorise la connexion par clé publique et que les clés autorisées sont présentes dans les fichiers authorized_keys et authorized_keys2. Vous devriez avoir le même résultat que le mien, ci-dessous :

Bitvise - Decommenter connexion par clé

Vu qu’on est des pros de la sécurité, on va mettre un niveau d’authentification élevé. Pour cela, vous devez mettre yes à la propriété PasswordAuthentication et enlever le # s’il y en un. Vous devez aussi mettre no sur PermitEmptyPasswords en vérifiant qu’il n’y a pas de # au début. Et pour finir, il faut rajouter AuthenticationMethods à publickey,password. Vérifiez que vous avez le même écran que moi :

En rajoutant ces paramètres, on dit à SSH d’autoriser uniquement la connexion d’un utilisateur avec un mot de passe et avec une clé SSH. Sinon, il n’est pas possible de se connecter. On n’autorise pas de compte sans mot de passe. Il ne vous reste plus qu’a sauvegarder cette modification avec un CTRL+X et O.

Après avoir modifié le fichier, il est nécessaire de redémarrer le service SSH en effectuant la commande suivante :

service ssh restart
Bitvise - Redémarre SSH

Génération de la clé SSH sur le serveur

Maintenant, nous allons générer la clé SSH du serveur distant. L’objectif c’est de dire à notre PC de travail de se connecter à notre serveur distant uniquement s’il a la même clé publique que l’on a générée au départ. Vous devez sûrement vous demander pourquoi ?

Imaginez qu’un hacker a pris le contrôle de la box internet que vous utilisez. Par exemple, sur les réseaux Wifi Public. Ou même, admettons que vous n’ayez pas chance : votre box internet à la maison. Lorsque vous vous connecterez à votre serveur distant pour mettre à jour votre code source par exemple, le hacker pourra rediriger les connexions vers son propre serveur. Vous aurez cependant l’impression d’être sur le votre, vous transférerez votre code source… et voilà que le hacker en a la possession. Sauf si vous poursuivez ce tutoriel.

Car vous allez télécharger la clé publique. Et lorsque vous tenterez de vous connecter, votre PC réalisera qu’il ne s’agit pas de la même clé publique connue, et qu’il ne ne peux pas s’y connecter.

Pour générer une clé SSH, il vous suffit de faire un :

ssh-keygen -t rsa
Bitvise - Génération de clé SSH sur le serveur

Transfert de la clé publique sur le PC

Sous Linux, MacOs

Contrairement à Windows, l’opération est hyper simple:  en une seule commande, c’est réglé.

ssh-keyscan -H 192.168.1.34 >> ~/.ssh/known_hosts

Bien entendu, vous devez remplacer l’adresse IP 192.168.1.34 par celle de votre serveur.

Transfert Clé publique Host sous Linux et MacOs

Après l’avoir saisie, si vous tentez de vous connecter à votre serveur, celui-ci ne vous demandera plus de valider l’empreinte de votre serveur mais uniquement le mot de passe. E le tour est joué (il y a une conclusion sous la partie Windows).

Sous Windows

Nous allons copier la clé publique dans notre répertoire d’échange, c’est à dire le répertoire de téléchargement. N’oubliez pas de changer le terme user par votre nom d’utilisateur.

cp ~/.ssh/id_rsa.pub /home/user/Téléchargements/
Bitvise - Copie clé SSH serveur

Vous devez rouvrir votre explorateur de fichier SFTP et transférer le fichier id_rsa.pub à l’aide du drag-and-drop.

Bitvise - Transfert de clé SSH

Puis retournez sur Bitvise et cliquez sur le bouton Host key manager, comme ci-dessous.

Bitvise - Paramètre Host Key Manager

Une pop-up vous affiche alors la liste des clés de serveur que vous possédez. Il vous suffit de cliquer sur le bouton Import pour importer notre clé publique du serveur.

Bitvise - Importer clé SSH Server

Un explorateur de fichier s’ouvre : allez chercher le fichier que vous avez téléchargé précédemment. Après l’avoir sélectionné, une seconde pop-up s’ouvre.

Bitvise - Importer clé SSH Server - user

Vous devez saisir l’adresse IP du serveur concerné (le premier encadré rouge ci-dessus). Puis cliquez sur le bouton Import.

Etape finale : paramétrage et connexion au serveur

Bitvise - Critères de connexion SSH

Il faut maintenant changer la méthode de connexion en cliquant sur la liste déroulante. Sélectionner la valeur publickey+password, puis saisissez la passphrase et le password. Il ne vous reste plus qu’à vous connecter et apprécier la réussite d’un tutoriel suivi jusqu’au bout. Je vous conseille vivement de sauvegarder le profil (bouton à droite en rouge), ce qui vous permettra de le recharger facilement et sans prise de tête avec le bouton Load profile.

Conclusion

J’espère que cet article se révélera utile et que vos serveurs deviendront super sécurisés. Si vous rencontrez des problèmes la communauté pourra vous aider : les commentaires sont là pour échanger.

Source Configuration SSH Debian : https://wiki.debian.org/fr/SSH#Configuration_Options

Dans le but d’écrire ce tuto / article, nous avons utilisé les commandes sur notre serveur chez notre partenaire IKOULA. Pour plus d’informations sur leur service, rendez-vous sur leur site ou sur notre article consacré aux solutions d’IKOULA.

Pour augmenter la sécurité sur votre serveur, je vous recommande de lire cet article : Debian / VPS – Avec Fail2ban, protégez votre serveur des attaques DDOS, XmlRPC, SSH…

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.