Project has migrate to GitHub !
New documentation available.
|
Documentation de Configuration et d'Administration 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
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".
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.
<Default> - 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)]
<Default> - 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.
<Default> 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.
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 "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".
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.
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.
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
Les utilitaires sont là pour faciliter l'administration et monitorer MySecureShell.
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]
Cette commande permet de déconnecter l'utilisateur ou les utilisateurs connectés que vous souhaitez sftp-kill [username]
Affiche l'état du serveur et permet d'activer ou désactiver le serveur MySecureShell. sftp-state [options]
Permet d'administrer à distance un serveur MySecureShell. sftp-admin [ssh options] user@hostname
Permet de vérifier et corriger d'éventuels problèmes sur un serveur MySecureShell. sftp-verif
Permet de gérer simplement les utilisateurs MySecureShell en ligne de commande. Pour créer un compte: sftp-user create [user] [home] Pour supprimer un compte: sftp-user delete [user] Pour lister les comptes: sftp-user list
|