aboutsummaryrefslogtreecommitdiff
path: root/opam
diff options
context:
space:
mode:
Diffstat (limited to 'opam')
0 files changed, 0 insertions, 0 deletions
/a> 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
.. -*- mode: rst -*-
.. -*-  coding: utf-8 -*-

Mettre en place un environnement sftp chrooté (2)
#################################################

:date: 2011-06-07
:tags: Hébergement, sftp, Administration

.. default-role:: literal

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