SSH : Les best-practices pour sécuriser l’accès SSH

Introduction à SSH

De la même façon que vous ne laissez pas la porte ouverte en sortant de chez vous, la porte d’entrée de votre serveur (généralement c’est l’accès SSH sur le port 22), requiert un minimum de bonnes pratiques (best-pracices) a mettre en œuvre.

1) Modifier le mot de passe root

En général, après la commande d’un serveur dédié ou virtuel, votre prestataire vous transmettra les informations de connexion par mail, en y joignant le mot de passe du compte root. Il est important de changer celui-ci immédiatement dès votre première connexion. N’oubliez pas de mettre un mot de passe complexe (c’est à dire entre 12 et 15 lettres mininum avec des lettres, chiffres et caractères spéciaux, évitez les mots, vous pouvez également créer une « passphrase » du type « J’aime BEAUCOUP aller sur ce BLOG!!! »)

Pour cela en étant connecter en root (sous Debian, car sous Ubuntu, le root sera alors désactivé), il suffit de taper la commande suivante :

passwd

2) Ajout d’un nouvel utilisateur

Ensuite, une des bonnes pratiques, est de ne JAMAIS utiliser le compte root et encore moins pour se connecter à distance. Nous allons donc créer un groupe contenant des utilisateurs qui seront autorisés à se connecter via SSH:

groupadd sshutilisateurs

Une fois le groupe créer un va lui affecter un utilisateur qu’on va préalablement créer :

useradd utilisateur1

passwd utilisateur1

usermod -a -G sshutilisateurs utilisateur1

3) Configuration de ssh

Troisième étape : On va modifier les paramètres par défaut de SSH, comme changer le port par défaut :

vim /etc/ssh/sshd_config

Pour finir, on vérifie que la version 2 du protocole SSH est  bien utilisée :

Protocol 2

Maintenant (après avoir sauvegarder les modifications du fichier de config), il est nécessaire de redémarre le daemon SSH avec un petit

service ssh reboot

Attention à ne surtout pas couper la branche sur laquelle vous êtes, en ne fermant pas la connexion active, au risque de ne plus pouvoir se reconnecter par la suite. Je vous conseille, d’ouvrir un nouveau terminal et de tester la connexion avec le nouveau port et l’utilisateur adéquat.

4) Authentification par un système de clé publique/clé privée

L’authentification par clé publique/privée se révèle pratique dans le cas où vous souhaitez ne pas avoir à taper le mot de passe à chaque connexion.

Cette technique permet de renforcer la sécurité, car elle demande à l’utilisateur d’être en possession de deux informations pour se connecter au serveur (une clé privée et le mot de passe de cette clé).

Je ne détaillerai pas ici le fonctionnement du protocole, sachez juste que nous allons avoir besoin de deux choses :

  • une clé privée, que l’on gardera précieusement sur notre ordinateur, dans le dossier .ssh de notre répertoire personnel
  • une clé publique, que l’on enverra dans le dossier .ssh de l’utilisateur sur le serveur

Pour générer tout ça, rien de plus simple, il suffit de lancer la commande suivante sur votre ordinateur .

ssh-keygen -t rsa

Ensuite faites « entrée » jusqu’à la question sur le passphrase, ou il faudra choisir le mot de passe de votre clé.

Cette « phrase de passe » (ou passphrase) sert en fait à décrypter votre clé privée. Il est possible de ne pas en mettre, mais dans ce cas, une personne qui mettrait la main sur votre clé privée serait tout à fait apte à se connecter au serveur. Bref, il serait idiot de se priver d’une protection supplémentaire, donc choisissez un mot de passe avec soin.

Ensuite, copiez la clé publique dans le répertoire .ssh de votre utilisateur (celui avec lequel vous vous connectez sur le serveur) :

Pour cela, lancer la commande suivante depuis votre ordinateur :

Dans le cas où le répertoire .ssh n’existe pas dans le home de votre utilisateur il suffit de le créer comme ceci:

cd

mkdir .ssh

touch .ssh/autorized_keys

Voila, votre serveur est désormais beaucoup mieux protégé, vous pouvez désormais vous vous connecter à votre serveur avec cette clé privée. À la première connexion, le mot de passe servant à décrypter la clé privée vous sera demandé.

Encore une fois, ce ne sont que des bonnes pratiques, cela n’empêchera en rien diverses attaques. Pour récupérer l’image d’introduction, désormais la porte de votre serveur est fermée à clés, mais rien n’empêche quelqu’un de vous voler vos clés, ou de casser la porte… La meilleur des solutions serait alors d’ajouter un mirador à l’entrée de votre serveur, et pour cela la meilleur solution est d’installer un Parefeu et Fail2Ban (que je présenterais prochainement).