Installation et configuration d'un serveur SFTP et MySecureShell
De Wiki de la communauté Mandriva.
Si vous voulez contribuer, cliquez simplement sur l'onglet modifier. Consultez également les autres pages dont le contenu est à réviser.
Consulter cette page pour plus d'information sur le ssh.
Sommaire |
Avant propos
Client : Windows 2000
Serveur : GNU/Linux Mandriva 2008.1.
IP: 192.168.1.16
Installation
Ouvrez une console et tapez:
Puis le mot de passe root.
Nous installerons : OpenSSH qui sera utilisé par sftp-server
RSSH qui permettra de sécuriser notre serveur et restreindre l'utilisateur au serveur sftp
WinSCP qui sera notre client sftp
Normalement, OpenSSH est déjà installé sur votre distribution Mandriva, tapez tout de même :
| Pour installer rssh, lancez Sélectionnez-le et cliquez sur Appliquer (Aide). Vous pouvez également l'installer en utilisant la console en tant qu'administrateur avec la commande suivante : urpmi rssh |
Configuration
Voir comment éditer des fichiers de configuration si vous ne savez pas comment proceder.
Editons le fichier /etc/shells (exemple avec Vi) :
Vous trouverez vraisemblablement les lignes :
/bin/sh /bin/bash
Rajouter y la ligne:
/usr/bin/rssh
Votre fichier /etc/shells devrait ressembler à ça:
Enregistrez, puis fermez-le.
Maintenant, éditons le fichier /etc/rssh.conf qui est le fichier de configuration de RSSH. Faire une sauvegarde avant avec:
Editer le fichier :
Supprimer tout le contenu du fichier et mettez-y à la place les trois lignes :
logfacility = LOG_USER allowsftp umask = 022
Votre fichier /etc/rssh.conf devrait ressembler à ça:
Enregistrer le fichier. Cette configuration permet de filtrer RSSH a une utilisation unique au sftp.
Création des utilisateurs
Maintenant, on peut créer nos utilisateurs qui ne feront QUE du sftp. Nous créerons l'utilisateur test11 avec le mot de passe test12.
- création de l'utilisateur
- création du mot de passe de l'utilisateur
Lancer le service SSH si cela n'est pas encore fait avec la commande :
Utilisation
1er test (localhost)
Si vous êtes toujours connecté en root, déconnectez-vous en tapant:
Ensuite, connectez vous a votre sftp en local pour faire un premier teste de fonctionnement.
Vous devriez, après avoir renseigné le mot de passe, arriver à l'invite
sftp>
Les commandes de base sont :
- ls : lister
- cd : changer de répertoire (directory)
- put : déposer un fichier
- get : recupperer un fichier
- mkdir : créer un répertoire (make directory)
- rm : supprimer (remove)
- quit : quitter
2ème test (IP)
Vérifions maintenant que le serveur est accessible depuis son adresse IP avec sftp test11@votre_adresse_IP :
Si vous obtenez le message: " Warning : Permanently added '192.168.1.16' (RSA) to list of known host ", patientez, vous devriez retomber sur l'invite où le mot de passé vous sera demandé.
3ème test (Autre IP)
Ici, nous testerons notre connexion à notre serveur sftp depuis un client Windows (sur Windows 2000) qui se trouve dans le même réseau local. Exemple avec le client WinSCP. Téléchargez-le puis installez-le (tout par défaut).
http://www.01net.com/telecharger/windows/Internet/ftp/fiches/31668.html
Lancer WinSCP et rentrer :
Nom d'hôte : 192.168.1.16
Port : 22
Nom d'utilisateur : test11
Mot de passe : test12
Cliquez sur Connecter.
Si vous obtenez ce message, vérifier votre réseau ou le pare-feu de votre Mandriva. Configurer le comme ceci :
Centre de Contrôle de Mandriva -> Sécurité -> Configurer votre pare-feu personnel.
Sélectionnez Serveur SSH (n'oublions pas que notre connexion se fera via une connexion ssh).
Je sais, elle est belle.... ^^ Maintenant fermez la bouche et validez les modifications.
Taper en root :
Retourner sur votre client Windows et relancez WinSCP et rentrez à nouveau:
Nom d'hôte : 192.168.1.16
Port : 22
Nom d'utilisateur : test11
Mot de passe : test12
Cliquez sur Connecter.
Si tout se passe bien, vous obtiendrez la fenêtre :
Cliquez sur Oui.
Jetez tout de même un coup d'œil sur l'empreinte. Une fois cette fenêtre valide, vous arriverez à la fenêtre :
La connexion est établie.
Il se peut que vous ayez un message vous avertissant que la connexion prend quelques secondes pour s'établir. N'y faite pas attention si votre connexion s'établit tout de même.
Maintenant, vous êtes connecté à votre serveur SFTP sur votre Mandriva 2008 depuis votre Client Windows 2000 avec le client WinSCP. C'est à vous de jouer pour créer les répertoires et les droits des fichiers. Fermer la console connecté en root.
Chroot
L’inconvénient maintenant est que certes, on utilise maintenant une connexion sécurisée, mais en temps qu’utilisateur Mandriva. L’utilisateur créé (ici test11) peut parcourir les répertoires à sa guise. C’est la qu’entre en jeu « chroot ».
Chroot permet de changer le répertoire racine vers un autre emplacement. Vous pouvez donc utiliser chroot pour cloisonner le processus dans un path donné.
Nous utiliserons le logiciel MySecureShell pour chrooter nos utilisateurs car en plus du chroot, il offre d’autres options que nous verrons plus loin.
Pour ceux qui ne veulent pas utiliser MySecureShell et faire le chroot à la main, je vous montre rapidement la marche à suivre. Cependant, je vous conseille vivement d’utiliser le très bon logiciel MySecureShell. Pour les autres, passez à la suite.
Si vous voulez par exemple chrooter les utilisateurs de sftp dans le répertoire /home/sftp ainsi, tous les utilisateurs sftp ne pourront pas sortir de ce répertoire, suivre les étapes suivantes.
Il faut noter qu’une fois cloisonné, les utilisateurs ne pourront pas sortir donc utiliser les exécutables et librairie faisant fonctionner sftp. C’est pour cette raison que nous devons rajouter ces fichiers dans notre espace sécurisé.
Nous verrons deux méthodes.
- 1 - le chroot à la main
- 2 - le chroot via MySecureShell (solution que nous utiliserons ici)
- 1 - Solution 1 à titre d'information
En root, vous devez :
- créer le répertoire /home/sftp
- se rendre dans le répertoire crée
- créer les répertoires pour les exécutables (usr - usr/bin - usr/lib - usr/lib/ssh)
- copier les exécutables sftp – scp – rssh – rssh_chroot_helper – sftp-server dans les répertoires que vous avez crées. Ex : #cp /usr/bin/sftp usr/bin
- créer les répertoires pour les librairies (lib – lib/i686)
- taper par ex : #ldd /usr/bin/sftp pour connaître les dépendances de sftp
Les bibliothèques doivent êtres copiés dans /home/sftp/lib ou /home/sftp/usr/lib en fonction de l’endroit ou elles apparaissent dans la liste si dessus. Nous allons donc faire les copies suivantes : (prenez votre respiration et faites craquer vos doigts. :-)
- faire pareil pour tous les exécutables
- Maintenant nous allons référencer notre path auprès de rssh.
- ouvrir rssh.conf avec
et à la fin du fichier, nous rajouterons la ligne :
chrootpath="/home/sftp"
La configuration du Chroot est terminée. Votre utilisateur est maintenant cloisonné dans le répertoire défini pour le chroot.
Votre Chroot devrait fonctionner.
J’avoue que je n’ai pas essayé, trop « long », j’ai préféré passer par : MySecureShell.
MySecureShell
solution 2
Installation
Connectons-nous en root :
Suivi du mot de passe root.
Et tapons :
Récupérons l’archive « mysecureshell_0.95_linux_i686.tgz » sur : http://sourceforge.net/project/showfiles.php?group_id=117807
Et enregistrons la dans /tmp
Une fois le téléchargement terminé, rendons-nous dans le répertoire {{file|/tmp}
Puis décompressons l’archive en tapant :
Maintenant, lançons l’installation de MySecureShell. Vous devez être connecté en root.
Tapons donc :
Suivi du mot de passe root.
Ps: n'oubliez pas le ptit trait après su
Puis :
L’installation début
NB.1 : Si vous avez un échec pour l’existence du fichier MySecureShell, vérifier qu’il est bien présent dans l’archive.
NB.2 : Si un message vous dit que vous n’êtes pas connecté en root alors que vous l’êtes, c’est que vous avez tapez su et non su – pour vous connecter en root.
Tapons y pour continuer.
Si vous rencontrez le problème :
./MySecureShell: /usr/lib/libcrypto.so.0.9.8: no version information available (required by ./MySecureShell)
Tapez :
Tapons y pour continuer
Tapons yes pour « shuttdown server ...»
Tapons y pour remplacer le fichier de configuration sftp_config
Tapons y pour lancer automatiquement les logs de MySecureShell
L’installation de MySecureShell est terminée.
Les utilisateurs
Les utilisateurs du serveur SFTP doivent êtres configurés avec MySecureShell.
Créons l’utilisateur testmss :
Création du mot de passe:
Les utilisateur crées avant l'utilisation de MySecureShell doivent être modifiés : rssh devient MySecureShell Pour rajouter l’utilisateur test11 que nous avions crée plus haut, nous allons éditer le fichier passwd en tapant :
Maintenant, nous allons remplacer dans la ligne de l’utilisateur test11 :
/usr/bin/rssh par /bin/MySecureShell
Exemple :
Test11:x:503:503::/home/test11:/usr/bin/rssh
Devient
Test11:x:503:503::/home/test11:/bin/MySecureShell
Configuration
Passons maintenant à la configuration. Editons le fichier sftp_config
Tapons, toujours en root :
Nous remarquons dans ce fichier :
Une partie Default qui concerne le serveur et tous les utilisateurs par défaut. Si une configuration n’est pas définit pour un utilisateur, il prendra celle par défaut définit dans la balise <Default>.
'''GlobalDownload 50k''' tous les utilisateurs réunis ne pourront récupérer des fichiers sur le serveur qu’à une vitesse de 50k '''GlobalUpload 0''' tous les utilisateurs réunis n’ont pas de limite de débit pour déposer des fichiers sur le serveur '''StayAtHome true''' tous les utilisateurs sont limités dans leur exploration des fichiers a leur Home personnel '''VirtualChroot true''' Le Chroot est actif pour tous les utilisateurs '''LimitConnection 10''' Le serveur n’accepte que 10 connections à la fois '''LimitConnectionByUser 1''' Le serveur n’accepte pas plus d’une connexion pour un même utilisateur '''LimitConnectionByIP 2''' Le serveur n’accepte que deux connections simultanées pour une seule adresse IP au maximum '''IdleTimeOut 300''' Apres 300 secondes sans activité, le client sera déconnecté automatiquement
Affiner les valeurs en fonction de vos désirs.
Configuration d’un utilisateur.
La configuration d’un utilisateur est pareille que pour un groupe. Nous rajoutons dans notre fichier :
<User test11> Home /var/ftp Download 20k Upload 0 </User> Upload 0 : l’utilisateur peut déposer sur le serveur de façons illimité Download 20k : l’utilisateur test11 ne peux récupérer des fichiers sur le serveur qu’a 20k Home /var/ftp : est le home de l’utilisateur, on peut donc le changer ici
Pour simplifier l’utilisation du serveur, nous allons créer trois groupes. Puis nous ajouterons dans ce groupe les utilisateurs souhaités.
Nous rajoutons dans notre fichier :
<Group sftp-users> Download 1m Upload 0 StayAtHome true VirtualChroot true LimitConnection 5 LimitConnectionByIP 2 </Group> <Group sftp-users-power> Download 1m Upload 0 StayAtHome false VirtualChroot false LimitConnection 5 LimitConnectionByIP 5 </Group> <Group sftp-users-root> Download 0 Upload 0 StayAtHome false VirtualChroot false LimitConnection 10 LimitConnectionByIP 10 </Group>
Puis nous tapons en tant que root sous la console :
[root@ordi ~]# groupadd sftp-users-power
Maintenant que la configuration est terminée, lançons MysecureShell avec la commande:
La configuration de MySecureSell peut aussi s’effectuer en mode graphique. Pour cela, télécharger le fichier MySecureShell Graphical tools v1.7 ici :
http://sourceforge.net/project/showfiles.php?group_id=117807&package_id=156080
Enregistrons-le par exemple dans : /tmp
Une fois termine, rendons-nous dans le répertoire /tmp
Puis décompressons l’archive en tapant :
Maintenant, lançons MySecureShell Graphical tools v1.7 avec la commande en root :
Si l’interface graphique ne s’ouvre pas, c’est probablement parce que java n’est pas installé sur votre Mandriva. N’hésitez donc pas à taper en tant que root :
#urpmi java.Une fois lancé, vous obtiendrez l’écran :
Vous retrouverez toutes les options de configuration possible ainsi que les utilitaires sftp-who et sftp-State.
Utilitaires
A entrer dans une console:
sftp-who Permet de connaître les utilisateurs connectés au serveur sftp a un instant (t)
sftp-kill
permet de déconnecter un utilisateur. Exemple :
sftp-state
Permet d’activer ou désactiver MySecureShell
sftp-admin
Pour l’administration a distance
sftp-verif
Etablit un check de MySecureShell
sftp-user
Permet de gérer les utilisateurs. Exemple :
Tests
Maintenant que notre serveur est correctement configuré, lançons-le puis testons-le.
Lançons MySecureShell en tapant en root :
Vérifions que le service ssh est bien lancé en tapant :
Rendons-nous sur notre machine Windows (notre client) pour tester la connexion au serveur.
Lançons WinSCP avec :
Nom d'hôte : 192.168.1.16
Port : 22
Nom d'utilisateur : testmss
Mot de passe : testmss12
Puis cliquons sur Connecter.
Si vous obtenez le message :
Attendez quelques secondes.
La connexion est établit entre le client et le serveur SFTP.
Nous remarquons que grâce a l’option Chroot de MySecureShell, l’utilisateur a pour racine son propre home et ne peut remonter dans l’arboressance. Ici son home étant /home/testmss, l’utilisateur y est cloisonné et ne peut en sortir.
Retournons sur le serveur Mandriva et tapons la commande :
Nous obtenons les informations :
Nombre de client connecte au serveur : 1/10 Utilisateur connecte : testmss avec l’IP : 192.168.1.5
Nous pouvons obtenir les même informations en cliquant sur sftp-who dans l’interface graphique.
Fin
Maintenant, nous avons terminé l’installation, et la configuration de notre serveur. A vous de le personnaliser et de mettre les personnes que vous souhaitez dans les groupes que vous souhaitez selon les droits à leur attribuer.
Aide
Commandes de base VI
- :q – quiter
- :w – save
- « esc » - retour en mode commande
- « ent » - passer a la ligne
- « insert » - inserer du text
Sources :
- www.google.fr mon ami ^^
- http://mysecureshell.sourceforge.net/
-> kenny
kenny.ker@gmail.com






