You are on page 1of 7

IT NISRO

CLUB TUTORIEL INFORMATIQUE

Administration de service SSH sous Linux


1. Introduction
SSH (Secure SHell) est un protocole qui facilite les connexions scurises entre deux systmes l'aide d'une architecture client/serveur et permet aux utilisateurs de se connecter distance des systmes hte de serveurs. Toutefois, contrairement d'autres protocoles de communication distance, tels que FTP ou Telnet, SSH crypte la session de connexion et empche ainsi tout agresseur de recueillir des mots de passe non-crypts. SSH est conu pour remplacer les applications de terminal plus anciennes et moins scurises qui sont utilises pour se connecter des htes distants, comme telnet ou rsh. Un programme similaire appel scp remplace des programmes moins rcents conus pour copier des fichiers entre des htes, tels que rcp. tant donn que ces applications plus anciennes ne cryptent pas les mots de passe entre le client et le serveur, il est recommand d'viter autant que possible de les utiliser. En effet, l'utilisation de mthodes scurises pour se connecter des systmes distants, rduit les risques aussi bien pour le systme client que pour l'hte distant. Une implmentation libre de SSH est OpenSSH, livre par une grande majorit de distributions (divers Unix, Linux et MacOSX).

2. Rappelle sur la cryptographie (chiffrement)


2.1. Principe de base de la cryptographie

La cryptographie est une science permettant de convertir des informations en claire en informations codes, c'est--dire non comprhensible, puis, partir de ces informations codes ; de restituer les informations originales.

Club Tutoriel Informatique

IT NISRO

CLUB TUTORIEL INFORMATIQUE Systme cryptographique

Les lments fondamentaux sont les cls et les algorithmes. 2.2. Chiffrement cl symtrique Dans la cryptographie cl symtrique, aussi appele chiffrement cl secrte, une [seule et mme] cl est utilise la fois pour le chiffrement et le dchiffrement. Le Data Encryption Standard (DES) est un exemple de cryptosystme cl symtrique qui est largement employ par le Gouvernement fdral amricain.

Figure 1. Chiffrement symtrique

Principe Ce type cryptage repose sur la dfinition d'une fonction mathmatique tel que: Texte-chifr= Fonction (Texte-claire, cl) Avec une fonction inverse de la forme : Texte-claire= Fonction_inverse (Texte-chifr, cl) Lmetteur (X) et le destinataire (Y) doivent se mettre daccord pralablement sur la cl (k) utiliser, pour ceci ils ne doivent pas utiliser le rseau de communication standard qui est susceptible dtre espionn (par une autre personne). Chaque fois quX veux transmettre un message m Y, elle utilise la cl secrte pour chiffrer (c=fonction (m,k)), et elle envoie le rsultat de ce chiffrement par lintermdiaire du mme canal. Y utilise son tour la mme cl secrte pou dchiffrer le message cod quil a reu m=fonction_inverse(c, k). 2.3. Chiffrement asymtrique Les problmes de distribution de cl sont rsolus par la cryptographie cl publique, dont le concept fut invent par Whitfield Diffie et Martin Hellman en 1975. La cryptographie cl publique repose sur un schma asymtrique qui utilise une paire de cls pour le chiffrement: une cl publique, qui chiffre les donnes, et une cl prive correspondante, aussi appele cl secrte, qui sera utilise pour le dchiffrement. Vous 2 Club Tutoriel Informatique

IT NISRO

CLUB TUTORIEL INFORMATIQUE

publiez largement votre cl publique, tout en gardant votre cl prive secrte. Toute personne en possession dune copie de votre cl publique peut ensuite chiffrer des informations que vous seul pourrez lire.

Figure 2. Cryptographie asymtrique : chiffrement d'un document avec la cl publique Y

Lavantage est donc quX peut envoyer un message Y sans communication prive pralable (Y choisit sa cl prive z, et sa cl publique k). une fois X veut envoy un message m Y, elle le chiffre avec la cl publique de Y k (c=f(m, k)). Du fait que la fonction f est unidirectionnelle Y est la seule personne pouvoir dchiffrer le message en appliquant sa cl secrte et personnelle z (m=g(c, z)). Une remarque intressante faire est quavec ce systme, mme X qui a chiffr un message pour Y, ne pourra dchiffrer le message ainsi cod.

Figure 3. Cryptographie asymtrique : chiffrement d'un document avec la cl priv de X

3. Fonctionnalits de SSH
3 Club Tutoriel Informatique

IT NISRO

CLUB TUTORIEL INFORMATIQUE

SSH offre les prcautions suivantes au niveau de la scurit : Aprs avoir effectu une connexion initiale, le client peut s'assurer que sa connexion est tablie avec le mme serveur que lors de sa session prcdente. Le client transmet ses donnes d'authentification au serveur au moyen d'un cryptage solide 128 bits. Toutes les donnes envoyes et reues lors d'une session sont transfres au moyen d'un cryptage 128 bits, rendant ainsi le dcryptage et la lecture de toute transmission intercepte extrmement difficile. Le client peut retransmettre des applications X111 depuis le serveur. Cette technique appele retransmission X11, fournit un moyen d'utiliser en toute scurit des applications graphiques sur un rseau. tant donn que le protocole SSH crypte tout ce qu'il envoie et reoit, il peut tre utilis pour scuriser des protocoles autrement vulnrables. Grce la technique de retransmission de port, un serveur SSH peut tre employ pour scuriser des protocoles non-scuriss tels que POP, augmentant ainsi la scurit globale du systme et de ses donnes.

Les 3 tapes principales pour tablir une connexion ssh sont : - Gnration de bi-cl asymtrique (c'est dire un couple cl-prive/cl-publique RSA ou DSA ) sur une machine, en gnral la machine cliente (si on utilise plusieurs machines clientes, on effectue cette gnration en gnral sur une seule d'entre elles, puis on recopie les cls sur les autres). Cette bi-cl est stocke dans un sous-rpertoire (par exemple ~/.ssh avec OpenSSH) de l'utilisateur. - Copie de la cl publique sur les machines serveur sur lesquelles on souhaite pouvoir utiliser cette authentification. Cela consiste ajouter la ligne correspondant la cl publique prsente dans le rpertoire o elle a t gnre (par exemple, le contenu du fichier ~/.ssh/id_dsa.pub) dans un fichier du serveur situ dans le rpertoire de l'utilisateur (par exemple ~/.ssh avec OpenSSH). Le nom de ce fichier dpend de la version de SSH mais se nomme souvent authorized_keys ou authorization. - Entre de la passphrase au moment de la squence de connexion.

4. Configuration du serveur SSH


Toute la configuration du serveur SSH est enregistre dans le fichier /etc/ssh/sshd_config : Ce fichier contient un ensemble de directives toutes commentes. En fait celles-ci vous informent sur les valeurs par dfaut, il ne faut dcommenter 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

Club Tutoriel Informatique

IT NISRO

CLUB TUTORIEL INFORMATIQUE

ListenAddress 192.168.0.1 : Cette option permet de faire couter le dmon du serveur OpenSSH, sshd, que sur une interface donne. Si par exemple vous possdez 2 cartes rseaux, une permettant une connexion sur le rseau internet (avec une adresse non locale) et une autre permettant une connexion locale (par exemple avec une adresse 192.168.0.1), et que vous souhaitez que les accs SSH ne se fassent qu'en provenance du rseau local entrez votre I.P. locale. Dans ce cas, les adresses extrieurs votre rseau locale n'auront pas accs votre serveur OpenSSH. PermitRootLogin no : Cette option permet d'autoriser ou non une connexion au serveur openSSH avec le login root. Les valeurs possibles sont donc yes pour autoriser l'accs au compte root par SSH, no (par dfaut) pour la refuser et without-password pour autoriser l'accs au compte root uniquement par cl (et non par identification par mot de passe). Il est fortement conseill pour des raisons de scurit d'interdire la connexion au serveur openSSH avec le login root, et en tout cas au moins via mot de passe afin d'viter les attaques par la force brute via SSH. PermitEmptyPasswords no : Cette option permet d'autoriser ou non des connexion avec un couple identifiant/mot de passe MAIS en autorisant que le mot de passe soit vide. Ceci est une aberration du point de vue scurit. Par dfaut, cette option est sur no . AllowUsers user1 user2 : Autorise seulement certains utilisateurs avoir accs via SSH cette machine. PubkeyAuthentication yes : Autoriser ou non la connexion par cl publique. Par dfaut, cette option est sur yes . AuthorizedKeysFile .ssh/authorized_keys : Indique le chemin vers le fichier contenant les cls autorises pour l'authentification par cl publique. PasswordAuthentication yes : Cette option permet d'autoriser ou non des connexions avec un couple identifiant/mot de passe. Il est plus sr d'autoriser l'accs la machine uniquement aux utilisateurs avec des cls SSH places dans le fichier ~/.ssh/authorized_keys.

5. Configuration du client OpenSSH :


La configuration des clients SSH dpend bien sur de la configuration du serveur. Si vous avez opt pour une authentification par mot de passe (voir installation du serveur OpenSSH), la configuration du client se limite la cration d'une paire de cls. Dans le cas o vous souhaitez mettre en place une authentification par cl publique quelques manipulations supplmentaires seront ncessaires. 5 Club Tutoriel Informatique

IT NISRO

CLUB TUTORIEL INFORMATIQUE

Le client SSH est fourni avec le paquetage OpenSSH, chaque client devra donc installer le mme paquetage que le serveur. 5.1. Cration d'une paire de cl : ssh-keygen Pour crer une parie de cl, nous allons utiliser l'excutable ssh-keygen.

Plusieurs options sont disponibles : -t : (pour type) : Prcise le type de cl crer. -b : (pour bits) : Spcifie le nombre de bits de la clef crer. Le minimum est 512 bits. En gnral, on considre qu'une longueur de 1024 bits est suffisante. -f : (pour filename) : Prcise le nom du fichier de cl. Par dfaut, l'on met id_dsa si l'on choisit une cl de type dsa et id_rsa si l'on choisit une cl de type rsa . user1@mon_poste ~/.ssh $ ssh-keygen -t dsa -b 1024 -f id_dsa Generating public/private dsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_dsa. Your public key has been saved in id_dsa.pub. The key fingerprint is: 6a:98:70:33:b0:61:02:0c:eb:2d:d5:a6:c8:4c:24:23 user1@mon_poste 5.2. Authentification uniquement par mot de passe La premire des mthodes, la plus connue, repose sur le modle employ par rlogin ou rsh : l'hte distant demande un mot de passe pour s'assurer de votre identit. Pour se connecter au serveur, on utilise le programme ssh fournit par openSSH. user1@mon_poste ~/.ssh $ ssh user1@Serveur The authenticity of host 'Serveur (192.168.0.1)' can't be established. RSA key fingerprint is 33:93:84:34:59:8f:2a:d6:4a:fb:51:27:12:36:53:ac. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'Serveur,192.168.0.112' (RSA) to the list of known hosts.

Club Tutoriel Informatique

IT NISRO user1@Serveur's password: <votre mot de passe>

CLUB TUTORIEL INFORMATIQUE

Last login: Thu May 1 17:41:29 2005 from 192.168.0.20 Linux Serveur 2.4.24 #1 Wed Feb 11 01:01:56 CET 2004 i686 GNU/Linux

user1@Serveur:~$ 5.3. Authentification par cl publique ou par mot de passe L'avantage de cette mthode est qu'elle permet une connexion scurise avec un serveur distant sans demande de mot de passe, ainsi il vous est possible d'cire des scripts (ou des programmes) profitant de cela pour se connecter automatiquement un serveur afin d'effectuer diverses oprations. Il s'agit d'un mode de connexion non interactif. Une fois les cls gnres, il vous faut les placer dans votre rpertoire personel sur le serveur. Vous pouvez faire ce transfert soit grce un media (CDROM/cl USB etc...) ou bien utiliser le protocole FTP, ou encore demander un administrateur de le faire pour vous. Une fois votre cl copie sur le serveur au bon endroit crez le fichier authorized_keys comme suit : user1@Serveur:~/.ssh$ cat id_dsa.pub >> authorized_keys Puis donnez les permissions correctes ce fichier : user1@Serveur:~/.ssh$ chmod 400 authorized_keys Votre rpertoire personnel sur le serveur doit au plus avoir comme permission 755, sinon l'authentification par cl ne fonctionnera pas !

Club Tutoriel Informatique