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

2014 Hakim Benameurlaine 1

Table des matires


1 OpenSSH......................................................................................................................2
1.1 Introduction ..........................................................................................................2
1.2 Installation............................................................................................................2
1.3 Test de connexion ................................................................................................2
1.4 Configuration du serveur ssh ...............................................................................3
1.5 Contrle du service ssh ........................................................................................4
1.6 Log .......................................................................................................................4
1.7 Client ssh..............................................................................................................5
1.8 Connexion ssh ......................................................................................................6
1.8.1 Authentification par mot de passe....................................................................6
1.8.2 Authentification par cl (avec passphrase) ......................................................7
1.8.3 Authentification par cl (sans passphrase).....................................................12
1.9 La copie scurise ..............................................................................................15
1.10 Le transfert de fichier scuris ...........................................................................16
1.11 Le Xforwarding en utilisant SSH.......................................................................18
1.12 Tunnel SSH ........................................................................................................19
1.13 TUNNEL SSH -L (LOCAL) ET SSH -R (REMOTE) ......................................21
1.14 MMO ...............................................................................................................22




2014 Hakim Benameurlaine 2
1 OpenSSH
1.1 Introduction
De nombreux outils ont t fournis pour utiliser la capacit du rseau.
changer, copier, utiliser des Shells distance. Les noms de ces outils sont
respectivement ftp, rcp, telnet, etc... Bien que ces outils, utiliss pendant des
annes et mme encore aujourd'hui dans beaucoup dentreprises, soient trs
pratiques, ils comportent une faiblesse importante. Leurs transactions sont
transmises en clair via le rseau. De ce fait, n'importe quelle personne mal
intentionne peut tre en mesure d'observer ce que vous fates, allant mme
jusqu' subtiliser vos donnes personnelles et mots de passe.
SSH signifie Secure SHell. C'est un protocole qui permet de faire des
connexions scurises (cryptes) entre un serveur et un client SSH. Nous
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

2014 Hakim Benameurlaine 3
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
dfaut 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 scurise 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.
2014 Hakim Benameurlaine 4
Si vous avez modifi le fichier de configuration du serveur, il faut lui dire
de relire son fichier de configuration :

1.5 Contrle du service ssh
Dmarrer le service openssh
# service sshd start
Dmarrage de sshd : [ OK ]
Vrifier le statut du dmon sshd
# service sshd status
sshd (pid 1579) en cours d'excution
Arrter le service sshd
# service sshd stop
Arret de sshd : [ OK ]
1.6 Log
Si problme vrifier le fichier log /var/log/secure
# tail f /var/log/secure

2014 Hakim Benameurlaine 5
1.7 Client ssh
Les informations spcifiques l'utilisateur se trouvent le rpertoire ~/.ssh

Le fichier de configuration du client est :
/etc/ssh/ssh_config
Il existe diffrentes options pour se connecter un hte via la commande
ssh.
-l login Identifiant de l'utilisateur.
-v
-vv
-vvv
Mode verbeux, permet d'obtenir les messages de debugage plus
ou moins complets (le nombre maximum tant 3).
-1 ou 2 Version de ssh employ. ssh1 ou ssh2
-p port Numro du port distant
Exemple d' utilisation :
ssh -vv -l utilisateur -p port -(1|2) hte ou ssh utilisateur@hte
L'hte distant doit avoir un serveur ssh, nomm sshd, qui permet la
connexion.
2014 Hakim Benameurlaine 6
1.8 Connexion ssh
Il existe trois mthodes dauthentification via ssh.
1.8.1 Authentification par mot de passe
C'est la mthode la plus simple. Depuis la machine cliente, tapez :

On peut spcifier le nom de lusager avec loption l :

Si c'est la premire connexion SSH depuis ce client vers ce serveur, il vous
demande si le fingerprint de la cl publique prsente par le serveur est
bien le bon.
Pour tre sr que vous vous connectez au bon serveur, vous devez
connatre de faon certaine le fingerprint de sa cl publique et la
comparer celle qu'il vous affiche.
2014 Hakim Benameurlaine 7
Si les deux fingerprints sont identiques, rpondez yes, et la cl
publique du serveur est alors rajoute au fichier ~/.ssh/known_hosts
Si vous vous tes dj connect depuis ce client vers le serveur, sa cl
publique est dj dans le fichier ~/.ssh/known_hosts et il ne vous
demande donc rien.
Ensuite, entrez votre mot de passe et vous verrez apparatre le prompt,
comme lors dune connexion locale.
Pour quitter la session ssh :

1.8.2 Authentification par cl (avec passphrase)
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent
s'authentifier grce la cryptographie asymtrique et son couple de cls
prive/publique, comme le fait le serveur SSH auprs du client SSH.
1) Gnrer la paire de cls
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 prive dont vous gardez jalousement l'entre. Ce systme va nous
permettre de nous identifier auprs des htes que nous dsirons
contacter. Il nous faut au pralable crer le trousseau.
2014 Hakim Benameurlaine 8
Pour gnrer un couple de cls DSA, tapez :

Pour gnrer un couple de cls RSA, tapez :

Pour les deux algorithmes (DSA, RSA), le systme nous demande dans quel
fichier nous dsirons sauvegarder la cl. Les fichiers par dfaut semblent
une bonne solution. Par la suite, une passphrase nous est demande. Celle-
ci est un mot de passe amlior , car non limit un mot ou une petite
suite de caractres. Il faut cependant prendre des prcautions, car en cas de
2014 Hakim Benameurlaine 9
perte de la passphrase, vous ne pourriez plus vous authentifier en tant que
propritaire authentique.
Les cls gnres ont par dfaut une longueur de 1024 bits, ce qui est
aujourd'hui considr comme suffisant pour une bonne protection.
Par dfaut (il demande confirmation lors du processus de cration), la cl
prive est stocke dans le fichier ~/.ssh/id_dsa avec les permissions 600 et
la cl publique est stocke dans le fichier ~/.ssh/id_dsa.pub avec les
permissions 644.
Lors de la cration, il vous demande une passphrase qui est un mot de
passe pour protger la cl prive.
Le passphrase sert crypter la cl prive. La passphrase vous sera alors
demande chaque utilisation de la cl prive, c'est dire chaque fois que
vous vous connectez en utilisant cette mthode d'authentification.
Un mcanisme 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 protge votre cl
prive avec la commande :

2014 Hakim Benameurlaine 10
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 via ssh.
La commande suivante permet de raliser cette opration via SSH :
Si on refait la copie, il ne demande que le mot de passe :

On peut maintenant se connecter sans mot de passe de lusager. Il faut
juste fournie la passphrase.
2014 Hakim Benameurlaine 11

3) Se connecter via ssh
La commande est la mme que pour une authentification par mot de passe.

2014 Hakim Benameurlaine 12
1.8.3 Authentification par cl (sans passphrase)
Gnome : paqurtage : polkit-gnome

Cette section s'adresse ceux qui utilisent un couple de cls publiques /
prives, et qui ont crypt leur cl prive avec une passphrase (c'est la
configuration la plus sre). Par consquent, le client SSH demande la
passphrase chaque utilisation des cls pour s'authentifier.
Pour viter d'avoir taper systmatiquement sa passphrase, il faut utiliser
ssh-agent : ce programme tourne en tche de fond et garde la clef en
mmoire. 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, dmarrer ssh-agent en tche de fond :
2014 Hakim Benameurlaine 13
Puis donnez votre cl l'agent :

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
2014 Hakim Benameurlaine 14
Dmarrez le serveur graphique avec la commande :
# ssh-agent startx
Il vous suffit ensuite d'ouvrir un (xterm) terminal graphique et de taper :

L'agent sera actif pour toutes les applications utilises en mode graphique.

2014 Hakim Benameurlaine 15
1.9 La copie scurise
SSH fournit un outil de copie scurise en standard, sous le nom de scp
pour SecureCoPy. Il remplace son anctre rcp. Son usage est trs simple :
scp hte_source:source hte_destination:destination
Lorsque l'hte correspond la machine o vous vous trouvez, il n'est pas
ncessaire de l'inscrire.

Vous pouvez galement faire des copies rcursives, comme nous le ferions
avec n'importe quel autre utilitaire de copie. Par exemple pour copier le
rpertoire /data dans /root/data du serveur 192.168.1.102 :


2014 Hakim Benameurlaine 16
1.10 Le transfert de fichier scuris
Tout comme on peut copier des fichiers distance par l'intermdiaire de scp,
il est galement possible de transfrer des fichiers par l'intermdiaire d'un ftp
scuris nomm SecureFTP.



2014 Hakim Benameurlaine 17
Commandes disponibles sur sftp :
cd path
Change le rpertoire distant vers 'path'
lcd path
Change le rpertoire 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 propritaire du fichier 'path' par 'own'
help
Affiche ce message d'aide
get remote-path [local-path]
Tlcharge le fichier
lls [ls-options [path]]
Affiche le listing du rpertoire local
ln oldpath newpath
Cre un lien symbolique du fichier distant
lmkdir path
Cre un rpertoire local
lpwd
Affiche le rpertoire courant
ls [path]
Affiche le listing du rpertoire distant
lumask umask
Positionne l'umask local 'umask'
mkdir path
Cre le rpertoire distant
put local-path [remote-path]
Charge le fichier
pwd
Affiche le rpertoire courant distant
exit
Quitte sftp
quit
Quitte sftp
rename oldpath newpath
Renomme le fichier distant
rmdir path
Supprime le rpertoire distant
rm path
Supprime le fichier distant
symlink oldpath newpath
Cre un lien symbolique du fichier distant
version
Affiche la version de sftp
!command
Excute la 'commande' dans un shell local
!
Sort vers un shell local
?
Affiche ce message d'aide


2014 Hakim Benameurlaine 18
1.11 Le Xforwarding en utilisant SSH
L'avantage d'utiliser ssh rside dans la connexion chiffre et l'impossibilit
un agresseur ventuel de lire ce que vous fates via le rseau.
1) Il faut dabord autoriser le client recevoir le Xforwarding. Pour cela il faut
modifier le fichier /etc/ssh/ssh_config (sur le serveur local):

2) Activer l' option X11Forwarding dans le fichier de configuration
/etc/ssh/sshd_config du serveur distant.
3) Ensuite lancer lapplication dans la session ssh partir du serveur local :
192.168.189.128 tant ladresse du serveur distant.
Lapplication xclock sera affiche le serveur local mais sexcute sur le
serveur distant.
2014 Hakim Benameurlaine 19
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 accs SSH.
En premier, dmarrer 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 :

2012 est le numro de port sur la machine cliente partir duquel la
connexion entre dans le tunnel SSH (le port doit tre suprieur 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 :
2014 Hakim Benameurlaine 20

Exemple de tunnel SSH

ssh -L 2012:serveur.exemple.org:80 usager@serveur.exemple.org

2014 Hakim Benameurlaine 21
1.13 TUNNEL SSH -L (LOCAL) ET SSH -R (REMOTE)
On va dcrire le fonctionnement d'un tunnel en mode local et en mode
distant.
SSH Local

Syntaxe :
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'accder un serveur sur un rseau priv.

2014 Hakim Benameurlaine 22
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'accs un serveur sur un
rseau priv.
1.14 MMO

Sshd Serveur ssh
Scp Copie distante scurise
ssh-keygen gnration de clefs d'authentification
Sftp Transfert scuris de fichiers
slogin/ssh Client ssh
ssh-add Ajoute les identits DSA ou RSA l'agent d'authentification
ssh-agent Agent d'authentification
ssh-keyscan Recueille les clefs publiques ssh

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