diff options
Diffstat (limited to 'content/Informatique/2011-06-07-sftp.rst')
-rw-r--r-- | content/Informatique/2011-06-07-sftp.rst | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/content/Informatique/2011-06-07-sftp.rst b/content/Informatique/2011-06-07-sftp.rst new file mode 100644 index 0000000..4207725 --- /dev/null +++ b/content/Informatique/2011-06-07-sftp.rst @@ -0,0 +1,138 @@ +.. -*- mode: rst -*- +.. -*- coding: utf-8 -*- + +Mettre en place un environnement sftp chrooté (2) +################################################# + +:date: 2011-06-07 +:tags: Hébergement, sftp, Administration + +Il y a quelque temps, j'avais publié un billet indiquant comment mettre en +place un environnement sftp chrooté, dans lequel l'utilisateur ne peut pas +sortir du répertoire qui lui est assigné. + +La solution que j'avais proposée (modifier la configuration de sshd) était +compliquée et lourde à mettre en place. Parmi les commentaires, le logiciel +mysecureshell_ avait été évoqué. + +Présentation +============ + +Mysecureshell est une commande qui se lance au login de l'utilisateur sur la +machine. Il dispose de nombreuses possibilité de paramétrage (débit, droits), +tout en restant très simple à administrer. De plus, il empêche l'utilisateur +d'ouvrir une connexion sur la machine, il ne peut que se connecter en sftp. + +Nous allons voir ici comment le +mettre en place sur une machine Debian destinée à accueillir des +connexions sftp. + +La documentation en ligne est complète et accessible voici néanmoins une +description qui reprend les principes de l'installation. + +Installation +============ + +Mysecureshell n'est malheureusement pas disponible dans les dépôts debian. Il +est donc nécessaire d'ajouter un dépôt externe pour l'installer. Le site web +fournit des `paquets d'installation`_ pour la plupart des distributions (debian, +fedora…) + +Une fois que le dépôt est ajouté, il suffit de l'installer en lançant la +commande suivante (toujours sous debian) : + +.. code-block:: console + + # aptitude install mysecureshell + + +Configuration +============= + +Configuration de mysecureshell +------------------------------ + +La configuration se fait dans le fichier /etc/ssh/sftp-config + +Voici les champs importants à noter : + +=============== ============================================================== +Champs Signification +=============== ============================================================== +GlobalDownload Il s'agit du débit maximal qui sera utilisé quand le serveur + uploadera des fichiers vers les clients +GlobalUpload La même chose pour l'upload +StayAtHome Empêcher l'utilisateur de naviguer hors de son répertoire + personnel +VirtualChroot Met en place un faux home pour l'utilisateur +Home Défini le home que verra l'utilisateur lorsqu'il se connectera +=============== ============================================================== + +Je conseille de séparer le home « unix » de l'utilisateur de son home +« chrooté ». Cela permet de mettre en place des fichiers dans le fichier home +de l'utilisateur, sans que celui-ci ne puisse les consulter : + +Cela se fait tout simplement en mettant l'option VirtualChroot à True, et en +définissant le Home `mysecureshell` vers un sous-répertoire du home `unix` : + + +.. code-block:: bash + + StayAtHome true + VirtualChroot true + Home /home/$USER/sftp + + +Cela oblige à créer pour chaque utilisateur un répertoire sftp dans son home. +Lorsque l'utilisateur se connectera, il accedera uniquement à répertoire sftp, +mais ne pourra pas naviguer plus haut, ni consulter les autres répertoires des +autres utilisateurs. + + +Gestion des comptes +------------------- + +La configuration est assez simple : pour chaque utilisateur nous allons indiquer +que mysecureshell est la commande à exécuter lors du login de l'utilisateur. +Cela se fait en modifiant le fichier /etc/passwd. + +.. code-block:: console + + invite:x:1002:1002:,,,:/home/invite:/bin/bash + +et le remplacer le dernier champs ainsi : + + +.. code-block:: console + + invite:x:1002:1002:,,,:/home/invite:/bin/Mysecureshell + +Sauvegarder, et voilà, la configuration va s'appliquer lors de la prochaine +connexion de l'utilisateur. + +Mise à jour de la configuration +------------------------------- + +Lorsque les fichiers de configuration sont mis à jour, les connexions existantes +ne sont affectées. Elles ne le deviennent qu'à partir de la prochaine +reconnexion de l'utilisateur. + +Il est tout à fait possibile de forcer mysecureshell à appliquer les +modifications, mais cela oblige à `reconnecter les utilisateurs`_ + +Au final +======== + +Il n'y a pas grand chose à faire finalement, et c'est agréable de voir la +configuration se faire aussi rapidement ! Il est vrai que le site web de +l'application peut sembler amateur, mais cela ne reflète en rien la qualité de +l'application. + +J'abandonne donc avec plaisir la méthode que j'avais mis en place dans mon +précédent billet pour passer sur mysecureshell ! + +.. _mysecureshell : http://mysecureshell.sourceforge.net/fr/index.html +.. _paquets d'installation : http://mysecureshell.sourceforge.net/fr/installpak.html +.. _reconnecter les utilisateurs : http://mysecureshell.sourceforge.net/fr/confman.html#question9 + +.. vim: filetype=rst |