Vous êtes sur la page 1sur 37

l’Institut Spécialisé de Gestion et de l’Informatique

OpenSSH
Encadré par :
Mr ELQASSIMY MUSTAPHA

Réalisé par :
YOUSSEF OUHAMMOU
EL MEHDI OUBAHA

Année scolaire :2019/2020


OpenSSH

Plan de Projet
•1- Remerciements
•2- Introduction
•3- Installation
•4- Test de connexion
•5- Configuration du serveur ssh
•6- Contrôle du service ssh
•7- Log
•8- Client ssh
•9- Connexion ssh
9-1- Authentification par mot de passe
9-2- Authentification par clé
9-3- Authentification sans mot de passe
•10- La copie sécurisée
•11- Le transfert de fichier sécurisé
•12- Le Xforwarding
•13- Tunnel SSH
•14- Conclusion
2
OpenSSH

1- Remerciements :

• Je tiens à remercier toutes les personnes qui m'ont aidé lors de


la rédaction de ce rapport, qu’ils trouvent ici l’expression de ma
grande reconnaissance et l’assurance de mes profonds
respects.
 
• Mes remerciements aussi à tous mes Formateurs (1ière et 2ième
Année),surtout Mr MUSTAPHA ELQASSAMY qui ont déployés
tous leurs efforts pour me préparer à affronter la vie
professionnelle.

• Enfin, je tiens à remercier toutes les personnes qui m'ont


conseillé et relu lors de la rédaction de ce rapport de PFE : Ma
Famille Biologique, Mes Amis et particulièrement à El-Mehdi
OUBAHA.

3
OpenSSH

2- Introduction :

• De nombreux outils ont été fournis pour utiliser la capacité du


réseau. Échanger, copier, utiliser des Shells à distance. Les
noms de ces outils sont respectivement ftp, rcp, telnet, etc...
Bien que ces outils, utilisés pendant des années et même
encore aujourd'hui dans beaucoup d’entreprises, soient très
pratiques, ils comportent une faiblesse importante. Leurs
transactions sont transmises en clair via le réseau. De ce fait,
n'importe quelle personne mal intentionnée peut être en
mesure d'observer ce que vous faîtes, allant même jusqu'à
subtiliser vos données personnelles et mots de passe.

• SSH signifie Secure SHell. C'est un protocole qui permet de


faire des connexions sécurisées (cryptées) entre un serveur et
un client SSH. Nous allons utiliser le programme OpenSSH, qui
est la version libre du client et du serveur SSH.
OpenSSH

3- Installation :

Pour RedHat, les paquetages openssh sont les suivants :

• openssh

• openssh-askpass

• openssh-clients

• openssh-server
OpenSSH

4- Test de connexion :
OpenSSH
5- Configuration du serveur ssh :
Le fichier de configuration du serveur SSH est /etc/ssh/sshd_config. A ne pas
confondre avec le fichier /etc/ssh/ssh_config, qui est le fichier de configuration du
client SSH.

Les lignes les plus importantes de ce fichier de configuration sont:

Port 22

Signifie que le serveur SSH écoute sur le port 22, qui est le port par défaut de SSH.
Vous pouvez le faire écouter sur un autre port en changeant cette ligne. Vous
pouvez aussi le faire écouter sur plusieurs ports à la fois en rajoutant des lignes
similaires.

Protocol 2

Signifie que votre serveur SSH accepte uniquement la version 2 du protocole SSH.
C'est une version plus sécurisée que la version 1 du protocole. Certains vieux
clients SSH utilisent SSH version 1. Si vous voulez que le serveur accepte les deux
protocoles, changez la ligne en :

Protocol 2,1

PermitRootLogin yes
7
OpenSSH

Vous pouvez changer et mettre "no", ce qui signifie que pour vous
connecter en root à distance, vous devrez d'abord vous connecter par
SSH en tant que simple utilisateur, puis utiliser la commande su pour
devenir root.

X11Forwarding yes

Signifie que vous allez pouvoir travailler en export display par SSH. Ce
sera expliqué plus tard, dans la partie Xforwarding.

Si vous avez modifié le fichier de configuration du serveur, il faut lui dire


de relire son fichier de configuration :
OpenSSH

6- Contrôle du service ssh :

Démarrer le service openssh

Vérifier le statut du démon sshd

Arrêter le service sshd

 
9
OpenSSH

7- Log :

Si problème vérifier le fichier log /var/log/secure

10
OpenSSH

8- Client ssh :

Les informations spécifiques à l'utilisateur se trouvent le répertoire ~/.ssh

Le fichier de configuration du client est :

11
OpenSSH

Il existe différentes options pour se connecter à un hôte via la


commande ssh.

-l login Identifiant de l'utilisateur.

-v Mode verbeux, permet d'obtenir les


-vv messages de debugage plus ou moins
-vvv complets (le nombre maximum étant 3).
-1 ou –2 Version de ssh employé. ssh1 ou ssh2

-p port Numéro du port distant

Exemple d'utilisation :

L'hôte distant doit avoir un serveur ssh, nommé sshd, qui permet la
connexion.

12
OpenSSH

9- Connexion ssh :
9-1- Authentification par mot de passe
C'est la méthode la plus simple. Depuis la machine cliente, tapez :

On peut spécifier le nom de l’usager avec l’option – l :

13
OpenSSH

Si c'est la première connexion SSH depuis ce client vers ce


serveur, il vous demande si le fingerprint de la clé publique
présentée par le serveur est bien le bon.
Pour être sûr que vous vous connectez au bon serveur, vous
devez connaître de façon certaine le fingerprint de sa clé publique
et la comparer à celle qu'il vous affiche.
Si les deux fingerprints sont identiques, répondez yes, et la clé
publique du serveur est alors rajoutée au fichier
~/.ssh/known_hosts
Si vous vous êtes déjà connecté depuis ce client vers le serveur,
sa clé publique est déjà dans le fichier ~/.ssh/known_hosts et il ne
vous demande donc rien.
Ensuite, entrez votre mot de passe et vous verrez apparaître le
prompt, comme lors d’une connexion locale.

14
OpenSSH
9-2- Authentification par clé :
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent
s'authentifier grâce à la cryptographie asymétrique et son couple de clés
privée/publique, comme le fait le serveur SSH auprès du client SSH.

1) Générer la paire de clés

SSH s'appuie sur des algorithmes à paire de clefs, ce qui signifie que vous
disposez d'une clé publique, disponible pour tout un chacun et une clé
privée dont vous gardez jalousement l'entrée. Ce système va nous
permettre de nous identifier auprès des hôtes que nous désirons contacter.
Il nous faut au préalable créer le trousseau.

Pour générer un couple de clés DSA, tapez :

15
OpenSSH
Pour générer un couple de clés RSA, tapez :

Pour les deux algorithmes (DSA, RSA), le système nous demande dans quel fichier
nous désirons sauvegarder la clé. Les fichiers par défaut semblent une bonne
solution. Par la suite, une passphrase nous est demandée. Celleci est un « mot de
passe amélioré », car non limité à un mot ou une petite suite de caractères. Il faut
cependant prendre des précautions, car en cas de perte de la passphrase, vous ne
pourriez plus vous authentifier en tant que propriétaire authentique.
Les clés générées ont par défaut une longueur de 1024 bits, ce qui est aujourd'hui
considéré comme suffisant pour une bonne protection.
Par défaut (il demande confirmation lors du processus de création), la clé privée est
stockée dans le fichier ~/.ssh/id_dsa avec les permissions 600 et la clé publique est
stockée dans le fichier ~/.ssh/id_dsa.pub avec les permissions 644.
Lors de la création, il vous demande une passphrase qui est un mot de passe pour
protéger la clé privée. 16
OpenSSH
Le passphrase sert à crypter la clé privée. La passphrase vous sera alors demandée à chaque
utilisation de la clé privée, c'est à dire à chaque fois que vous vous connectez en utilisant cette
méthode d'authentification.
Un mécanisme appelé ssh-agent permet de ne pas rentrer le mot de passe à chaque fois...
comme nous le verrons un peu plus loin.
Vous pouvez à tout moment changer la passphrase qui protège votre clé privée avec la
commande :

2) Autoriser votre clé publique


Pour cela, il suffit de copier votre clé publique dans le fichier ~/.ssh/authorized_keys de la
machine sur laquelle vous voulez vous connecter à distance.
La commande suivante permet de réaliser cette opération via SSH :

17
OpenSSH

Si on refait la copie, il ne demande que le mot de passe :

Le fichier est maintenant copié sur l'hôte distant, il reste à inclure la clé dans le
fichier /$HOME/.ssh/authorized_keys :

On peut maintenant se connecter sans mot de passe de l’usager. Il faut juste


fournie la passphrase.

18
OpenSSH

Même chose pour scp :

3) Se connecter via ssh


La commande est la même que pour une authentification par mot de passe.

19
OpenSSH

9-3- Authentification sans mot de passe :

Cette section s'adresse à ceux qui utilisent un couple de clés


publiques / privées, et qui ont crypté leur clé privée avec une
passphrase (c'est la configuration la plus sûre). Par conséquent, le
client SSH demande la passphrase à chaque utilisation des clés pour
s'authentifier.
Pour éviter d'avoir à taper systématiquement sa passphrase, il faut
utiliser ssh-agent : ce programme tourne en tâche de fond et garde la
clef en mémoire. La commande ssh-add permet de donner sa clé à ssh-
agent. Ensuite, quand vous utilisez le client ssh, il contacte ssh-agent
pour qu'il lui donne la clé

20
OpenSSH

Mode console
Dans une console, démarrer ssh-agent en tâche de fond :

Puis donnez votre clé à l'agent :

21
OpenSSH

Il vous demande alors votre passphrase. Maintenant que votre clé a été
transmise à l'agent, vous pouvez vous connecter sans entrer de mot de
passe à toutes les machines pour lesquelles vous avez mis votre clé
publique dans le fichier ~/.ssh/authorized_keys.

Pour tuer l'agent ssh-agent, il suffit de faire :

22
OpenSSH

Mode graphique
Démarrez le serveur graphique avec la commande :

Il vous suffit ensuite d'ouvrir un (xterm) terminal graphique et de taper :

L'agent sera actif pour toutes les applications utilisées en mode graphique.

23
OpenSSH
10- La copie sécurisée :

SSH fournit un outil de copie sécurisée en standard, sous le nom de scp pour
SecureCoPy. Il remplace son ancêtre rcp. Son usage est très simple :

Lorsque l'hôte correspond à la machine où vous vous trouvez, il n'est pas


nécessaire de l'inscrire.

24
OpenSSH

Vous pouvez également faire des copies récursives, comme


nous le ferions avec n'importe quel autre utilitaire de copie. Par
exemple pour copier le répertoire /data dans /root/data du
serveur 192.168.1.102 :

25
OpenSSH

11- Le transfert de fichier sécurisé :

Tout comme on peut copier des fichiers à distance par l'intermédiaire de


scp, il est également possible de transférer des fichiers par l'intermédiaire
d'un ftp sécurisé nommé SecureFTP.

26
OpenSSH

Commandes disponibles sur sftp :

27
OpenSSH

28
OpenSSH
12- Le Xforwarding :

Xforwarding classique
Il nous manque l'exportation des applications X11 distantes. En effet, à l'aide de telnet, vous
pouviez utiliser un logiciel non présent sur votre machine, mais présent sur le serveur
distant.

1) Sur le serveur distant (192.168.1.103 étant l’adresse du serveur local) :

2) Sur le serveur local :

29
OpenSSH

3) Lancer l’application à partir du serveur distant (par exemple xclock) :

L’application apparaît sur le serveur local :

30
OpenSSH

Xforwarding en utilisant ssh


L'avantage d'utiliser ssh réside dans la
connexion chiffrée et l'impossibilité à
un agresseur éventuel de lire ce que
vous faîtes via le réseau.

1) Il faut d’abord autoriser le client à


recevoir le Xforwarding. Pour cela il
faut modifier le fichier
/etc/ssh/ssh_config (sur le serveur
local) :

31
OpenSSH

2) Activer l'option X11Forwarding dans le fichier de configuration


(/etc/ssh/sshd_config) du serveur distant.

3) Ensuite lancer l’application dans la session ssh à partir du serveur local :

192.168.189.128 étant l’adresse du serveur distant.

Dans l'exemple, nous demandons d'ouvrir la connexion ssh pour inscrire xclock
à l'intérieur.

32
OpenSSH
13- Tunnel SSH :
Faire un tunnel SSH est un moyen simple de crypter n'importe quelle
communication TCP entre votre machine et une machine sur laquelle vous avez
un accès SSH.

En premier, démarrer le service apache sur le serveur 192.168.1.103 :

Ensuite établir un tunnel SSH pour une connexion HTTP vers le serveur
192.168.1.103 à partir du serveur 192.168.1.102 :

33
OpenSSH

2020 est le numéro de port sur la machine cliente à partir duquel la connexion
entre dans le tunnel SSH (le port doit être supérieur à 1024 si on ne veut pas
avoir à lancer le tunnel en tant que root).
Il suffit de lancer un navigateur Web en lui demandant de se connecter en local
sur ce port :

34
OpenSSH

Exemple de tunnel SSH :

Exemple de tunnel SSH

35
OpenSSH

14- Conclusion :

 
Nous avons vu dans cet projet qu'est ce que L’OpenSSH et
comment le configurer dans les détails en éditant les fichiers de
configuration via les lignes de commandes
 
Il existe toutefois des outils graphiques permettant de configurer
à l’aide d’assistant les principaux paramètres d’OpenSSH, ce qui
simplifie la tâche pour ceux ne souhaitant pas rentrer dans les
lignes de commandes.
 

36
Merci

37