« Administration réseau sous Linux/SSH » : différence entre les versions

Contenu supprimé Contenu ajouté
Nouvelle page : SSH signifie Secure SHell. C'est un protocole qui permet de faire des connexions sécurisées (i.e. cryptées) entre un serveur et un client SSH. Vous pouvez soit vous logger à un ...
 
Aucun résumé des modifications
Ligne 1 :
SSH signifie Secure SHell.
C'est un protocole qui permet de faire des connexions sécurisées (i.e. cryptées) entre un serveur et un client SSH.
client SSH.
 
On peut l'utiliser pour se connecter à une machine distante comme avec telnet, pour transférer des fichiers de manière sécurisée ou pour créer des tunnels.
Vous pouvez soit vous logger à un serveur via une station cliente et travailler sur le serveur comme si vous étiez devant.
Les tunnels permettent sécuriser des protocoles qui ne le sont pas en faisant passer les données par une connexion SSH.
Ou, vous pouvez créer des tunnels de connexions sécurisées.
 
==Le système de clés de SSH==
 
=== Cryptographie asymétrique ===
 
Ligne 27 ⟶ 25 :
Toute autre personne en possession de la clé secrète peut décrypter le message.
 
La cryptographie symétrique est beaucoup moins gourmande en ressources processeur que la cryptographie asymétrique..., mais le gros problème est l'échange de la clé secrète entre A et B.
Dans le protocole SSL, qui est utilisé par les navigateurs Web et par SSH, la cryptographique asymétrique est utilisée au début de la communication pour que A et B puissent s'échanger un clé sécrète de manière sécurisée, puis la suite la communication est sécurisée grâce à la cryptographie symétrique en utilisant la clé secrète échangée.
de manière sécurisée... puis la suite la communication est sécurisée grâce à la cryptographie symétrique en utilisant la clé secrète échangée.
 
==Configuration du serveur SSH==
 
Pour manipuler le daemon (le lancer, l'arrêter, recharger la configuration...), on utilise la commande
Premièrement, il faut lancer le démon avec la commande
/etc/init.d/ssh start.
 
Le fichier de configuration du serveur SSH est /etc/ssh/sshd_config.
Puis il faut créer un nouveau compte pour chaque utilisateur souhaitant se connecter au serveur (commande adduser).
AÀ ne pas confondre avec /etc/ssh/ssh_config qui est le fichier de configuration du client SSH.
 
Ensuite, il faut configurer le fichier de configuration du démon sshd.
 
Le fichier de configuration du serveur SSH est/etc/ssh/sshd_config.
A ne pas confondre avec /etc/ssh/ssh_config qui est le fichier de configuration du client SSH.
 
Les options les plus intéressantes sont :
 
Parmi les multiples options, on peut noter :
*'''Port 22: ''' Signifie que le serveur SSH écoute sur le port 22, qui est le port normal de SSH. Il est possible le faire écouter sur un autre port en changeant cette ligne.
*'''Protocol 2: ''' Signifie que le serveur SSH accepte uniquement la version 2 du protocole SSH.
C'est une version plus sécurisée que la version 1 du protocole. Pour accepter les deux protocoles, change la ligne en : Protocol 2,1
*'''PermitRootLogin no: ''' Signifie que l'on ne peux pas se logger en root par SSH. Pour logger en root, il suffit de se logger en utilisateur normal et d'utiliser la commande su.
*'''X11Forwarding yes: ''' SignifieAutorise quele l'ontransfert peutpar SSH travaillerde enl'affichage export display par SSHgraphique.
*'''LoginGraceTime 600: ''' Temps de connexion maximum
*'''RSAAuthentication yes: ''' Méthode d'authentification.
Ligne 59 ⟶ 51 :
==Se logguer par SSH==
 
Deux types d'authentification sont possibles : par mot de passe et par clé.
Dans les deux cas on utilise une des commandes suivantes :
ssh -l <login> <adresse du serveur SSH>
ssh <login>@<adresse du serveur SSH>
 
=== Authentification par mot de passe ===
 
C'est la méthode la plus simple.
Lors de la connexion, après avoir donné le loginclient dussh compte sur le quel on souhaite se connecter, l'utilisateur donnedemande le mot de passe du compte et se trouve connecté.
Dans ce cas, ssh crypte le mot de passe ce qui évite de le voir circuler en clair sur le réseau.
 
Depuis la machine cliente, utilisez la commande:
 
ssh -l ''login nom_du_serveur_SSH ou adresse IP''
 
 
=== Authentification par clé ===
 
Au lieu de s'authentifier par mot de passe, les utilisateurs peuvent s'authentifier grâce à la cryptographie asymétrique et son couple de clés privée/publique, comme le fait le serveur SSH auprès du client SSH.
UneLa clé publique est placée sur la stationle serveur (dans le home du compte ousur vouslequel vouson connectez)souhaite etse uneconnecter. La clé privée reste sur lale stationposte client.
Dans ce cas, aucun mot de passe ne circule sur le réseau.
 
==== Générer une clé ====
Pour générer un couple de clés , utilisezon utilise la commande :
 
ssh-keygen -t dsa
 
Deux clés vont être générées, un clé publique qu'il faudra placer sur le serveur et une clé privée.
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.
suffisant pour une bonne protection.
 
Par défaut, laLa commande demande un nom de fichier pour sauvegarder la clé privée et un nom de fichier pour sauvegarder la clé publique.
Par défaut, la clé privée est stockée dans le fichier $HOME/.ssh/id_dsa.
 
La clé privée est stockéeenregistrée dansavec leles fichierpermissions $HOME/600.ssh/''nom_que_vous_avez_donné'' avec les
permissions 600 et laLa clé publique estporte stockéele dansmême lenom de fichier $HOME/.ssh/''nom_que_vous_avez_donné''suivi de ".pub", avec les permissions 644.
 
Lors de la création de la clé, l'utilitaire demande une ''pass phrase'' qui est un mot de passe pour protéger la clé privée (2eme protection).
Cette pass phrase sert à crypter la clé privée.
La pass phrase sera alors demandée à chaque utilisation de la clé privée, c'est à dire à chaque fois que vous vous loggerezconnecterez en utilisant cette méthode d'authentification.
Un mécanisme appelé ssh-agent permet de ne pas rentrer le mot de passe à chaque fois (voir les docs).
 
Ligne 101 ⟶ 90 :
==== Autoriser sa clé publique ====
 
IlPour fautautoriser iciune ajouterclé laà clése publiqueconnecter à un fichiercompte, nomméil faut placer sa partie publique dans le fichier ''$HOME/.ssh/authorized_keys'' du compte en question, sur le serveur SSH.
Si vous souhaitez vous connecter au serveur sur le compte SASAsasa, le fichier se trouve dans le répertoireest /home/SASAsasa/.ssh/authorized_keys.
 
Pour transférer la clé publique, on peut utiliser ftp, scp (copie de fichier par ssh), ou un simple copier/coller entre deux terminaux (c'est simplement une longue ligne de caractères ASCII).
 
Chaque ligne du fichier authorized_keys correspond à une clé publique autorisée à se connecter.
Pour cela, connectez vous depuis le client vers le serveur avec ftp, copiez la clé publique ''nom_que_vous_avez_donné'' .pub sur le serveur avec la commande ''put'' .
Il faut vérifier que chaque clé est bien sur une seule ligne, sinon ça ne fonctionne pas.
 
Ensuite, pour se logger, il suffit de procéder comme précédemment.
 
Si la clé privée a été enregistré dans un autre fichier que $HOME/.ssh/id_dsa, il faut le préciser au client ssh :
Si c'est la première clé que vous ajoutez vous pouvez faire mv ''nom_que_vous_avez_donné'' .pub authorized_keys Si ce n'est pas la première : cat ''nom_que_vous_avez_donné'' .pub >> authorized_keys.
ssh -i <nom du fichier contenant la clé privée> <login>@<serveur>
 
Ensuite, pour se logger, il suffit de procéder comme précédemment.
 
==Créer un "tunnel" crypté entre deux stations==