Mise en place d'un serveur d'échange de fichiers

Accueil

Téléchargement :

Vous trouverez tous les fichiers rassemblés dans une archive ICI (Tous les scripts sont sous licence GPL v3).

Préalable :

Vous n'avez pas besoin d'un serveur dernier cri. Une machine de type : CPU dual (ou quad) core + 4 Go (ou plus) de Ram + 1 gros disque dur 1.5 à 2 To (ou 1 RAID 5 avec minimum 3 disques durs) sont suffisant. Le système d'exploitation est évidemment Linux.

Le serveur doit être sécurisé car il est visible partout sur le net: OS à jour + tous les outils de sécurité (antivirus, anti-rootkit etc..). L'idéale est de dédier ce serveur uniquement à cette tâche. Ce qui facilite les règles du pare-feu.

Le paquet MySecureShell doit être installé sur le serveur (très bien expliqué sur le site) ainsi qu'un serveur SSH Opensource tel que OpenSSH

La configuration de MySecureShell est simple : il n'y a qu'un seul fichier (très bien commenté) sftp_config dans le répertoire du service SSH  /etc/ssh/

Pour notre cas, la configuration tient sur quelques lignes (à vous de la changer en fonction de votre besoin):

<Default>
Home /home/$USER
StayAtHome true
VirtualChroot    true
LimitConnectionByUser 10
LimitConnectionByIP 10
HideNoAccess true
IgnoreHidden     true
IdleTimeOut 300
</Default>

Tous les utilisateurs doivent avoir un client SFTP ou FTP (supportant le protocole SSH) d'installer sur leur machine. Le client FTP FileZilla est multiplateforme (Windows-Mac-Linux) et est téléchargeable à l'adresse:
http://filezilla-project.org/download.php?type=client

Il existe une version dite "portable" (sous Windows uniquement) sous forme d'exécutable et qui permet d'utiliser FileZilla sans l'installer sur l'ordinateur en votre possession:
http://filezilla-portable.softonic.fr

Principe :

J'utilise le terme "utilisateur permanent" pour désigner les personnes restant au laboratoire plus de 6 mois (chercheurs, thésard, ITA). Les autres personnes sont appelées "non permanentes".

Le serveur est la plateforme d'échange entre tous les utilisateurs permanents ou non. En fonction de la catégorie où se classe la personne, un certain nombre de droit lui sont attribués.

Le compte des permanents offre l'avantage de ne pas être limité dans le temps et la navigation vers tous les comptes des autre utilisateurs (permanent ou non) est autorisé. Par contre, un permanent navigue uniquement dans son répertoire. Il n'a pas de vue sur les autres répertoires des utilisateurs. Certains diront que OpenSSH en tant que tel est capable de réaliser ce type d'opération. Cela est juste mais MySecureShell offre une granularité et une flexibilité des droits de chaque utilisateur que n'offre pas (encore ?) OpenSSH.

Caractéristiques des différents comptes :

-> Pour les utilisateurs permanents :
Pas de date limite d’hébergement des fichiers,
4Go max par fichier (limite raisonnaible),
Quantité d’espace disque de XXXGo max (dépend de votre disque dur),
Sécurisation : SFTP + SSH

-> Pour les visiteurs:
Compte valide 30 jours => peut être modulable à la demande,
4Go max par fichier (limite raisonnaible),
Quantité d’espace disque de XXXGo max (dépend de votre disque dur),
Sécurisation : SFTP uniquement.

Exemples :

L'utilisateur A dépose son ou ses documents dans son répertoire de connexion. L'utilisateur B récupère le ou les documents à partir du répertoire de l'utilisateur A. La communication du dépot et du retrait effectif du ou des documents n'est pas géré par le serveur. De même, le nom du répertoire de connexion n'est pas communiqué par le serveur. C'est aux utilisateurs de se charger de faire la communication. De même si B veut communiquer des documents pour A, il transmet l'ensemble des documents uniquement dans son répertoire de connexion B.

Bien sûr, la création du compte de la personne non-permanente (srcipt admin_users) ne peut se faire que sur la demande d'une personne permanente à l'admin système du labo. Lors de la création du compte non-permanent, par défaut, le compte est créé pour 30 jours uniquement (passé ce délai, il se bloque automatiquement; il n'est pas supprimé !!). Cependant, cette durée est modulable pendant (script admin_users_non_permanent) et après la création du compte (script gestion_compte_users). Dès que le compte est créé, 1 e-mail (en Français ou Anglais) contenant le login/mot de passe du compte est envoyé à la personne non-permanente et au permanent. Contrairement à l'exemple précédent, c'est uniquement avec ce compte que le transfert peut avoir lieu dans les 2 sens.

Avantages de cette solution :

- Les documents sont dans votre serveur ( confidentialité renforcée ) et non pas hébergés chez un tiers (cloud computing...).

- L'anti-virus du serveur (que vous avez bien sûr installé) passe systématiquement tous les documents à la moulinette : sécurité renforcée.

- Peu de visibilité sur le Web ( pas de serveur web de type Apache hackable).

Inconvénient de cette solution :

- Pas de notification de la disponibilité des documents.

- Solution nécessitant un "savoir-faire" du transfert de fichier par client FTP.

- Solution moins "user friendly" que les autres solutions gratuites mais limitées en taille et en temps des documents.

Notes :

- Les exemples présentés peuvent changer en fonction du degré de liberté que vous donnerez à chacun des comptes utilisateurs.

- Les documents transmis peuvent être cryptés par les utilisateurs.

- Le script verif_comptes_verrouilles est lancé par cron tous les jours. Il est chargé de vérifier si un compte est bloqué. Dans ce cas, un e-mail est envoyé à l'admin du labo pour le prévenir.

Page mise à jour le 22/08/2011