Monter un système de fichiers sur Internet


11

J'ai construit une application web qui s'exécute sur un serveur virtuel pour l'un de mes clients. Il inclut la possibilité de télécharger des fichiers, mais ils veulent maintenant stocker ces fichiers sur un serveur dans leur bureau.

La façon la plus simple de le faire serait de monter leur système de fichiers sur Internet directement sur le serveur virtuel. J'ai de l'expérience dans le montage de NFS sur un réseau interne, mais je ne sais pas si cela fonctionnerait dans ce scénario.

Des pensées? Je peux toujours écrire de nouveaux logiciels pour transférer les fichiers, mais ce serait une solution facile!

Remarque: Le serveur du bureau est un serveur Ubuntu 12 fonctionnant sur un serveur virtuel dans un environnement Windows Hyper-V. Le VPS avec l'application Web est Ubuntu 11.04


La sécurité est-elle un problème pour ces fichiers?
Adrian Cornish

rsync via cron job.
Ignacio Vazquez-Abrams

@AdrianCornish - pas vraiment, même si une solution sécurisée serait préférable.

Réponses:


12

Personne n'a encore mentionné sshfs . Si vous êtes sur une distribution Linux moderne et avez un accès ssh à l'hôte distant, c'est aussi simple que:

sshfs user@hostname:/remote/directory /local/directory

Les performances sont tout à fait acceptables (mais pas aussi rapides qu'une synchronisation en streaming comme rsync si vous avez besoin de tout le répertoire).


Cela semble être la meilleure solution jusqu'à présent, la FAQ dit même que «les ressources peuvent être montées sur des connexions lentes et peu fiables (distantes)». Une autre page Web me dit que "sshfs -o reconnecter le serveur: / path / to / mount" le fera se reconnecter automatiquement si la connexion tombe.

3

NFS est intrinsèquement non sécurisé. Ce serait un très mauvais choix pour se connecter via Internet.

J'aime le post qui mentionne rsync. Au lieu d'utiliser cron pour déclencher le transfert, j'espère que vous pourriez simplement exécuter le travail rsync à partir de votre code qui gère le téléchargement du fichier.

Une fois le téléchargement terminé, resynchronisez le fichier sur leur serveur, c'est fait.

Vous auriez besoin d'établir une connexion sécurisée à leur serveur pour le transfert, je m'attendrais.

Si vous le souhaitez, vous pouvez mettre les fichiers entrants dans une liste pour le transfert, supprimer les noms après une copie réussie et vous donner une capacité de basculement, au cas où quelque chose se produirait à la connexion.

Comme quelqu'un l'a déjà souligné, rsync est conçu pour gérer des groupes de fichiers ou une hiérarchie (merci, vérification orthographique), donc ce ne serait pas si difficile à accomplir.


1
rsync n'a aucun problème à utiliser SSH comme transport.
Ignacio Vazquez-Abrams

L'application Web enregistre déjà les fichiers sur le serveur local et y fait référence. Il n'y aura pas d'espace sur le serveur local, ils devront donc être supprimés une fois transférés, ce qui signifie écrire un nouveau code, donc je cherche d'abord une solution montée, si possible.

1

NFS peut être intrinsèquement non sécurisé, mais ce n'est pas la faute du service. Telnet et FTP sont également intrinsèquement précaires, mais tous deux sont utilisés depuis des décennies sur Internet ouvert. Si un tunnel VPN chiffré est établi, l'absence de chiffrement NFS n'est pas pertinente.

De plus, si un pare-feu est configuré pour autoriser uniquement une adresse d'hôte distant spécifique à se connecter au point de montage NFS, une connexion NFS nue est principalement protégée contre le piratage, à l'exception des agences à trois lettres qui reniflent le trafic Internet et qui ont accès à un puissant déchiffrement pour crack de toute façon vos connexions à distance cryptées.

Je vois que certaines versions de NFS utilisent UDP par défaut, ce qui est probablement l'origine des problèmes de fiabilité Internet. Les paquets UDP peuvent être perdus si la connexion est congestionnée et aucune retransmission n'est tentée automatiquement. Si vous voulez une connexion fiable, assurez-vous que votre NFS utilise (ou est obligé d'utiliser uniquement) des paquets TCP sur Internet.


1
> Telnet et FTP sont également intrinsèquement précaires, mais les deux sont utilisés depuis des décennies sur Internet ouvert. Bien que cela soit vrai, je ne pense pas que ce soit un bon point, car en général, il est considéré comme une (très) mauvaise pratique de les utiliser sur Internet. maintenant. Mozilla suggère même de déprécier http non chiffré .
Ian D. Scott

0

NFS peut être effectué via un pare-feu. Si vous effectuez une recherche, vous en trouverez d'autres qui ont tenté et réussi ce processus, cependant, il n'est pas aussi simple que d'ouvrir des ports et semble dépendre de la version de NFS en cours d'exécution.

rsync est une excellente suggestion et a beaucoup de flexibilité. Cependant, ce serait un processus exécuté en dehors de votre application. rsync peut gérer la synchronisation des mises à jour de fichiers locaux et maintenir un répertoire entier en synchronisation avec les autres dossiers.

ssh serait une autre option sécurisée et ne nécessiterait qu'un seul port pour être ouvert. J'ai utilisé cela dans le passé entre les systèmes Windows et Linux et j'ai bien fonctionné à la fois depuis une application et en planifiant le processus.

Je suis sûr qu'il existe d'autres façons d'accomplir ce que vous recherchez, mais nous aurions besoin de plus d'informations sur les types de fichiers qu'il s'agit et si vous les liez dans une page ou les diffusez en continu avec quelque chose de plus complexe.


Je comprends les alternatives, le montage du système de fichiers serait la solution la plus simple, je ne sais tout simplement pas à quel point NFS est stable sur Internet plutôt que sur un réseau interne. Que se passe-t-il si la connexion tombe, etc., ou s'il existe une alternative plus récente conçue pour être robuste à cela.

0

Les montages NFS peuvent être effectués à l'aide de l'automontage, qui continuera d'essayer le montage en cas d'échec, mais la seule façon d'envisager de l'utiliser sur les tuyaux est avec un vpn ou une autre connexion sécurisée (en fait, je ne le considérerais pas, mais vous semblez fixé sur l'idée).

Même en utilisant automount, s'il y a un problème de réseau et que vous placez leurs téléchargements sur le montage NFS, le téléchargement échouera probablement ou sera corrompu, sauf si vous stockez le fichier localement, puis copiez en cas de succès de téléchargement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.