summaryrefslogtreecommitdiff
path: root/content/Informatique/2011-06-07-sftp.rst
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique/2011-06-07-sftp.rst')
-rw-r--r--content/Informatique/2011-06-07-sftp.rst138
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