Accés à distance sécurisé d'une machine.
Ce tutorial va expliquer l'utilité de la communication via SSH et sa sécurisation.
Introduction
Vous voulez sans doute pouvoir acceder aux fichiers d'une machine a distance, voir même de tranférer des fichiers de votre ordinateur fixe vers votre portable.Beaucoups uttilisent le transfert FTP pour réaliser cela. C'est une solution, mais pas la plus adaptée (ni la plus sécurisée).
Grâce a une commande toute simple vous pouvez acceder à un systeme distant et vous y prendrez vite goût.
SSH
SSH est un protocole de communication qui permet d'ouvrir un shell à distance de maniére sécurisée et codée. Votre mot de passe ne passe pas en clair et vos données sont difficiles à décoder.Installation
La, à vous de jouer, en fonction de votre distribution, vous aurez à installer un paquet qui peut etre appelé "SSH" ou "OpenSSH" pour le client et "SSHd" ou "OpenSSH-Server" pour le serveur.Le client est quasiment installé d'office dans toutes les distributions GNU/LinuxSSH fonctionne en mode client-serveur. Donc une machine désire se connecter à une autre, cela ne change rien de la direction ou vont aller vos données c'est juste une convention.
L'exemple prendra :
- Un PC fixe, que l'on imaginera etre votre Ordinateur de bureau.
- IP : 192.168.1.10
- Utilisateur : toto
- Un PC portable
- IP : 192.168.1.15
- Utilisateur : toto_portable
Le PC fixe sera le serveur, ou votre portable se connectera.
Configuration
Une fois les différents paquets installés sur le serveur , vous devriez avoir un fichier :- /etc/sshd.conf ou
- /etc/ssh/sshd.conf ou
- Tout autre fichier de configuration de sshd dans le repertoire /etc/
La premiére chose a faire est de configurer le serveur. Voici un exemple :
#protocole uttilisé
Protocol 2
#Nombre d'essais maximum
MaxAuthTries 6
#sécurisation
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#identification par mot de passe
PasswordAuthentication yes
UsePAM yes
#Autoriser la connexion root
PermitRootLogin no
#Utilisateurs autorisés
# Cela précise les comptes qui peuvent etre ouvert sur la machine.
AllowUsers toto
Premiers tests
Testons de suite la connexion.Connexion à un shell
Sur le portable, tapez :$ssh toto@192.168.1.10La syntaxe est simple : l'on appele ssh pour se connecter a l'utilisateur toto qui est sur l'ordinateur(@) qui posséde l'adresse IP 192.168.1.10
Il vous demande le mot de passe de l'utilisateur toto sur l'ordinateur fixe, et aprés vous vous retrouvez dans le système distant...
Vous ne me croyez pas? Testez :
$ eject
Copie de fichiers
Je vous ai parlé de copie de fichiers la aussi la syntaxe est assez facile :
$scp utilisateur1@machine1:/chemin/vers/fichier utilisateur2@machine2:/chemin/vers/fichier2Si l'un des utilisateurs est sur l'ordinateur local vous n'avez pas besoin d'ecrire utilisateurx@machinex
Exemple concret :
En reprennant l'exemple précédent, vous voulez transferer le fichier /home/toto/dossier/mon_fichier depuis le PC fixe vers le repertoire /home/toto_portable/docs/ votre portable :
Vous taperez donc sur votre portable
toto_portable@portable$ rcp toto@192.168.1.10:/home/toto/dossier/mon_fichier /home/toto_portable/docs/
Et pour faire le contraire :
toto_portable@portable$ rcp /home/toto_portable/docs/mon_fichier toto@192.168.1.10:/home/toto/dossier/Et pour copier l'ensemble d'un dossier et de ses sous dossiers l'option récursive est toute désignée :
toto_portable@portable$ rcp -R toto@192.168.1.10:/home/toto/dossier/ /home/toto_portable/docs/
Sécurisation
Malheureusement vous n'etes pas protégé, votre mot de passe est trop vulnérable !En effet , la technique des pirates actuelle est de tester tout les mots de passe possible en tentant de se connecter a un serveur SSH.
C'est la que rentre la clef asymétrique RSA, pour expliquer cela rapidement, nous allons prendre l'exemple des mails:
Vous possédez 2 clefs, l'une est publique l'autre est privée. Vous distribuez votre clef publique à toutes les personnes qui veulent vous envoyer des mails.
Cette personne va ecrire un message et le coder grace a votre clef publique. A partir de la , personne ne peut plus lire le message, pas même votre expéditeur.
Seule votre clef privée peut décoder le message, cette clef est elle meme protégée par un mot de passe.
C'est aussi simple que sa, ici , le serveur sur lequel vous voulez vous connecter vous enverera une suite aléatoire de nombres codés avec votre clef publique, vous seul avec votre clef privée serez en mesure de décoder le message et de lui renvoyer. Et ce qui est intéréssant c'est que le mot de passe permettant d'uttiliser la clef privée n'a pas quitté votre ordinateur, et il n'est stocké nulle part a part dans votre tête