MSS Logo Web
Descriptif
· Basique
· Complet
Installation
· Packages
· Mac OS X
· Scripts
· Manuelle
Configuration
· MSS Graphical Tool
· Manuelle
· Directives
Utilisation
· Exemples
· Clients compatibles
Téléchargements
· Fichiers
· Historique
Support
· Faq
· Forum
Extras
· Sécurité
· Personnalise
· Traductions
· Publicité

Documentation de Configuration et d'Administration
Manuelle



1 - Introduction

2 - Configuration de MySecureShell

3 - Exemple 1

4 - Exemple 2

5 - Exemple 3

6 - Vérification des restrictions

7 - Gestion du démon

8 - Prise en charge des nouveaux paramètres sans déconnexions

9 - Prise en charge des nouveaux paramètres avec déconnexions

10 - Les utilitaires

11 - sftp-who

12 - sftp-kill

13 - sftp-state

14 - sftp-admin

15 - sftp-verif

16 - sftp-user

Introduction

Une fois installé, MySecureShell doit être configuré. Ici nous allons voir la configuration manuelle. Vous devez posséder un éditeur de fichiers tel que l'éditeur "Vim".
Retour au sommaire

Configuration de MySecureShell

La configuration de MySecureShell est très simple et vous allez le constater par vous-même. Vous avez un fichier de configuration situé dans "/etc/ssh" qui s'appelle "sftp_config". Ce fichier contiendra toute votre configuration pour votre serveur.

Nous allons éditer ce fichier pour y insérer tous nos paramètres. Vous devez être connecté en root pour faire ce qui suit. Ouvrez le fichier avec cette commande: "vi /etc/ssh/sftp_config".

vi /etc/ssh/sftp_config



Les explications qui vont suivre, vont êtres expliqués à partir d'exemples pour une meilleure compréhension et pour vous mettre le plus possible dans une situation qui pourrait être la votre. Toutes les explications seront toutes commentées ligne par ligne.
Retour au sommaire

Exemple 1

<Default>
</Default>

<User utilisateur1>
Home /var/ftp
Download 20k
Upload 0
</User>



- La directive "Default" est obligatoire même si elle est vide !
- Voilà l'exemple ici d'un utilisateur appelé utilisateur1 (utilisateur système).
- Cet utilisateur a comme pour répertoire par défaut "/var/ftp". Ce qui signifie que lorsque qu'il se connectera, il ira directement dans le dossier "/var/ftp" (pensez à attribuer les bons droits au dossier qui va servir au sftp).
- L'Upload est à 0 ce qui signifie que le serveur peut recevoir de l'utilisateur des documents à un débit illimité (0 = illimité).
- Le Download est cependant limité à 20 Ko/s. L'utilisateur ne pourra pas télécharger plus rapidement que 20 Ko/s par connexion.

Les débits sont gérés de la sorte suivante: [type de transfert] = [taille][unité (o -> bytes k -> kilo bytes m -> mega bytes)]
Retour au sommaire

Exemple 2

<Default>
GlobalDownload 10m
Home /var/ftp
</Default>

<Group sftp-users>
Download 1m
Upload 0
StayAtHome true
VirtualChroot true
LimitConnection 5
LimitConnectionByIP 1
</Group>



- Dans cet exemple, il ne s'agit plus d'un utilisateur mais d'un groupe appelé "sftp-users" (groupe système).
- Dans "Default", il y a la configuration de tout le serveur. N'importe quel groupe ou utilisateur connecté arrivera dans "/var/ftp".
- Voir l'exemple du dessus pour les 3 premières lignes.
- StayAtHome empêche l'utilisateur ou le groupe de remonter plus haut que son home. C'est dire que dans ce cas de figure un utilisateur faisant partie du groupe sftp-users lorsqu'il se connecte arrive dans le dossier "/var/ftp" et ne pourra pas grâce à cette restriction remonter d'un étage ("/var"). L'utilisateur est alors bloqué dans le dossier "/var/ftp" et ses sous-dossiers.
- Si vous ne voulez pas que les utilisateurs puissent savoir où se trouvent exactement les données de votre serveur sur votre système, vous n'avez qu'à activer la restriction VirtualChroot. Pour les connaisseurs cela chrootera "/var/ftp" pour chaque utilisateur et ils se verront arriver lors de la connexion dans un dossier appelé "/" et non "/var/ftp".
- Limit Connection est pour limiter le nombre de connexions simultanées maximum pour le groupe (dans cet exemple mais cela marche aussi avec un utilisateur).
- Si vous souhaitez qu'un utilisateur ne dispose que de 2 connexions simultanées à partir de son poste, et bien activez cette restriction. Cette restriction est applicable uniquement si les connexions proviennent de la même IP.
Retour au sommaire

Exemple 3

<Default>
GlobalDownload 0
Home /var/ftp
StayAtHome true
VirtualChroot true
</Default>

<Group sftp-users>
Download 20k
Upload 20k
LimitConnection 5
LimitConnectionByIP 1
</Group>

<Group unlimitftp>
Download 0
Upload 0
LimitConnection 0
LimitConnectionByIP 0
</Group>

<Group mysftp>
StayAtHome false
</Group>



Imaginez que l'utilisateur utilisateur1 appartienne a ces 2 groupes (sftp-users et unlimitftp) mais vous voulez qu'il ait des restrictions spécifiques à lui seul. Il y a là un problème puisque cela va faire un conflit de groupe pour cet utilisateur. Vous devez alors rajouter cet utilisateur comme n'étant pas associé à un groupe tout comme dans l'exemple 1.

Il est très important de comprendre ceci :
La configuration prise pour un compte possède les priorités suivantes (classe en allant vers la règle la plus prioritaire):
- Restriction du tag "Default"
- Restriction sur tout les groupes / comptes
- Restriction sur un des ses groupes
- Restriction sur l'utilisateur

Si un utilisateur est dans plusieurs groupes alors la dernière configuration applicable sera utilisée.

Les valeurs de certaines options qui sont "true" et "false" peuvent être remplacées par les valeurs binaires.
- true représente 1
- false représente 0

Pour une liste complète des options, consultez les directives ici.
Retour au sommaire

Vérification des restrictions

Vous avez appliqué comme dans les exemples ci-dessus des restrictions à des utilisateurs de groupe ou bien à des utilisateurs simples. Mais vous souhaiteriez être sûr des restrictions que vous leurs avez attribué.

Vous pouvez tester leur configuration en la testant avec le fichier MySecureShell et en ajoutant l'argument "--configtest" et "-v --configtest" pour activer le mode verbose et avoir plus de détails.
Cependant pour tester votre configuration avec par exemple un utilisateur, vous devez avoir un shell de type "bash" pour celui-ci, MySecureShell ne permet pas de tester les configurations ni de disposer des commandes qu'un shell "ordinaire" permet sauf si vous avez activé l'option "Shell".
Voilà un exemple de ce que cela peut donner :

MySecureShell --configtest
--- invite ---
Home = /home/invite
ByPassGlobalDownload = false
ByPassGlobalUpload = false
GlobalDownload = 5242880 bytes/s
GlobalUpload = 0 bytes/s
Download = 0 bytes/s
Upload = 0 bytes/s
StayAtHome = true
VirtualChroot = true
LimitConnection = 3
LimitConnectionByUser = 3
LimitConnectionByIP = 1
IdleTimeOut = 300s
ResolveIP = false
DirFakeUser = false
DirFakeGroup = true
DirFakeMode = 0000
HideFiles = {nothing to hide}
HideNoAccess = true
MaxOpenFilesForUser = 0
MaxReadFilesForUser = 0
MaxWriteFilesForUser = 0
PathDenyFilter = (null)
Shell = {no shell}
ShowLinksAsLinks = false
DefaultRights = 0000 0000
ConnectionMaxLife = 0s
DisableAccount = false
IsAdmin = false
Config is valid.



"Config is valid" : il m'indique que ma configuration est valide :-).

Pour vérifier si tout est bon lors de vos tests de connexion, vous pouvez regarder les logs qui se trouvent dans "/var/log/sftp-server.log".
Retour au sommaire

Gestion du démon

Nous allons voir ici comment gérer le démon/service MySecureShell. Nous allons voir par l'exemple comment il fonctionne.

La première commande est "sftp-state start" et/ou "/etc/init.d/mysecureshell start" (suivant les systèmes) qui permet de lancer MySecureShell. Cette commande ne peut être éxécutée que par un superutilisateur.

/etc/init.d/mysecureshell start



Maintenant, imaginons que vous avez déjà configuré MySecureShell, qu'il fonctionne parfaitement, que des utilisateurs sont connectés et que vous voulez rajouter une fonctionnalitée dans la configuration.

Vous avez là plusieurs solutions qui s'offrent à vous :
- Laisser les utilisateurs actuellement connectés avec les paramètres en cours. Les prochaines connexions auront les nouveaux changements.
- Déconnecter tous les utilisateurs actuellement connectés pour ne prendre en compte que les nouveaux paramètres.

Il exite 2 façons de déconnecter les utilisateurs, nous allons voir en détail ces solutions et différences.
Retour au sommaire

Prise en charge des nouveaux paramètres sans déconnexions

Pour laisser les utilisateurs connectés avec la prise en charge des nouveaux paramètres pour les futurs connexions, rien de plus simple !
En effet, il vous suffit juste d'appliquer les changements au fichier de configuration. Rien de plus n'est nécessaire. Lorsqu'une nouvelle personne voudra se connecter, elle aura automatiquement les nouveaux paramètres pris en compte.
Retour au sommaire

Prise en charge des nouveaux paramètres avec déconnexions

Si vous choisissez cette option là, vous allez alors devoir déconnecter toutes les personnes actuellement connectées. Cela a pour désagrément que ces personnes devront se reconnecter.
Nous allons voir 2 différentes façons de déconnecter les personnes.

1ère méthode :
Cette solution est la moins "propre", mais la plus rapide. Elle déconnecte les utilisateurs actuellement connectés mais ne fait pas le vide (flush) au niveau de la mémoire. L'avantage de cette solution est la rapiditée d'exécution !
Voici donc les commandes à exécuter :

sftp-state -yes stop && sftp-state start



2ème méthode :
Cette solution reste donc la plus "propre", mais a pour désavantage d'être plus longue en temps d'éxécution que la précédente. Cette méthode déconnectera toutes les personnes actuellement connectées et videra complètement la mémoire (au niveau sftp).
Voici donc les commandes a exécuter :

sftp-state fullstop && sftp-state start



ou bien

/etc/init.d/mysecureshell restart

Retour au sommaire

Les utilitaires

Les utilitaires sont là pour faciliter l'administration et monitorer MySecureShell.
Retour au sommaire

sftp-who

Cette commande permet de connaître qui est actuellement connecté sur le serveur, depuis combien de temps, son numéro PID et d'autres informations concernant les limites utilisées pour le client.

sftp-who [options]

options:
-v : mode bavard
--while [temps en seconde] : rafraîchis les informations pendant un intervalle de temps (utiliser ^C pour quitter)

Retour au sommaire

sftp-kill

Cette commande permet de déconnecter l'utilisateur ou les utilisateurs connectés que vous souhaitez

sftp-kill [username]

username:
- Spécifier le nom de l'utilisateur à déconnecter
- all: Entrez all pour déconnecter tout le monde

Retour au sommaire

sftp-state

Affiche l'état du serveur et permet d'activer ou désactiver le serveur MySecureShell.

sftp-state [options]

options:
- -yes : Répondra "yes" a toutes les questions posées (doit être le 1er argument)
- active / start : Activer le serveur
- shutdown / stop : Arrêter le serveur (demandera si l'on veut déconnecter ou non les clients)

Retour au sommaire

sftp-admin

Permet d'administrer à distance un serveur MySecureShell.

sftp-admin [ssh options] user@hostname

Retour au sommaire

sftp-verif

Permet de vérifier et corriger d'éventuels problèmes sur un serveur MySecureShell.

sftp-verif

Retour au sommaire

sftp-user


Permet de gérer simplement les utilisateurs MySecureShell en ligne de commande.

Pour créer un compte:

sftp-user create [user] [home]

options:
- user : nom du nouvel utilisateur
- home : répertoire de base du nouvel utilisateur



Pour supprimer un compte:

sftp-user delete [user]

options:
- user : nom de l'utilisateur



Pour lister les comptes:

sftp-user list


Retour au sommaire

Valid XHTML 1.1!