Вы находитесь на странице: 1из 22

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

Mise en place d’un serveur OpenSSH

Encadré par :

Mr ELQASSIMY MUSTAPHA

Réalisé par :

YOUSSEF OUHAMMOU

EL MEHDI OUBAHA

Année scolaire :2019/2020

_______________________________________________________________________
 2020 ISGI MARRAKECH 1
Table des matières

1. Introduction ......................................................................................................... 2
2. Remerciements……………………………………………………………………………………………….
3. Installation ........................................................................................................... 2
4. Test de connexion ............................................................................................... 2
5. Configuration du serveur ssh .............................................................................. 3
6. Contrôle du service ssh ....................................................................................... 4
7. Log ...................................................................................................................... 4
8. Client ssh ............................................................................................................. 4
9. Connexion ssh ..................................................................................................... 5

9.1 Authentification par mot de passe ................................................................... 5


9.2 Authentification par clé ................................................................................... 7
9.3 Authentification sans mot de passe ............................................................... 11

10. La copie sécurisée ............................................................................................. 13


11. Le transfert de fichier sécurisé .......................................................................... 14
12. Le Xforwarding ................................................................................................. 16
13. Tunnel SSH ....................................................................................................... 18
14. TUNNEL SSH -L (LOCAL) ET SSH -R (REMOTE) ..................................... 20
15. MÉMO .............................................................................................................. 21

_______________________________________________________________________
 2020 ISGI MARRAKECH 2
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.

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

_______________________________________________________________________
 2020 ISGI MARRAKECH 3
allons utiliser le programme OpenSSH, qui est la version libre du client et du
serveur SSH.

1.2 Installation

Pour RedHat, les paquetages openssh sont les suivants :


openssh openssh-askpass openssh-clients
openssh-server

1.3 Test de connexion

1.4 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.

_______________________________________________________________________
 2020 ISGI MARRAKECH 4
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

Signifie que vous pouvez ouvrir une connexion SSH en tant que root.

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 :

1.5 Contrôle du service ssh

Démarrer le service openssh

_______________________________________________________________________
 2020 ISGI MARRAKECH 5
# service sshd start
Démarrage de sshd : [ OK ]

Vérifier le statut du démon sshd

# service sshd status sshd (pid


1579) en cours d'exécution

Arrêter le service sshd

# service sshd stop


Arret de sshd : [ OK ]

1.6 Log

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

# tail –f /var/log/secure

1.7 Client ssh

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

Le fichier de configuration du client est :

/etc/ssh/ssh_config

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


ssh.

-l login Identifiant de l'utilisateur.

_______________________________________________________________________
 2020 ISGI MARRAKECH 6
-v Mode verbeux, permet d'obtenir les messages de debugage plus
ou moins complets (le nombre maximum étant 3).
-vv
-vvv
-1 ou –2 Version de ssh employé. ssh1 ou ssh2
-p port Numéro du port distant
Exemple d'utilisation :

ssh -vv -l utilisateur -p port -(1|2) hôte ou ssh utilisateur@hôte

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

1.8 Connexion ssh

Il existe trois méthodes d’authentification via ssh.

1.8.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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 7
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.

1.8.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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 8
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

_______________________________________________________________________
 2020 ISGI MARRAKECH 9
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.

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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 10
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.

Même chose pour scp :

_______________________________________________________________________
 2020 ISGI MARRAKECH 11
3) Se connecter via ssh

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

1.8.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é.

Mode console

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

Puis donnez votre clé à l'agent :

_______________________________________________________________________
 2020 ISGI MARRAKECH 12
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 :

Mode graphique

Démarrez le serveur graphique avec la commande :

# ssh-agent startx

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

_______________________________________________________________________
 2020 ISGI MARRAKECH 13
L'agent sera actif pour toutes les applications utilisées en mode graphique.

1.9 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 :

scp hôte_d_ou_je_veux_copier:source_copie hôte_destination:cible

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


nécessaire de l'inscrire.

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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 14
1.10 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.

Commandes disponibles sur sftp :


cd path Change le répertoire distant vers 'path'
lcd path Change le répertoire local vers 'path'
chgrp grp path Change le groupe de fichier 'path' par 'grp'
chmod mode path Change les permissions du fichier 'path' à 'mode'
chown own path Change le propriétaire du fichier 'path' par 'own'
help Affiche ce message d'aide
get remote-path [local-path] Télécharge le fichier
lls [ls-options [path]] Affiche le listing du répertoire local
ln oldpath newpath Crée un lien symbolique du fichier distant
lmkdir path Crée un répertoire local
lpwd Affiche le répertoire courant

_______________________________________________________________________
 2020 ISGI MARRAKECH 15
ls [path] Affiche le listing du répertoire distant
lumask umask Positionne l'umask local à 'umask'
mkdir path Crée le répertoire distant
put local-path [remote-path] Charge le fichier
pwd Affiche le répertoire courant distant
exit Quitte sftp
quit Quitte sftp
rename oldpath newpath Renomme le fichier distant
rmdir path Supprime le répertoire distant
rm path Supprime le fichier distant
symlink oldpath newpath Crée un lien symbolique du fichier distant
version Affiche la version de sftp
!command Exécute la 'commande' dans un shell local
! Sort vers un shell local
? Affiche ce message d'aide

1.11 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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 16
3) Lancer l’application à partir du serveur distant (par exemple xclock) :

L’application apparaît sur le serveur local :

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):

_______________________________________________________________________
 2020 ISGI MARRAKECH 17
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.

1.12 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 :

_______________________________________________________________________
 2020 ISGI MARRAKECH 18
Ensuite établir un tunnel SSH pour une connexion HTTP vers le serveur
192.168.1.103 à partir du serveur 192.168.1.102 :

2012 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 :

Exemple de tunnel SSH

_______________________________________________________________________
 2020 ISGI MARRAKECH 19
ssh -L 2012:serveur.exemple.org:80 usager@serveur.exemple.org

1.13 TUNNEL SSH -L (LOCAL) ET SSH -R (REMOTE)

On va décrire le fonctionnement d'un tunnel en mode local et en mode


distant.
SSH Local

Syntaxe :

_______________________________________________________________________
 2020 ISGI MARRAKECH 20
localhost% ssh -L port-local:adresse:port serveur-ssh

Le SSH local permet de transmettre les demandes locales (sur le port


port-local de localhost) vers le serveur-ssh qui les envoie sur le
port port de l'adresse adresse.

Le mode local vous permet d'accéder à un serveur sur un réseau privé.

SSH Distant

Syntaxe :

localhost% ssh -R port-distant:adresse:port serveur-ssh

Le SSH distant permet de transmettre les demandes distantes (sur le port


port-distant de serveur-ssh) vers localhost qui les envoie sur le
port port de l'adresse adresse.

Le mode distant vous permet d'ouvrir l'accès à un serveur sur un réseau privé.

1.14 MÉMO

sshd Serveur ssh


scp Copie distante sécurisée
ssh-keygen génération de clefs d'authentification
sftp Transfert sécurisé de fichiers
slogin/ssh Client ssh

_______________________________________________________________________
 2020 ISGI MARRAKECH 21
ssh-add Ajoute les identités DSA ou RSA à l'agent d'authentification
ssh-agent Agent d'authentification
ssh-keyscan Recueille les clefs publiques ssh

_______________________________________________________________________
 2020 ISGI MARRAKECH 22

Вам также может понравиться