Монтаж файлової системи через Інтернет


11

Я створив веб-додаток, який працює на віртуальному сервері для одного з моїх клієнтів. Він включає в себе можливість завантажувати файли, але тепер вони хочуть зберігати ці файли на сервері у своєму офісі.

Найпростіший спосіб зробити це - встановити їх файлову систему через Інтернет безпосередньо на віртуальний сервер. У мене є досвід встановлення NFS через внутрішню мережу, але мені не ясно, чи спрацювало б це в цьому сценарії.

Будь-які думки? Я завжди можу написати нове програмне забезпечення для передачі файлів, але це було б легким виправленням!

Примітка: Сервер в офісі - це сервер Ubuntu 12, який працює на віртуальному сервері в середовищі Windows hyper-v. VPS з веб-додатком - Ubuntu 11.04


Чи проблема з безпекою для цих файлів?
Адріан Корніш

rsync через роботу cron.
Ігнасіо Васкес-Абрамс

@AdrianCornish - насправді, хоча безпечне рішення було б кращим.

Відповіді:


12

Ще ніхто не згадував sshfs . Якщо ви перебуваєте в сучасному дистрибутиві Linux та маєте ssh доступ до віддаленого хоста, це просто так:

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

Продуктивність є цілком прийнятною (але не настільки швидкою, як потокова синхронізація, як rsync, якщо вам потрібен весь каталог).


Це здається найкращим рішенням поки що, FAQ навіть говорить: "Ресурси можуть бути встановлені через повільні та ненадійні (віддалені) з'єднання". Ще одна веб-сторінка повідомляє мені, що "sshfs -o знову підключить сервер: / path / to / mount" автоматично повторно підключиться, якщо з'єднання перестане.

3

NFS за своєю суттю небезпечно. Це було б дуже поганим вибором для підключення через Інтернет.

Мені подобається публікація, в якій згадується rsync. Замість того, щоб використовувати cron для передачі передачі, я сподіваюся, що ви можете просто запустити завдання rsync зі свого коду, який обробляє завантаження файлу.

Коли завантаження завершиться, rsync файл на їх сервері.

Вам потрібно було б встановити захищене з'єднання з їх сервером для передачі, я би сподівався.

Якщо ви цього хотіли, ви можете помістити вхідні файли у список для передачі, видаливши імена після успішної копії, і надати собі певну помилку в можливості, якщо у випадку щось з’єднається.

Як вже зазначав хтось інший, rsync призначений для обробки груп файлів або ієрархії (спасибі, перевірка орфографії), тому це було б не так складно здійснити.


1
rsync не має проблем із використанням SSH як транспорту.
Ігнасіо Васкес-Абрамс

Веб-додаток вже зберігає файли на локальному сервері та посилається на них. На локальному сервері не буде місця, тому їх доведеться видалити після передачі, що означає написання нового коду, тому я спочатку шукаю змонтоване рішення, якщо це можливо.

1

NFS може бути по суті небезпечним, але це не вина служби. Telnet і FTP також по суті небезпечні, але обидва вони використовуються десятиліттями у відкритому Інтернеті. Якщо встановлено зашифрований тунель VPN, то відсутність шифрування NFS не має значення.

Крім того, якщо брандмауер налаштований лише для того, щоб дозволити певну віддалену адресу хоста підключитися до точки монтажу NFS, то оголене з’єднання NFS здебільшого захищене від злому, за винятком трьох агентств з літерами, які нюхають інтернет-трафік і мають доступ до потужного розшифрування для зламати зашифровані віддалені з'єднання в будь-якому випадку.

Я бачу, що деякі версії NFS використовують UDP за замовчуванням, імовірно, звідки виникають проблеми з надійністю Інтернету. Пакети UDP можуть загубитися, якщо з'єднання перевантажено, і повторна передача не буде здійснена автоматично. Якщо ви хочете отримати надійне з'єднання, переконайтеся, що ваш NFS використовує (або змушений використовувати лише) пакети TCP через Інтернет.


1
> Telnet і FTP також по своїй суті не є безпечними, але обидва вони використовуються десятиліттями у відкритому Інтернеті. Хоча це правда, я не думаю, що це є хорошим моментом, оскільки в цілому вважається (дуже) поганою практикою їх використання через Інтернет. зараз. Mozilla навіть пропонує знецінити незашифрований http .
Ян Д. Скотт

0

NFS можна зробити через брандмауер. Якщо ви шукаєте, ви знайдете інших, хто намагався і досяг успіху в цьому процесі, однак він не настільки простий, як відкриття портів, і, здається, залежить від запущеної версії NFS.

rsync - відмінна пропозиція і має велику гнучкість. Однак це процес, запущений поза вашим додатком. rsync може обробляти синхронізацію оновлень локальних файлів та підтримувати весь каталог синхронізовано з іншими папками.

ssh був би іншим захищеним варіантом і вимагав би відкрити лише один порт. Я раніше це використовував між системами Windows та Linux і добре працював як із додатком, так і планував процес.

Я впевнений, що є інші способи досягти того, що ви шукаєте, але нам знадобиться додаткова інформація про типи файлів, які це, і якщо ви пов'язуєте їх на сторінку або передаєте їм щось складніше.


Я розумію альтернативи, встановлення файлової системи було б найпростішим рішенням, я просто не знаю, наскільки стабільна NFS є в Інтернеті, на відміну від внутрішньої мережі. Що станеться, якщо з'єднання перестане і т. Д., Або якщо існує нова альтернатива, розроблена для того, щоб бути надійною для цього.

0

NFS-кріплення можна зробити за допомогою automount, який продовжуватиме спробу кріплення під час відмови, але єдиний спосіб, який я вважав би за допомогою його через труби, - це з допомогою vpn або якогось іншого безпечного з'єднання (насправді я би не вважав це, але ти звучиш фіксовано на ідеї).

Навіть використовуючи automount, якщо виникає проблема з мережею, і ви завантажуєте їх на кріплення NFS, завантаження, ймовірно, не вдасться або буде пошкоджено, якщо ви не зберігаєте файл локально і не копіюєте при успішному завантаженні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.