Accès SSH aux serveurs

Objectif

  • Établir une connexion sécurisée à son serveur.

Mise en situation

Pour développer et maintenir une application, il est nécessaire de se connecter au serveur qui l'héberge. Pour cela on utilise essentiellement le protocole SSH, ainsi que le programme éponyme.

SSH repose sur le chiffrement de la communication avec le serveur, pour éviter que quelqu'un n'espionne ou ne falsifie la communication, ce qui équivaudrait à prendre le contrôle du serveur.

Le bon usage de SSH repose sur la gestion de clés qui doivent rester secrètes pour que les accès aux serveurs ne soient pas compromis.

RappelProtocole SSH

Le protocole SSH permet une connexion sécurisée entre un serveur et un client SSH. Sur Linux, le client SSH est accessible nativement via la console de commandes (en utilisant la commande ssh). Sur Windows, il existe le client PuTTY.

Utiliser des mots de passe complexes

Il faut avoir un mot de passe très robuste car un attaquant pourrait nuire à l'application ou à ses données s'il réussissait à s'emparer du mot de passe.

ConseilRecours à des clés SSH

Il est possible d'utiliser des paires de clés SSH. Une paire est composée d'une clé publique qui sera déposée sur le serveur et d'une clé privée conservée sur l'ordinateur personnel de l'utilisateur. Pour se connecter, l'utilisateur n'aura plus à entrer son mot de passe car sa clé privée lui permettra de s'authentifier.

Cela simplifie grandement l'accès au serveur et évite de devoir taper un mot de passe compliqué à chaque connexion.

1
ssh-keygen  # Crée la paire de clés SSH
2
ssh-copy-id user@127.0.0.1  # Place la clé publique sur le serveur distant
3
[Entrer mot de passe]
4
ssh user@127.0.0.1
5
[Pas de saisie de mot de passe]

AttentionDanger de l'utilisation des clés

Les clés SSH présentent un côté pratique et évitent d'avoir à retenir un mot de passe compliqué. Dans le cas où une machine personnelle est compromise, l'attaquant pourra récupérer la clé privée et l'utiliser pour accéder au serveur. Ainsi, il faudra veiller à la sécurité des ordinateurs personnels également.

Il est possible d'ajouter une phrase secrète à votre clé SSH qui empêchera un attaquant de l'utiliser. Cela ajoutera un mot de passe à retenir mais dans le cas où la clé publique est présente sur 50 serveurs, cela permet de retenir un seul mot de passe plutôt que 50.

MéthodeAccès exclusif par clé aux serveurs

Il est en général conseillé de privilégier l'accès par clé à l'accès par mot de passe en SSH. Si tous les utilisateurs autorisés ont un accès par clé, il est conseillé de désactiver, au niveau du serveur SSH, tout accès par mot de passe, ce qui supprime un risque.

À retenir

  • Le mot de passe pour accéder à un serveur mérite une grande attention.

  • Le recours à des clés SSH peut simplifier l'accès.

  • Les clés SSH présentent tout de même des dangers dont il faut être conscient.

ComplémentDangers liés à un serveur compromis

Un utilisateur pourra considérer (par exemple en phase de développement) que son application ou ses données de test ne sont pas sensibles.

Néanmoins un attaquant pourrait prendre le contrôle du serveur et lancer des attaques sur des entreprises et des gouvernements. Dans ce cas de figure, la justice se tournera en premier lieu vers le propriétaire du serveur.

De nombreux robots essayent de se connecter aux serveurs SSH en testant divers noms d'utilisateurs et mots de passe, il est donc commun et pas du tout exceptionnel qu'un serveur soit compromis.

Il est donc conseillé de toujours protéger les accès à ses serveurs, même s'ils ne sont pas utilisés pour des projets sensibles (et même, en fait, s'il ne sont pas utilisés du tout).

Stéphane Crozat, Marc Damie Paternité - Partage des Conditions Initiales à l'Identique