Académique Documents
Professionnel Documents
Culture Documents
Plan du cours
Prsentation SSH SSH - cot client SSH - cot serveur Autorisation forte Conclusion
Terminologie de SSH
Cest un protocole c'est--dire cest une mthode standard permettant des machines d'tablir une communication scurise dclin en 2 versions : Version 1 et version 2 : le protocole v1 possdait une faille permettant un pirate d'insrer des donnes dans le flux chiffr Cest aussi un produit : SSH Communications Security Inc (V1 et V2) Initialement dvelopp par Tatu Ylnen (payant) dernire version gratuite v1.2.12 OpenSSH du projet OpenBSD (V1 et V2) apparat en 1999, aujourdhui cest le plus utilis Produit en accord avec la lgislation franaise sur la cryptographie http://www.ssi.gouv.fr/fr/reglementation/index.html#produits_crypto Ce sont aussi des commandes en ligne
4
Terminologie de SSH
Site : http://www.openssh.org Version logicielle actuelle : openssh-5.1.tar.gz Existe en format packag pour toutes distributions Subit un audit permanent du code OpenSSH utilise principalement : OpenSSL Zlib pour la compression des flux Perl lors de linstallation, pour des applications tiers (sshcopyid) Ainsi que des gnrateurs dentropie PRNGD (Pseudo Random Number Generator Daemon) /dev/random
5
Le principe dauthentification du serveur se fait par chiffrement cl publique du protocole SSH. Le client doit donc connatre la cl publique du serveur sur lequel il veut se connecter avant toute connexion. Ainsi, il existe un mcanisme pour la machine cliente pour stocker les cls d'un serveur afin de les rutiliser ensuite; Il pourra ainsi vrifier la cl d'un serveur chaque nouvelle connexion avec celle enregistre lors de la premire connexion; Cela permet d'viter les attaques du type man-in-themiddle
10
Le support d'un protocole de VPN est une fonctionnalit apparue rcemment dans OpenSSH. Le principe est le mme que pour OpenVPN mais il est bas sur le protocole SSH (diffrents des tunnels TCP SSH) Supporte les interfaces rseaux virtuelles Tun/Tap (niveau 3/niveau 2) Option activer du ct serveur : PermitTunnel
11
root 20702 0.0 0.1 8188 2692 ? victor 20733 0.0 0.0 8188 1624 ?
13
14
Clients/serveurs ssh
Plate-forme Windows (clients gratuits) :
SSH Tectia SSH Secure Shell for Workstation (nom du produit) http://www.ssh.com/support/downloads/secureshellwks/non-commercial.html Seul le client Tectia 3 (ex-ssh.com) est gratuit, les versions Tectia sont payantes. Inconvnient de la version gratuite : le module de connexion base de certificats X509 est dsactiv ainsi que le transfert dagent Putty Clients regroupant toutes les commandes connues sous OpenSSH http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Winscp (v3) Outil graphique de transfert de fichiers (scp/sftp, donc pas de ssh) trs performant http://winscp.net/eng/docs/lang:fr/ Serveur gratuit pour windows via Cygwin http://www.cygwin.com/ sshd aussi disponible seul sans lenvironnement Cygwin complet (attention aux problmes de scurit lis ce serveur moins robuste)
15
Clients/serveurs ssh
Plate-forme Mac
MacOS 9 et infrieur :
MacOS X :
http://www.columbia.edu/acis/software/fugu/
Unix (tous)
OpenSSH
Plan du cours
Prsentation SSH SSH - cot client SSH - cot serveur Autorisation forte Conclusion
17
18
19
20
21
victor@victor-portable:~$ scp aaa.jpg victor@localhost:/home/victor/tmp/ victor@localhost's password: aaa.jpg 100% 51KB 51.1KB/s 00:00 victor@victor-portable:~$ ls tmp aaa.jpg john.pot restore.txt
22
23
Plan du cours
Prsentation SSH SSH - cot client SSH - cot serveur Autorisation forte Conclusion
24
Les fichiers des cls prives/publiques du serveur : Cls compatibles V1 (ssh v1/ssf) ssh_host_key (prive) , ssh_host_key.pub (publique) Cls compatibles V2 (ssh v2) ssh_host_dsa_key (prive) , ssh_host_dsa_key.pub (publique) ssh_host_rsa_key (prive) , ssh_host_rsa_key.pub (publique)
25
26
28
29
30
31
32
33
Plan du cours
Prsentation SSH SSH - cot client SSH - cot serveur Autorisation forte Conclusion
35
Autentification forte
Base sur une procdure d'identification plus complexe e tdiffrente de celle des systmes Unix classiques (nom et mot de passe) Cette procdure repose sur un principe dune paire de cls publique/ prive dont la cl prive est protge par une phrase didentification ATTENTION ! la scurit de ssh par authentification forte repose alors sur la protection de la cl prive : il faut imprativement mettre une VRAI PHRASE DAUTHENTIFICATION (au moins 14 caractres)qui est en fait plus qu'un simple mot de passe, mais une vritable phrase (moins de limitation) Permet lutilisation de caractres blancs (sparateur) et dautres, maisattention aux caractres utiliss cause des diffrents types de claviersafin de pouvoir taper la passephrase L'utilisateur s'identifiera alors sans utiliser le mot de passe de la connexion classique (mot de passe Unix), qui lui circule sur le rseau, mais par sa phrase didentification sur lhte local
36
Autentification forte
Utilise un algorithme trs puissant pour le chiffrement (algorithme RSA/DSA) Ainsi chaque utilisateur possde son propre jeu de cls uniques (une cl prive = secrte, une cl publique = accessible par tous) une nouvelle connexion ncessite linstallation de la cl prive sur le client et de la cl publique sur le serveur le serveur va crer un challenge et donner un accs au client si ce dernier parvient dchiffrer le challenge avec sacl prive
37
Mise en mmoire des cls (vite la saisie rpte des phrases didentification
ssh-agent
39
Sur le serveur
cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys
Methode automatique
Sur le client:
ssh-copy-id serveur
Transferer la cl publique directement dans les fichier authorized_keys sur le serveur distant Sur le serveur
Rien a faire
40
Transfert d'agent
Relais des demandes dauthentification entre htes Permet de cascader les htes sans avoir donner dauthentification supplmentaire Ncessite une configuration administrateur sur toutes les machines cascader. Il faut dmarrer un agent au dpart de la machine cliente source, et activer le chargement des cls en mmoire Et activer le transfert dagent au niveau de tous les serveurs concerns dans le fichier de configuration "client" /etc/ssh/ssh_config : ForwardAgent yes
41
Tunneling
Cest une mthode d'utilisation de SSH pour scuriser les autres applications TCP sensibles. Son principe est de crer un tunnel chiffr entre deux machines et d'y faire passer les applications dedans. Ainsi, onpeut continuer utiliser des outils comme FTP, IMAP, POP, smtp ... de manire scuris (pour FTP: cela dpend du paramtrage du serveur ftp) Au niveau scurit, les tunnels posent quelques soucis car les ports locaux sur lesquels des transferts sont tablis sont accessibles tous les utilisateurs de la machine (notamment les passerelles) Position du problme
Il s'agit de rediriger des services souhaits et que lon ne peut accder normalement car ils sont filtrs; et dutiliser la connexion ssh (seule accepte) pour y faire passer ces services Autres services inaccessibles directement Service ssh accessible
42
Tunneling
Exemples Tunneling : cas dun intranet Crer le tunnel sur la machine locale: ssh L 18000:login@ServWeb:80 passerelle Puis lancer le navigateur Web avec lURL : http://localhost:18000 Consultation de sa messagerie par IMAP Cration du tunnel pour accder au serveur Imap par le tunnel ssh ssh L 14300:localhost:143 machine2 ou : ssh N L 14300:localhost:143 machine2 Puis configurer lapplication client imap sur localhost:14300
43
Conclusions
SSH est une bote outils complte Les connexions sont scurises Amliore la scurit mais il permet aussi de la contourner Existe diffrentes possibilits de connexions et de transferts de fichiers Les relais possibles des applications TCP permettentdaccder de nouvelles ressources Install en standard sur tous les systmes (client etserveur) Unix et MacOS X De trs bons clients pour les plate-formes existantes
44