logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:ssh:sshfs [11/01/2014 15:38]
bendia [Partage de fichiers sécurisé avec sshfs]
doc:reseau:ssh:sshfs [15/01/2019 14:08] (Version actuelle)
kawer [sshfs : partage de fichiers sécurisé]
Ligne 1: Ligne 1:
-**.** +====== ​sshfs : partage ​de fichiers sécurisé ======
- +
-Sshfs est un outil permettant d'​utiliser le protocole [[:​doc:​reseau:​ssh|ssh]] comme un système de fichiers et ainsi monter un répertoire distant à travers le protocole [[:​doc:​reseau:​ssh|ssh]]. \\  +
-Alors que [[:​doc:​reseau:​ssh|ssh]] s'​utilise en ligne de commande, sshfs permet d'​utiliser n'​importe quel gestionnaire de fichiers de manière transparente. \\  +
-Cet outil permet ainsi d'​allier sécurité et facilité d'​emploi pour les utilisateurs.  +
-  * Le retour sur le forum est ici : ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) +
-====== ​Partage ​de fichiers sécurisé ​avec sshfs ======+
  
   * Objet : Comment partager des fichiers simplement, efficacement et de manière sécurisée   * Objet : Comment partager des fichiers simplement, efficacement et de manière sécurisée
-  * Niveau requis : FIXME {{tag>​débutant avisé}}+  * Niveau requis : {{tag>​débutant avisé}}
   * Commentaires : Avoir un accès sur un serveur ssh   * Commentaires : Avoir un accès sur un serveur ssh
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>en-chantier ​à-tester}} +  * Suivi : {{tag>à-compléter ​à-tester}} 
-    * Création par <​vous>​ <date+    * Création par [[user>smolski]] le 19/04/2010 
-    * Testé par <...> le <...> FIXME +    * Testé par kawer en 2018 
-  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=2190 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=2190 | ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
-===== Débutant =====+
  
-Les pages de référence pour débuter l'​utilisation du terminal : 
  
-  * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
  
-===== Installation côté serveur ​=====+===== Introduction ​=====
  
-Installer openssh-server ​ +Sshfs est un outil permettant d'​utiliser le protocole [[:​doc:​reseau:​ssh|ssh]] comme un système de fichiers et ainsi monter un répertoire distant à travers le protocole [[:​doc:​reseau:​ssh|ssh]]. \\  
- # apt-get install openssh-server ​+Alors que [[:​doc:​reseau:​ssh|ssh]] s'​utilise en ligne de commande, sshfs permet d'​utiliser n'​importe quel gestionnaire de fichiers de manière transparente. \\  
 +Cet outil permet ainsi d'​allier sécurité et facilité d'​emploi pour les utilisateurs.
  
-Démarrer maintenant le démon ssh : +===== Installation côté serveur =====
- # /​etc/​init.d/​ssh start+
  
-Le serveur est fonctionnel. \\  +Il suffit d'avoir un [[doc:​reseau:​ssh:​serveur|serveur ssh]] fonctionnel
-Cela étant, chaque client qui voudra se connecter au serveur devra avoir un compte d'​utilisateur sur le serveur.+
  
  
Ligne 38: Ligne 28:
  
 Installer simplement sshfs Installer simplement sshfs
- # apt-get install sshfs 
  
-Voir aussi : \\  +<code root>​apt-get update && apt-get install ​sshfs</​code>​
-[[:​doc:​reseau:​sshfs|SSHFS]]+
  
 ===== Test rapide ===== ===== Test rapide =====
  
 Sur le système client, créer un répertoire dans lequel va être monté le système de fichiers : Sur le système client, créer un répertoire dans lequel va être monté le système de fichiers :
-mkdir /​home/​utilisateur/​Test+<code user>mkdir /​home/​utilisateur/​Test</​code>​
 Monter un répertoire distant (ici ~/Public): Monter un répertoire distant (ici ~/Public):
-sshfs utilisateur@ip_distante:/​home/​utilisateur/​Public /​home/​utilisateur/​Test+<code user>sshfs utilisateur@ip_distante:/​home/​utilisateur/​Public /​home/​utilisateur/​Test</​code>​
 Le mot de passe de l'​utilisateur est alors demandé. Le mot de passe de l'​utilisateur est alors demandé.
  
Ligne 54: Ligne 42:
  
 Enfin, penser à démonter :  Enfin, penser à démonter : 
-fusermount -u /​home/​utilisateur/​Test+<code user>fusermount -u /​home/​utilisateur/​Test</​code>​
  
 Prochaine étape : améliorer la sécurité par l'​utilisation d'une clé de chiffrement. Prochaine étape : améliorer la sécurité par l'​utilisation d'une clé de chiffrement.
Ligne 61: Ligne 49:
 ===== Sécurisation ===== ===== Sécurisation =====
  
-L'​authentification par simple mot de passe n'est pas infaillible,​ car ce dernier peut être découvert puis utilisé. Malgré tout, cela reste relativement fiable, car, bien sûr, le mot de passe est __transmis chiffré__. \\  +Voir [[doc:​reseau:​ssh:serveur#​securisation|Sécurisation ​d'un serveur SSH]]
-Par contre, l'​utilisation d'une clé de chiffrement,​ elle-même protégée par une phrase de passe, renforce largement la sécurisation. \\  +
-En effet, pour se connecter, il faut alors : +
-  - être en possession de la clé privée, +
-  - connaître la phrase de passe qui permet ​d'utiliser la clé.+
  
-== En résumé : == 
- 
-Un utilisateur : 
-  - doit donc avoir un compte sur le serveur, 
-  - il doit ensuite envoyer une clé publique de chiffrement au serveur. 
-Avec cette clé, le serveur peut alors chiffrer les données qu'il renvoie au client, ce dernier pouvant déchiffrer les données avec sa clé privée. 
- 
-==== Création des clés ==== 
- 
-Sur le client, chaque utilisateur qui souhaite se connecter doit créer un couple de clés de chiffrement. \\  
-La commande **ssh-keygen** permet de faire cela : 
- $ ssh-keygen -t rsa -b 4096 
-Il est alors demandé de choisir l'​emplacement de la clé (laisser par défaut dans ~/.ssh/ ). \\  
-Il est aussi demandé d'​écrire la phrase de passe (il est conseillé d'​utiliser au moins **14** caractères). \\  
-Par défaut, l'​algorithme de chiffrement **RSA** est utilisé, avec une longueur de clé de 2048 bits. \\  
-Il est possible de vérifier la présence des fichiers contenant les clés ainsi : 
-   ls ~/.ssh/ 
-    
-<note warning>​**ATTENTION !** La clé privée ne doit être accessible qu'à l'​utilisateur qui l'a créé (c'est le cas par défaut). 
-</​note>​ 
- 
- 
- 
-==== Envoi de la clé publique au serveur ==== 
- 
-Il faut maintenant envoyer au serveur la clé publique, pour que celui-ci puisse chiffrer les données. \\  
-Les clés publiques sont enregistrées sur le serveur dans le fichier : 
-   ​~/​.ssh/​authorized_keys 
-Chaque utilisateur doit avoir un compte sur la machine. Il faut donc un fichier ''​authorized_keys''​ par utilisateur. 
- 
-=== Plusieurs solutions pour copier la clé publique sur le serveur : === 
- 
-  * Utiliser simplement une clé usb. 
-Copier sur la clé usb le fichier contenant la clé publique du client ''​~/​.ssh/​id_rsa.pub'',​ puis copier-coller le contenu de ce fichier dans le fichier ''​~/​.ssh/​authorized_keys''​ qui se trouve sur le serveur. 
- 
-  * ssh-copy-id est un script (fourni avec ssh) qui utilise [[:​doc:​reseau:​ssh]] pour se connecter à une machine à distance en utilisant __le mot de passe de l'​utilisateur__. \\ L'​authentification par mot de passe ''​PasswordAuthentication yes''​ doit donc être autorisée dans le fichier de configuration du serveur ssh (par défaut). \\ Il change également les permissions des répertoires : ~/.ssh, et ~/​.ssh/​authorized_keys de l'​hôte distant pour enlever l'​accès en écriture du groupe (qui vous empêcherait de vous connecter si le serveur distant ssh a "​StrictModes yes" dans son fichier de configuration). ​ 
- 
-<note important>​Maintenant,​ seule la phrase de passe protégeant la clé doit être demandée, mais pas le mot de passe de l'​utilisateur.</​note>​ 
- 
-À la première connexion, même avec l'​utilisation d'une clé de chiffrement,​ il est demandé de confirmer (par yes) car le serveur n'est pas reconnu, puisqu'​il n'a pas encore eu l'​occasion de transmettre sa clé publique au client. 
  
 ===== Problèmes fréquents ===== ===== Problèmes fréquents =====
Ligne 114: Ligne 58:
  
   * **L'​utilisateur n'a pas le droit de monter un système de fichier avec Fuse.** \\   * **L'​utilisateur n'a pas le droit de monter un système de fichier avec Fuse.** \\
-Aller dans le menu "​Système > Administration > Utilisateurs et groupes"​ et cocher "​Fuse"​ dans l'onglet "​Privilèges ​utilisateur".+Il faut ajouter ​l'​utilisateur ​au groupe fuse. 
 + 
 +<code root>​adduser votre-utilisateur fuse</​code>​ 
 + 
 +Puis, il faut redémarrer la session utilisateur
  
   * **Le firewall n'a pas été correctement paramétré.** \\   * **Le firewall n'a pas été correctement paramétré.** \\
Ligne 126: Ligne 74:
  
 Créer un petit fichier script dans lequel on écrit simplement la ligne de commande : Créer un petit fichier script dans lequel on écrit simplement la ligne de commande :
-   sshfs utilisateur@ip_distante:/​home/... +<file bash mon_script>#​!/​bin/​bash 
 +sshfs utilisateur@ip_distante:/​chemin/​du/​partage 
 +</​file>​ 
 +en adaptant le //​chemin/​du/​partage/​évidemment ;-) 
 On pourra alors créer une icône pour lancer ce script. L'​utilisateur n'aura plus qu'à cliquer sur l'​icône,​ une fenêtre graphique lui demandera la phrase de passe de la clé, et le répertoire distant apparaîtra alors sur le bureau. \\  On pourra alors créer une icône pour lancer ce script. L'​utilisateur n'aura plus qu'à cliquer sur l'​icône,​ une fenêtre graphique lui demandera la phrase de passe de la clé, et le répertoire distant apparaîtra alors sur le bureau. \\ 
 De la même façon, on pourra créer une icône pour démonter le répertoire. \\ De la même façon, on pourra créer une icône pour démonter le répertoire. \\
Ligne 137: Ligne 89:
  
  sshfs#​utilisateur@192.168.0.1:​Public Test fuse uid=1003,​gid=100,​umask=0,​allow_other 0 0  sshfs#​utilisateur@192.168.0.1:​Public Test fuse uid=1003,​gid=100,​umask=0,​allow_other 0 0
 +        ​
 Principal inconvénient : si le réseau n'est pas encore disponible au démarrage (c'est souvent le cas en wifi), le montage automatique ne se fera pas. :-( Principal inconvénient : si le réseau n'est pas encore disponible au démarrage (c'est souvent le cas en wifi), le montage automatique ne se fera pas. :-(
  
-==== Montage automatique par autofs ====+<note tip> 
 +**Approfondissements dans /​etc/​fstab**
  
-<​note>​En construction...</​note>​ 
  
 + utilisateur@hote:/​repertoire/​distant/​ /​repertoire/​local/​ fuse.sshfs [port=PORT],​umask=0,​defaults,​noauto,​user,​uid=[UID],​gid=[GID],​noatime,​allow_other,​_netdev 0 0
  
-===== Les différents fichiers de configuration ===== 
  
-  * ~/​.ssh/​config ​ : configuration ​de ssh pour l'utilisateur. +  * L'​ajout ​de _netdev permet d'attendre que le réseau soit monté avant de monter le répertoire distant\\ 
- +  * noauto le point de montage sera visible dans Nautilus ​par exemplemais pas encore monté réellement (le montage pourra alors être effectif "au clic") 
-  * /​etc/​ssh/​sshd_config ​ : configuration du serveur pour tous les utilisateurs ​de la machine. +  * Pour un peu plus de souplesse, ajouter la directive user_allow_other ​au fichier /etc/fuse.conf \\ 
- +</note> 
-  * Pour interdire l'​authentification ​par simple mot de passemodifier les lignes suivantes dans le fichier /​etc/​ssh/​sshd_config +     
- +==== Montage automatique par autofs ​====
- PasswordAuthentication no +
- UsePAM no +
-...sans oublier de redémarrer le démon : +
-   # /​etc/​init.d/​ssh restart +
- +
-  * Pour indiquer ​au client ssh la clé qu'il doit utiliser pour chacun des serveurs, il faut spécifier dans le fichier ​~/​.ssh/​config (ou /etc/ssh/​ssh_config pour tous les utilisateurs de la machine) : +
- +
- Host ServeurA +
- IdentityFile ~/.ssh/cleA +
- Host ServeurB +
- IdentityFile ~/.ssh/cleB +
- +
- +
-===== Sécuriser ssh ===== +
- +
-  * Soigner les paramètres de /​etc/​ssh/​sshd_config +
- +
-  * Dans tout les cas, il est important de regarder les logs de temps en temps. Les tentatives de connections infructueuses sont consignées dans /​var/​log/​auth.log . +
- +
- # cat /​var/​log/​auth.log | grep Invalid+
  
-  * Il est conseillé de changer le port utilisé par défaut par sshd : ''​22'',​ par un numéro de port plus élevé. Cela complique ou évite certaines attaques. \\  +<​note>​TODO</​note>​
-Cela s'​appelle de la sécurité par obscurité.+
  
-  * Bien paramétrer son firewall... 
  
-  * Fail2ban... 
  
-  * Le port knocking ?... 
  
  
doc/reseau/ssh/sshfs.1389451086.txt.gz · Dernière modification: 11/01/2014 15:38 par bendia

Pied de page des forums

Propulsé par FluxBB