Ceci est une ancienne révision du document !
Version: Ubuntu
Serveur SFTP : MySecureShell
À propos de MSS
MySecureShell (MSS) est un logiciel s'appuyant sur le chiffrage très poussé SSH et sur son ftp sécurisé "sftp-server". MySecureShell est un shell qui va permettre d'ajouter plusieurs fonctionnalités à sftp-server et qui va se rapprocher des grands serveurs ftp tel que ProFtpd. Les avantages de MySecureShell sont qu'il s'appuie sur le protocole très sécurisé appelé SSH et qu'il permet un chiffrement complet des données et des requêtes émises. Il est très simple à installer, à utiliser et hautement configurable.
Site officiel : http://mysecureshell.sourceforge.net/
Pour plus d'aides un forum est disponible.
Pourquoi installer MySecureShell (sftp - Secure File Transfert Protocol) au lieu d'un serveur FTPS (File Transfert Protocol over SSL) ?
Voici les différentes motivations d'un tel choix :
- Simplicité d'installation.
- Puissance de chiffrement d'OpenSSH qui est développé pour la protection des données (shell distant).
- Pas de problèmes de certificat non-certifié (car payant pour qu'il soit certifié authentique) ou de génération de certificat.
- Support des clefs privées et publiques pour une authentification sans mot de passe.
- Un unique port à ouvrir pour le SSH et SFTP (port 22 par défaut).
- C'est une question de choix qui ne coûte rien si l'on veut essayer.
Mais alors pourquoi ne pas utiliser un client SCP ?
Le problème vient du compte crée pour l'utilisateur qui doit utiliser un shell valide pour se connecter au serveur à l'aide d'un logiciel SCP. Ce choix implique l'existence d'une grande confiance en l'utilisateur. Avec MySecureShell, le client n'est pas obligé de posséder un shell valide qui pourrait nuire a la sécurité du serveur.
Installation de MSS
Prérequis : Le paquet openssh-server doit être installé.
J'ai choisi de vous montrer deux méthodes d'installation, le paquet deb et le script.
Avec le paquet deb :
- Pour la version 32bits : téléchargez le paquet mysecureshell_0.95_i386.deb
- Pour la version amd64 : téléchargez le paquet mysecureshell_0.95_amd64.deb
Puis installez le paquet téléchargé.
Avec le script :
- Télécharger MySecureShell-linux-i686-0.9.tgz et taper dans un terminal ce qui suit:
$ cd répertoire où se trouve "MySecureShell-linux-i686-0.9.tgz"
$ tar xvzf MySecureShell-linux-i686-0.9.tgz $ sudo sh install.sh fr
- Répondre aux questions par "y" ou "n". Pour plus de précisions consulter cette page
Vérification :
Pour vérifier et corriger d'éventuels problèmes sur le serveur, utiliser la commande sftp-verif dans un terminal avec les droits root.
$ sudo sftp-verif ################################################# # MySecureShell Verification Tool # ################################################# **Verifing file existance** Verifing file existance of /bin/MySecureShell [ OK ] Verifing file existance of /usr/bin/sftp-who [ OK ] Verifing file existance of /usr/bin/sftp-kill [ OK ] Verifing file existance of /usr/bin/sftp-state [ OK ] Verifing file existance of /usr/bin/sftp-admin [ OK ] Verifing file existance of /usr/bin/sftp-verif [ OK ] Verifing file existance of /usr/lib/sftp-server_MSS [ OK ] Verifing file existance of /etc/ssh/sftp_config [ OK ] ** Reasigning good rights ** Reasignement of good rights [ OK ] ** Verifing rotation logs ** MySecureShell rotation logs [ OK ] ** Verifing server status ** Verifing server status (ONLINE) [ OK ]
Vous pouvez obtenir l'erreur suivante dans sftp-verif :
error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory
Il vous suffit d'installer le paquet libidn11 pour y remédier.
Si vous obtenez l'erreur suivante :
/usr/bin/sftp-state: error while loading shared libraries: libcrypto.so.0.9.7: cannot open shared object file: No such file or directory
Il vous suffit d'exécuter la commande :
sudo ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7
Gestion des utilisateurs
Créer maintenant les utilisateurs autorisés à faire du sftp et autorisés à ne faire que du sftp. Pour fixer les idées, je vais créer l'utilisateur toto et lui attribuer comme dossier personnel /home/toto :
$ sudo adduser --home /home/toto --shell /bin/MySecureShell toto
Mais il y a plus simple, l'outil graphique vous permet désormais de gérer les clients !!!
Connexion au serveur sftp
Les tests qui suivent sont fait avec le programme lftp. Il est normalement présent par défaut dans les distributions Ubuntu. Dans le cas contraire il suffit pour l'installer de faire,
$ sudo apt-get install lftp
Tester en local :
$ lftp sftp://toto@localhost
Après avoir entré le mot de passe, vous devriez obtenir ceci :
$ lftp toto@localhost:~>
En cas de problème vérifier que le fichier sftp-server_MSS se trouve bien dans le répertoire /usr/lib/openssh/ . Si ce n'est pas le cas vous pouvez le copier à partir de /usr/lib/
Tester en réseau :
Le port 22/TCP doit être ouvert.
$ lftp sftp://toto@IP_du_Serveur
Si vous obtenez l'invite ci-dessous c'est que ça marche. Code:
$ lftp toto@IP_du_Serveur:~>
Pour plus de renseignements sur lftp
$ man lftp
Paramétrage avec l'outil graphique java
Sun-j2re1.5 doit être installé dans votre système.
Télécharger MSS_Frontend_v1.6.zip sur le site officiel. et taper dans un terminal ce qui suit:
$ unzip MSS_Frontend_v1.6.zip $ cd répertoire d'extraction $ sudo java -jar sftp-mss.jar
et vous obtiendrez,
Sftp-Who : permet de savoir qui est connecté et de pouvoir déconnecter n'importe quel utilisateur.
Sftp-State : permet d'activer ou de désactiver le serveur SFTP et de vérifier son état.
Config : permet de faire la configuration du serveur.
Log : vous pouvez voir tout ce qui se passe et s'est passé sur votre serveur.
Connexion distante : c'est avec cet onglet que vous allez pouvoir administrer à distance votre serveur MySecureShell.
Paramètres : Cet onglet permet la localisation de certains fichiers et le choix du langage de l'interface graphique.
Lanceur
Pour plus de convivialité vous pouvez créer un lanceur grâce à Smeg.
smeg
Et créer une entrée comme suit,
Paramétrage manuel
Vous souhaitez configurer et administrer votre serveur manuellement, c'est bien sûr possible.
sftp_config :
MSS possède son propre fichier de paramétrage, sftp_config.
$ sudo nano /etc/ssh/sftp_config
Les modifications sont immédiates. Voici toutes les directives dont vous pourrez user .
Cette documentation devrait grandement vous aider.
[i](en particulier, modifiez l'encodage ISO-8859-15 par UTF8)[/i]
sshd_config :
La configuration d'Openssh-server se trouve dans le fichier sshd_config.
$ sudo nano /etc/ssh/sshd_config
Toute modification ne sera prise en compte qu'après un redémarrage du serveur.
$ sudo /etc/init.d/ssh restart
Sécurité
Utilisation des clefs SSH :
Dans le cas ou vous devez administrer de multiples serveurs, retaper à chaque fois son mot de passe est pénible surtout quand on est déjà logué sur une machine sûre.
Le sujet a déjà été développé sur les pages suivantes que je vous invite à lire:
Se protéger contre le SSH Brute Force :
Généralement les mots de passe de la plupart des logiciels sont stockés cryptés dans un fichier. Pour obtenir un mot de passe, il suffit de récupérer ce fichier et de lancer un logiciel de brute force cracking. Ce procédé consiste à tester de façon exhaustive toutes les combinaisons possibles de caractères (alphanumériques + symboles), de manière à trouver au moins un mot de passe valide. Cette attaque se base sur le fait que n'importe quel mot de passe est crackable. Ce n'est qu'une histoire de temps. Mais la puissance des machines double tous les deux ans. De plus, les crackers n'hésitent pas à fabriquer des cartes électroniques de cracking, ce qui améliore en conséquence la rapidité de la machine, et donc les chances de trouver un mot de passe valide. En général, cette méthode est empruntée lorsque la méthode du dictionary cracking a échoué.
Pour se faire lire :
— mysecureshell_sftp-server 2006/03/04 16:55
P.S.: Ne gère pas les utilisateurs virtuels, ce qui est logique en SSH
Contributeur : arvin