Table de Matieres
I. Présentation
Au travers de ce tutoriel, je vous propose de mettre en œuvre un système de fichiers SSH. Le système SSHFS est un système de fichiers client, basé sur l’utilitaire FUSE, permettant de monter des répertoires distants, au travers d’une connexion SSH. Ce mécanisme utilise le protocole SFTP qui est un sous-système de SSH et est activé, par défaut, sur la plupart des serveurs ssh.
REMARQUE : comme SSHFS s’appuie sur le protocole SFTP, toutes les données transmises entre le serveur et le client doivent être chiffrées et déchiffrées à la volée. Ceci implique donc que les performances de ce mécanisme sont moindres, par rapport à un montage NFS. De plus, cela accroît l’utilisation de la CPU, à la fois sur le serveur et sur le client.
Toutefois, comparé aux autres protocoles système en réseau, tels que NFS ou SAMBA, l’énorme avantage de SSHFS, c’est qu’il n’est pas nécessaire d’effectuer une quelconque configuration du côté du serveur. Pour mettre SSHFS en œuvre, il suffit simplement d’accéder au serveur distant via SSH depuis le client.
De plus, SSHFS peut être utilisé indifféremment sur GNU/Linux, MacOS ou même Microsoft Windows. Dans ce tutoriel nous activerons sshfs sur un serveur Gnu/Linux pour une distribution CentOS7.
II. Installation de SSHFS
Sur une distribution CentOS7 (et autres distributions type Red Hat), il suffit simplement d’exécuter la commande suivante pour installer sshfs :
# yum install sshfs
Il va sans dire que pour une distribution type Debian, on exécutera plutôt les commandes suivantes :
$ sudo apt update $ sudo apt install sshfs
Dès lors que le package est installé, il ne reste donc plus qu’à l’utiliser. Dans le chapitre suivant, nous verrons les différentes opérations de montage et démontage d’un système de fichier SSHFS.
III. Utilisation de SSHFS
Afin de monter un répertoire distant, l’utilisateur SSH a besoin d’y accéder via la commande ssh. La commande de montage SSHFS est généralement de la forme suivante :
$ sshfs ()@:() (Options)
Ainsi, la commande sshfs lira le fichier de configuration SSH en utilisant les paramètres courants. Lorsque l’on ne précise pas le répertoire distant , par défaut, l’accès sera effectué sur le répertoire d’accueil de l’utilisateur distant.
Par exemple, pour réaliser le montage du répertoire d’accueil de l’utilisateur phil d’un hôte distant ayant l’adresse IP 192.168.1.100, il faut créer le répertoire devant servir de point de montage sur le client:
# mkdir /usr/share/phil
Ensuite, il ne reste plus qu’à exécuter la commande sshfs de montage du répertoire distant ci-dessous, sur la machine cliente :
$ sshfs (email protected):/home/phil /usr/share/phil
Comme pour toute connexion SSH, il nous sera demandé le mot de passe de l’utilisateur concerné. Si l’on souhaite éviter de saisir systématiquement ce mot de passe, on peut générer une paire de clé privée/publique pour l’utilisateur concerné (ici, dans l’exemple, il s’agit de l’utilisateur phil) et ajouter la clé publique en fin de fichier authorized_keys sur l’hôte distant. La copie de la clé publique peut se faire via l’utilitaire ssh-copy-id :
$ ssh-copy-id @
REMARQUE: pour ce transfert de clé, le mot de passe nous sera réclamé une dernière fois. Mais, dès lors que la clé publique est intégrée au fichier mentionné ci-dessus, on pourra effectuer autant de connexion sur le compte de l’utilisateur que souhaité, sans pour autant saisir un quelconque mot de passe.
On peut alors interagir avec le répertoire distant directement, comme si celui-ci se trouvait en local. Il devient alors possible d’y éditer des fichiers, ou d’en créer/supprimer autant que l’on souhaite.
Maintenant, afin d’automatiser l’opération de montage de ce système de fichiers sécurisé, on peut bien évidemment éditer le fichier /etc/fstab pour y ajouter l’occurrence de notre nouveau montage comme décrit ci-dessous:
(email protected):/home/phil /usr/share/phil fuse.sshfs defaults 0 0
ATTENTION : lorsque l’on insère ce genre de règle dans le fichier /etc/fstab, il faut s’assurer que l’on gère correctement la connexion sans mot de passe vue précédemment en insérant la clé publique de l’utilisateur dans le fichier authorized_keys de l’hôte distant.
Le démontage d’un système de fichier SSHFS peut utiliser à la fois la commande umount mais également la commande fusermount selon les modèles suivants :
$ fusermount -u /usr/share/phil
Ou
$ umount /usr/share/phil
IV. Conclusion
Dans ce tutoriel, nous avons vu comment utiliser les systèmes de fichiers SSHFS pour monter (ou démonter) un répertoire distant sur SSH. Cela peut être utile lorsque l’on souhaite interagir avec des fichiers ou répertoires distants, utilisant des applications de la machine locale.
Par ailleurs, à des fins de sécurisation des flux, on peut parfaitement cantonner les accès utilisateurs à leur répertoire d’accueil, en initialisant une prison chroot du service SFTP et en changeant le port de service SSH par défaut, par une autre valeur.
Ce genre de fonctionnalité permet d’ajouter une couche de sécurité à des applications transverses, tout en autorisant une grande flexibilité d’utilisation et une meilleure traçabilité des actions. Cela devrait faire plaisir à votre RSSI!
Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca