Table de Matières
Introduction ......................................................................................................................................... 2
I- Présentation de SSH ........................................................................................................................ 3
1. Une petite histoire ...................................................................................................................... 3
2. Le cryptage symétrique, le cryptage asymétrique et le Hashing ................................................ 3
a. Le cryptage symétrique .......................................................................................................... 3
b. Le cryptage asymétrique ........................................................................................................ 3
c. Le Hashing (Hachage) ........................................................................................................... 4
3. SSH en bref ................................................................................................................................ 4
a. Le fingerprint ......................................................................................................................... 4
b. Fonctionnement du SSH ........................................................................................................ 5
c. Quelques cas d’usage du protocole SSH ............................................................................... 7
II- Configuration d’un serveur SSH sur Linux ................................................................................... 7
1. Installation du client et du serveur SSH sur Debian .............................................................. 7
2. Installation du client et du serveur SSH sur Fedora .............................................................. 8
3. Les méthodes d’authentification ............................................................................................ 9
4. Création de la paire de clef .................................................................................................... 9
5. Envoie de notre clef public sur le serveur ........................................................................... 10
6. Le fichier de configuration principale du serveur SSH ....................................................... 11
III- Utilisation du SSH ...................................................................................................................... 12
1. Le SSH sur un client Linux ................................................................................................. 12
a. Connexion à un serveur SSH .......................................................................................... 12
b. L’utilitaire Scp (Secure copy).......................................................................................... 12
c. L’utilitaire SFTP (SSH File Transfer Protocol) .............................................................. 13
d. X11 Forwarding ............................................................................................................. 14
2. Connexion à un serveur SSH depuis un client Windows .................................................... 15
3. Visualisons exactement la securité de ssh par rapport à celle offerte par telnet .................. 16
a. Sniffing des données lors d’utilisation de telnet ............................................................ 16
b. Sniffing des données en utilisant le protocol ssh ............................................................ 17
Conclusion ........................................................................................................................................ 19
Webographie ..................................................................................................................................... 20
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Introduction
Dès les débuts de l’informatique, les professionnels du secteur travaillant pour
de grosses ou petites entreprises se sont heurtés à un ensemble de problèmes concernant
la gestion d’un parc de serveur. À cette époque, il fallait toujours se rendre
physiquement sur le site où se situaient les serveurs pour pouvoir effectuer des
manipulations complexes comme par exemple faire une sauvegarde des données du
serveur. Ce qui devenait un gros problème pour des personnes travaillant dans plusieurs
entreprises. Pour donc résoudre ce problème, un ensemble de protocoles à l’instar de
Rlogin, Telnet et SSH ont été développés ayant pour but de permettre la connexion sur
le terminal d’une machine distante sur le réseau et d’y effectuer des tâches sans se
déplacer. Ainsi donc, un administrateur système peut administrer plusieurs serveurs
depuis chez lui sans se déplacer et gagner énormément en productivité. À cause de la
vulnérabilité du protocole Telnet qui transmet les informations en clair sur le réseau,
SSH a finalement été adoptés comme standard en industries.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
I- Présentation de SSH
1. Une petite histoire
Après que l’Université de Technologie d’Helsinki en Finlande ait été victime
d’une attaque par reniflage de mot de passe (password-sniffing) en 1994, un de leur
chercheur au nom de Tatu Ylönen développa le protocole SSH-1 en 1995 pour son
propre usage. La béta version de celui-ci a suscité un grand intérêt auprès du public si
bien qu’il a rendu son protocole open source et a fondé la SCS (SSH Communications
Security Corp) pour le maintenir, le commercialiser et continuer son développement.
C’est d’ailleurs la SCS qui a standardisé et publié la version 2 de ce protocole en 1998.
b. Le cryptage asymétrique
Le cryptage asymétrique utilise deux clefs distinctes pour le cryptage et le
décryptage des informations, ces deux clefs sont appelées clef publique et clef privée
et forme une paire de clefs public-privée. La clef publique est disponible et accessible
publiquement à tout moment et cette dernière est utilisée pour le calcul de la clef privée.
Ainsi, une machine ne peut décrypter que des messages qui ont été crypté avec sa clef
publique. Comme example, nous avons les cryptosystèmes RSA, DSA, etc.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
c. Le Hashing (Hachage)
Le hachage à sens unique est une forme de cryptographie où les
messages cryptés ne sont pas destinés à être décryptés. Au cours du
processus de cryptage, une valeur unique d’une longueur fixe est
générée pour chaque entrée du message. Ce qui rend pratiquement
impossible le processus inverse.
3. SSH en bref
a. Le fingerprint
Le fingerprint (enprunte numérique) d’une clef publique est une chaîne de 32
caractères hexadécimaux unique pour chaque clef. Lors de la première connexion avec
un serveur SSH, il faut toujours versifier le fingerprint du serveur pour s’assurer que
vous vous connecter au bon serveur pour éviter une attaque man-in-the-middle.Les
administrateurs systèmes doivent donc fournir aux utilisateurs du serveur le fingerprint
de celui-ci pour leur permettre de vérifier l’identité du serveur. La commande suivante
permet d’obtenir ce fingerprint.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
b. Fonctionnement du SSH
Le protocole SSH est intégré aux serveurs Unix et Linux pour permettre des
connexions sécurisées entre les systèmes. Il fournit une méthode d’authentification par
mots de passe ou clef publique et permet de crypter les communications entre deux
points d’un réseau.
➔ Le client crypte son mot de passe avec la clef publique du serveur et l’envoie à
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
3. La clef publique du serveur est stockée chez le client dans le fichier d’hôte
connue.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
➢ Exécuter des commandes sur la machine distante
➔ La famille Red Hat est composée des ditributions commes Red Hat Linux
Entreprise, Fedora et Centos
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Vérifier le status du serveur SSH
sudo systemctl status ssh
Par défaut, Debian utilise le pare-feu ufw (Uncomplicated Firewall) qui peut
interférer avec le traffic shell sécurisé. Pour autorisé l’accès SSH, utilisez la
commande suivante : sudo ufw allow ssh
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
3. Les méthodes d’authentification
Une fois que vous installer le serveur SSH et que vous le démarrer, il est déja
prêt à fonctionner sans aucune configuration supplémentaire. Nous verons plus loin ses
différents fichiers de configuration et quelques configurations avancées.
L’authentification par mot de passe est vulnérable malgrès le fait que le ssh soit
un protocole sécurisé car les mots de passe sont généralement court, facile à deviner et
retenir. Face donc à la faiblesse de l’authentification par mot de passe,
l’authentification par clef se revèle être très efficaces. Il permet de garantir à un
système qu’un utilisateur est bien celui qu’il prétend être et fonctionne grâce à trois
composantes :
➔ Une clef publique qui sera exposé sur chaque hôte sur lequel on souhaite se
connecter
➔ Une clef privée qui permet de prouver son identité aux serveurs
La création de la paire de clef se fait avec ssh-keygen . Il existe deux types de clefs :
RSA et DSA chacune pouvant être de longueur différente. Pour créer une clef RSA de
4096 bits, taper la commande suivante :
ssh-keygen -t rsa -b 4096 -C username@domain.tld
Lorsque cette commande est exécutée sans paramètre, les options par défaut sont
de type RSA en 2048 bits. Le commentaire permet de distinguer les clefs et est très
utile lorsqu’on en a plusieurs. Il peut être un texte de votre choix, mais en général, on
préfère utiliser l’adresse e-mail de l’organisation concernée pour mieux différencier
nos clefs.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Lorsque vous exécuter la commande précédente, deux fichiers sont crées dans le
dossiers ~/.ssh/ :
➔ id_rsa (ou id_dsa dans le cas d’une clef DSA) : contient la clef privée et ne doit
pas être dévoilée ou mis à disposition
➔ id_rsa.pub (ou id_dsa.pub dans le cas d’une clef DSA) : contient la clef
publique, celle qui sera mis sur les serveurs dont l’accès est voulu
Une fois votre paire de clefs générée, il faut faire en sorte que votre ssh-agent
( agent d’authenfication inclu dans la suite OpenSSH qui tourne en arrière plan en
mémoire et retient les clefs privées pendant toute la durée de la session) la reconnaisse.
Pour cela, il faut utiliser la commande suivante :
ssh-add ou ssh-add /chemin-complet-vers-la-clef/nom_clef
Pour vérifier la liste des paires de clefs existantes, taper la commande suivante :
ssh-add -l
Une fois notre paire de clef générée, il faut envoyer notre clef public sur le
serveur. Pour cela, nous allons utiliser l’authentification par mot de passe pour nous
connecter et envoyer notre clef sur le serveur. Il existe plusieurs manière d’envoyer sa
clef publique sur le serveur. Nous présenterons ici deux méthodes.
➔ Méthode 1 :
cat ~/.ssh/id_rsa.pub | ssh user@ip_machine "cat - >> ~/.ssh/authorized_keys"
Cette commande va lire le fichier $HOME/.ssh/id_rsa.pub (clef publique), se
connecter sur le serveur avec l’adresse ip « ip_machine » avec le nom
d’utilisateur « user » et ajouter au fichier des clefs autorisés
($HOME/.ssh/authorized_keys) le contenu de la clef lue.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
vérifier le fichier ~/.ssh/authorized_keys sur ip_machine pour
éventuellement supprimer les clés que vous ne souhaitez pas publier sur ce
serveur.
En générale, la configuration par défaut du serveur SSH est suffisante mais si vous
voulez modifier le comportement par defaut de votre serveur, vous devez modifier le
fichier /etc/ssh/ssh_config où est centralisé toute la configuration de ssh. Le tableau
suivant indique les principales directives à modifier :
Voilà cité quelques configurations que vous pouvez effectuer sur votre serveur ssh. Si
vous voulez avoir accès à l’ensemble des configuration possible, vous pouvez faire une
recherche sur internet ou consulter sa documentation interne sur Linux avec la
commande man ssh
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Lorsque vous voulez effectuer une authentification par clef privée après avoir généré
votre paire de clef et l’avoir envoyé sur le serveur, vous avez juste à taper la
commande ssh -i <nom_utilisateur>@<adresse_ip_serveur> et le ssh-agent va se
charger de vous connecter en utilisant votre clef public. Dans le cas où votre paire de
clef n’est pas gérée par votre ssh-agent, vous devez en plus indiquer le chemin d’acès
à cette clef publique.
ssh -i <chemin_vers_la_clef_public> <nom_utilisateur>@<adresse_ip_serveur>
Lorsque vous transferez les données avec scp, les fichiers et les mots de passe sont
cryptés, ce qui justifie son usage dans le cadre des échanges SSH.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Pour transférer un fichier de la machine locale vers le serveur, utilisez la syntaxe
suivante : scp localfile username@ip_adresse:remotefile
Pour avoir plus d’information sur l’utilisation de scp, vous pouvez consulter le
manuel avec la commande man scp
Le protocole SCP n'est pas bien conçu et peut entraîner des résultats inattendus. Dans
le passé, il était la source de plusieurs CVE (Common Vulnerabilities and Exposures)
où un serveur malveillant pouvait remplacer des fichiers dans le système de fichiers
local lors du téléchargement de fichiers. Il est recommandé d'utiliser sftp lorsque cela
est possible.
SFTP également connu sous le nom de Secure FTP est une méthode populaire
pour transférer en toute sécurité des fichiers sur des systèmes distants. SFTP a été
conçu comme une extension du protocole Secure Shell (SSH) version 2.0 pour
améliorer les capacités de transfert de fichiers sécurisés. Avec SFTP, les données et
les commandes sont cryptées et transférées dans des paquets binaires spécialement
formatés via une connexion unique et sécurisée utilisant SSH.
Pour se connecter à une machine distante par sftp, utiliser la comande suivante :
sftp username@ip_adresse
L’utitilaire sftp accepte un ensemble de commande similaire à ceux utilisé par ftp.
Les principales sont :
Commande Description
ls [directory] Liste le contenu le dossier distant. S’il est non spécifier, le repertoire
courant est utilisé par défaut
cd directory Changer le repertoire courant vers le repertoire « directory »
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
rmdir directory Supprime le repertoire de nom « directory » sur le serveur distant
Pour avoir plus d’informations sur sftp, vous pouvez consulter le manuel sous Linux
avec la commande man sftp et l’explorer en profondeur.
d. X11 Forwarding
X11 Forwarding ou déportage graphique est un mécanisme qui permet à un
utilisateur de démarrer des applications distantes mais de transmettre l'affichage de
l'application à votre ordinateur local. Pour se connecter en mode X11 Forwarding,
utiliser la commande ssh -Y <nom_utilisateur>@<adresse_ip_serveur> . Une fois
connecté, vous pouvez ouvrir n’importe quelle application graphique accessible en
ligne de commande. La figure suivante vous montre un exemple.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
➔ L’image 1 et l’image 3 représentent le déportage graphique sur le poste client
➔ Les images 2 et 4 représentent les mêmes écrans mais cette fois ci sur le poste
La connexion par ssh sous windows se fait à partir des outils comme PUTTY.La
demarche est la suivante :
➔ Puis, dans la zone port, le port à travers lequel l’on voudrait se connecter (par
defaut, il faut entrer le port 22, sauf si vous l’avez changé).
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
3. Visualisons exactement la securité de ssh par rapport à celle offerte par telnet
Créons deux utilisateurs sur un même hôte possédant les services telnet, l’on se
connecte au premier compte : dans notre cas tderick(qui est considère comme le serveur
telnet) et connectons nous à l’autre compte qui est sur le même hôte (user1) et lançons
l’analyseur réseau Wireshark depuis le début de la connexion(sur le compte de tderick).
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Alors, il est bien réel qu’un man-in-the-middle pourrait connaitre avec exactitude et
sans trop d’effort l’ensemble des informations transmises en reseau.
Toujours dans la même configuration que plus haut, le serveur sur le compte
tderick et le client sur le compte user1, lancons wireshark et capturons les paquets et
trames transmises, puis filtrons les via ssh. Pour chaque trame, consultons la section
ssh protocol. On constate que pour une trame envoyée, on a un ensemble de caractères
de la forme xcuolidsyr5672chgsc265. Ceci est en fait un caractère crypté à l’aide de
l’algorithme symétrique AES dans SSH-2 et DES ou 3DES dans SSH-1 par défaut.
Remarque : L’on pourrait effectuer les opérations précédentes sur un plus grand
réseau. Dans ce cadre, il faudrait s’assurer que le man-in-the-middle peut recevoir les
données qui ne lui sont pas destinées. Le point central du réseau pourrait être le hub
UNIVERSITE DE DSCHANG
Conclusion
Au terme de notre rapport où il était question de vous présenter le Protocole ssh,
il en ressort que c’est un protocole utilisé pour sécuriser la communication dans un
réseau. Nous nous sommes attardées sur l’installation et la configuration du serveur
ainsi que du client ssh. Nous avons également étudié le système de sécurité des données
telles que le cryptage symétrique (clef de cryptage=clef de décryptage) le cryptage
asymétrique (clef publique et clef privée) ainsi que les fonctions de hachage. Aussi
avec le Protocole ssh on peut également prendre le contrôle d’une machine à distance
et effectuer des travaux sur un serveur distant.
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
Webographie
➢ https://blog.keyfactor.com/ssh-protocol
➢ https://documentation.help/PuTTY/you-what.html
➢ https://www.hostinger.fr/tutoriels/ssh-linux/
➢ https://phoenixnap.com/kb/how-to-enable-ssh-on-debian
➢ https://doc.fedora-fr.org/wiki/SSH_:_Authentification_par_cl%C3%A9
➢ https://doc.ubuntu-fr.org/ssh
UNIVERSITE DE DSCHANG
PRESENTATION, CONFIGURATION ET UTILISATION D’UN SERVEUR SSH
➢ https://docs.fedoraproject.org/en-US/fedora/rawhide/system-administrators-
guide/infrastructure-services/OpenSSH/#s2-ssh-clients-ssh
➢ https://www.serv-u.com/what-is-ssh-file-transfer-protocol
➢ https://fr.wikipedia.org/wiki/Promiscuous_mode
UNIVERSITE DE DSCHANG