Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Partie6-Implémenter L'accès Sécurisé Au Serveur-SSH

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 15

Implémenter l’accès sécurisé au

Serveur SSH

1
Présentation de SSH et Telnet.
• Pour accéder à un serveur à distance on peut utiliser plusieurs moyens :
– telnet
– Ssh
– VPN
– …
• Telnet
– Permet de se connecter à distance à un serveur sur le port tcp 23.
– Sur un système linux, le serveur telnetd est désactivé par défaut. Son
activation se fait via inetd ou xinetd.
– Toutes les données transmises par telnet entre un client et un serveur se font
en clair. Il est conseillé même en intranet d’utiliser à la place ssh.
• SSH
– SSH (Secure Shell) est un protocole Permet de se connecter à distance à un
serveur sur le port tcp 22.
– contrairement à Telnet, SSH crypte la session de connexion et empêche ainsi
tout agresseur de recueillir des mots de passe.

2
Rappel sur le cryptage

• La cryptographie est un ensemble de techniques qui protègent un


message en le transformant en un autre message
• Pour chiffrer un message on a besoin d’une fonction de chiffrement et
d’une clé :

• La fonction de déchiffrement permet à partir d’un message chiffré de


retrouver le message original en utilisant la clé de déchiffrement.

3
Rappel sur le cryptage
• Chiffrement à clé symétrique 
Le chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer
un message.

• Chiffrement asymétrique 

Un chiffrement asymétrique utilise une clé de chiffrement différente


de celle de déchiffrement. Ces deux clés sont appelées clé publique et
clé privée si le chiffrement se fait par l’une le déchiffrement se fait par
l’autre.

4
Rappel sur le cryptage
• Fonction de hachage
– Une fonction de hachage prend en entrée un message de taille
quelconque, applique une série de transformations et produit une
chaine de taille inférieure et généralement fixe qui varie selon les
algorithmes (128 bits pour MD5 et 160 bits pour SHA-1…).
– La chaîne résultante est appelée empreinte (condensé, condensat, ou
haché) qui résume en quelque sorte le fichier.
– La fonction de hachage doit être sans collision (cela signifie que la
moindre modification (même d’un bit) du document entraîne la
modification de son haché). D'autre part, il doit s'agir d'une fonction à
sens unique afin qu'il soit impossible de retrouver le message
original à partir du condensé.

5
Authentification SSH
• Il existe trois méthodes d’authentification dans la version 2 de ssh : hostbased,
password, et publickey.

– L’authentification par mot de passe


Il s’agit de l’authentification traditionnelle où, lors de la connexion, l’utilisateur
tape son mot de passe qui sera transmis de façon cryptée au serveur.

6
Authentification SSH
– Authentification par clé publique
o Le principe de cette méthode repose sur la cryptographie asymétrique
avec des clés RSA ou DSA ou aucun secret ne circule sur le réseau.
o la clé publique de l’utilisateur doit être stockée sur le serveur ssh et sa clé
privée doit être stockée sur sa machine cliente d’une manière sécurisée.
o Pour mettre en marche ce mode d'authentification, il faut effectuer des
opérations sur la machine du client :
Générer une paire de clés publique/privée pour l’utilisateur qui veut
se connecter au serveur:

RQ : L’utilitaire ssh-keygen vous demande une passphrase. C'est une


phrase de passe qui va servir à crypter la clé privée pour la protéger. 7
Authentification SSH
 Vérification de la création des deux clés :

id_rsa : la clé privée


id_rsa.pub : la clé publique

 Envoie de la clé publique au serveur


Pour assurer une communication sécurisée entre le client et le serveur,
Il faut envoyer au serveur la clé publique (id_rsa.pub).
La clé publique est ajoutée au fichier "authorized_keys" (clés
autorisées).
Pour envoyer la clé publique vers le serveur utiliser la commande ssh-
copy-id
8
Authentification SSH

Connexion au serveur et authentification par clé

On vous demande la phrase de passe pour décrypter votre clé privée.

9
Authentification SSH
• Les phases d’authentification par clé sont décrites ci-dessous :
– le client envoie au serveur une requête d’authentification par clé asymétrique. Cette
requête contient le module de la clé publique à utiliser (il s’agit du long nombre contenu
dans la clé publique)
– le serveur recherche une correspondance dans le fichier des clés autorisées pour ce
compte (généralement le fichier ~/.ssh/authorized_keys). S’il ne trouve rien,
l’authentification échoue et la connexion prend fin.
– Dans le cas contraire, le serveur récupère la clé et note les restrictions liées à son
utilisation. Le serveur peut alors rejeter le client suivant ces restrictions. Si ce n’est pas le
cas, le processus d’authentification continue.
– Le serveur génère une chaine aléatoire de 256 bits appelée un challenge et la chiffre à
l’aide de la clé publique du client. Il l’envoie ensuite au client.
– Le client reçoit le challenge crypté et le décrypte à l’aide de la clé privée qu’il est le seul à
posséder. Il combine alors ce challenge avec l’identificateur de session et génère un
haché MD5 avec le résultat de cette combinaison. Il revoie alors ce haché au serveur
– Le serveur génère le même haché MD5 avec le challenge et l’identifiant de session. Si ce
haché est identique à celui reçu du client, l’authentification est un succès.
• Cette méthode est la plus sécurisé dans ssh, effectivement, le client utilise deux
informations qu’il est le seul à connaitre : la clé privée et la passe phrase de cette clé, et ni la
clé privée ni la passe phrase n’est envoyée sur le réseau.
10
Authentification à clé publique et agent.
• A chaque fois que vous lancez ssh avec une authentification par clé publique, vous devez

ressaisir votre passe phrase d’authentification. La première fois, cela ne vous gênera pas, mais le

fait de la ressaisir peut s’avérer ennuyant. La Solution, utiliser l’agent ssh.

• Un agent ssh est un programme qui garde les privées en mémoire et qui fournit les services

d’authentification aux clients ssh.

• Pour utiliser l’agent ssh :

– il faut le lancer en utilisant la commande suivante :

$ eval `ssh-agent`

– il faut lui donner les clés à gérer moyennant le programme ssh-add.

$ ssh-add

• RQ : Lorsque vous utilisez un agent ssh, ne laissez pas votre terminal sans surveillance pendant

que vous êtes connecté. 11


Installation et démarrage du service SSH

• OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques libres

permettant des communications sécurisées sur un réseau informatique en

utilisant le protocole SSH.

• Pour Sécuriser l’échange entre des machines linux il faut installer et configurer la

partie cliente et la partie serveur de l’application OpenSSH :

rpm –ivh openssh-….rpm

• Pour démarrer ou arrêter le serveur ssh utilisez la commande suivante :

Service sshd start |stop|restart


12
Configuration de service SSH.

• OpenSSH est constitué de deux ensembles de fichiers de configuration, un pour les


programmes client (ssh, scp et sftp) et l'autre pour le service (sshd).
– Les informations de configuration SSH qui s'appliquent à l'ensemble du système sont
stockées dans le répertoire /etc/ssh.
o ssh_config : Fichier de configuration client SSH pour l'ensemble du système.
o sshd_config : Fichier de configuration pour le serveur sshd.
– Les informations de configuration SSH spécifiques à l'utilisateur sont stockées dans
son répertoire personnel à l'intérieur du répertoire ~/.ssh/.
• authorized_keys : Fichier contenant une liste de clés publiques autorisées pour
les serveurs. Lorsque le client se connecte à un serveur, ce dernier authentifie le
client en vérifiant sa clé publique signée qui est stockée dans ce fichier.
• id_dsa : Fichier contenant la clé DSA privée de l'utilisateur.
• id_dsa.pub : Clé DSA publique de l'utilisateur.
• id_rsa : Clé RSA privée utilisée par ssh pour la version 2 du protocole SSH.
• id_rsa.pub : Clé RSA publique utilisée par ssh pour la version 2 du protocole SSH. 13
Configuration de service SSH
• Toute la configuration du serveur SSH est enregistrée dans le fichier /etc/ssh/sshd_config.
• Ce fichier contient un ensemble de directives toutes commentées. En fait celles-ci vous
informent sur les valeurs par défaut, il ne faut décommenter l'une d'entre elles que lorsque
vous souhaitez en changer la valeur. Il faut être root pour modifier la configuration du serveur
• Les principales directives possibles
o ListenAddress 192.168.0.1 : Cette option permet de faire écouter le démon du serveur
OpenSSH, sshd, que sur une interface donnée.
o PermitRootLogin yes|no: Cette option permet d'autoriser ou non une connexion au
serveur openSSH avec le login root.
o PermitEmptyPasswords yes|no  : Cette option permet autoriser ou non l’utilisation des
mot de passe vide
o AllowUsers user1 user2 : Autorise seulement certains utilisateurs à avoir accès via SSH à
cette machine.
o PubkeyAuthentication yes|no  : Autoriser ou non la connexion par clé publique. Par
défaut, cette option est sur « yes ».
o AuthorizedKeysFile .ssh/authorized_keys : Indique le chemin vers le fichier contenant
les clés autorisées pour l'authentification par clé publique.
o PasswordAuthentication yes|no : Cette option permet d'autoriser ou non des
connexions par mot de passe
14
Création d’un tunnel simple

• Grâce à SSH, il est possible de sécuriser des protocoles TCP/IP non-sécurisés via le
transfert de port. En utilisant cette technique, le serveur SSH devient un conduit
(tunnel) crypté vers le client SSH.

ssh –L port-client:localhost:port-serveur serveur

Exemple :
ssh –L 2001:localhost:143 serveur 15

Vous aimerez peut-être aussi