Documente Academic
Documente Profesional
Documente Cultură
MODULE 8
SERVEUR SSH
GROUPE 1612
ÉTÉ-2007
COLLÈGE DE MAISONNEUVE
3800, rue Sherbrooke Est
Montréal (Québec) H1X 2A2
Téléphone : (514) 254 7131
OpenSSH
1 Introduction................................................................................................................. 3
2 Installation................................................................................................................... 3
3 Test de connexion ....................................................................................................... 3
4 Configuration du serveur ssh ...................................................................................... 4
5 Contrôle du service ssh ............................................................................................... 5
6 Log .............................................................................................................................. 5
7 Client ssh..................................................................................................................... 5
8 Connexion ssh............................................................................................................. 6
8.1 Authentification par mot de passe....................................................................... 6
8.2 Authentification par clé....................................................................................... 7
8.2.1 Générer la paire de clés............................................................................... 7
8.2.2 Autoriser votre clé publique........................................................................ 9
8.2.3 Se connecter via ssh .................................................................................. 11
8.3 Authentification sans mot de passe................................................................... 11
9 La copie sécurisée ..................................................................................................... 13
10 Le transfert de fichier sécurisé.............................................................................. 13
11 Le Xforwarding..................................................................................................... 15
12 Tunnel SSH........................................................................................................... 17
13 MÉMO .................................................................................................................. 18
________________________________________________________________________
2
1 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 allons utiliser le
programme OpenSSH, qui est la version libre du client et du serveur SSH.
2 Installation
Pour Fedora Core 6, les paquetages openssh sont les suivants :
openssh-4.3p2-19.fc6.i386.rpm
openssh-askpass-4.3p2-19.fc6.i386.rpm
openssh-clients-4.3p2-19.fc6.i386.rpm
openssh-server-4.3p2-19.fc6.i386.rpm
3 Test de connexion
________________________________________________________________________
3
4 Configuration du serveur ssh
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.
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.
________________________________________________________________________
4
5 Contrôle du service ssh
6 Log
# tail –f /var/log/secure
7 Client ssh
Les informations spécifiques à l'utilisateur se trouvent le répertoire ~/.ssh
________________________________________________________________________
5
Exemple d'utilisation :
L'hôte distant doit avoir un serveur ssh, nommé sshd, qui permet la connexion.
8 Connexion ssh
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.
________________________________________________________________________
6
8.2 Authentification par clé
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.
________________________________________________________________________
7
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. Celle-ci 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 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. Cette 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 ssh-keygen -p.
________________________________________________________________________
8
8.2.2 Autoriser votre clé publique
________________________________________________________________________
9
On peut maintenant se connecter sans mot de passe de l’usager. Il faut juste fournie
la passphrase.
________________________________________________________________________
10
8.2.3 Se connecter via ssh
La commande est la même que pour une authentification par 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.
Mode console
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.
________________________________________________________________________
11
Pour tuer l'agent ssh-agent, il suffit de faire :
Mode graphique
# ssh-agent startx
L'agent sera actif pour toutes les applications utilisées en mode graphique.
________________________________________________________________________
12
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 :
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 :
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.
________________________________________________________________________
13
Commandes disponibles sur sftp :
________________________________________________________________________
14
11 Le Xforwarding
________________________________________________________________________
15
Xforwarding en utilisant ssh
Il faut d’abord autoriser le client à faire du Xforwarding. Pour cela il faut modifier
le fichier /etc/ssh/ssh_config (sur le serveur distant):
Dans l'exemple, nous demandons d'ouvrir la connexion ssh pour inscrire xclock à
l'intérieur. En fermant xclock, nous fermerons la connexion ssh.
Pour que cela soit réalisable, n'oubliez cependant pas d'activer l'option
X11Forwarding dans le fichier de configuration (/etc/ssh/sshd_config).
________________________________________________________________________
16
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.
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).
________________________________________________________________________
17
Exemple de tunnel SSH
13 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
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
________________________________________________________________________
18