Личная файлопомойка. Как я настраивал файлообменник на VPS
Эпоха флешек давно канула в Лету. Что, впрочем, неудивительно: незаменимый инструмент для переноса файлов в кармане утратил свою актуальность с появлением облачных сервисов — доступных везде, где есть интернет, причем практически с любого устройства. Однако в этой бочке меда не обошлось без маленькой ложки дегтя. Во-первых, бесплатные тарифы у большинства вендоров накладывают строгие ограничения на объем облачного хранилища и количество устройств, на которые можно установить приложение для синхронизации. Во-вторых, используя публичные облачные сервисы, вы доверяете свои файлы сторонней компании и никак не можете повлиять на их безопасность. В-третьих, подобные хранилища не слишком удобны для командной работы, которая весьма актуальна в период мировой короновирусной истерии пандемии. Выход? Можно смириться, а можно организовать сетевое файловое хранилище самостоятельно! Один из примеров решения этой задачи мы сейчас и рассмотрим.
Зачем, Холмс?
Как и большинство простых юзеров, я попробовал в действии самые популярные сетевые хранилища, чтобы на практике оценить их достоинства и недостатки. Dropbox невыразимо прекрасен всем, кроме ограничений на объем бесплатного дискового пространства, которое я довольно быстро забил рабочими материалами под завязку, и малого количества доступных для установки приложения устройств на халявном тарифе. Девайсов у меня много, потому в целях автоматической синхронизации файлов приходилось регулярно отключать и заново регистрировать их в приложении, что довольно хлопотно.
«Яндекс.Диск» может похвастаться значительным объемом дискового пространства (особенно, если хранить файлы в облаке и сохранять локально только то, что нужно в данный момент), но их клиент — это просто какой-то тормозной, неудобный и неповоротливый монстр. С клиентом «гуглодрайва» мне тоже подружиться не удалось: и неудобный, и сортировкой файлов там наблюдаются какие-то странности — такое ощущение, что софтина валит все в кучу, при этом даже выполненная вручную сортировка регулярно сбивается. В то же время, файлообменник нужен мне постоянно, на разных устройствах и желательно, чтобы на них не приходилось устанавливать какие-то сторонние приложения. В идеале было бы подключить такую шару обычным сетевым диском и пользоваться по мере необходимости на разных машинах, как виртуальной флешкой.
Безусловно, за $9.99 в месяц можно купить 2 терабайта в облаке у Dropbox, но там нет возможности многопользовательской работы. При нынешнем курсе доллара аренда виртуального сервера с дисковым объемом 40 Гб, но без ограничений на количество подключений, выйдет примерно в ту же сумму, а если выбрать конфигурацию попроще с одним ядром — то даже дешевле. Определенная часть этого дискового пространства будет занята операционной системой, но для хранения файлов останется минимум 20 Гбайт, чего для моих целей вполне достаточно.
При этом файловое хранилище на VPS имеет целый ряд других неоспоримых преимуществ:
• можно публиковать веб-сайты прямо из общей папки;
• можно организовать доступ к нему с использованием SFTP;
• можно настроить торрент-клиент для загрузки и выгрузки контента;
• в том же контейнере можно смонтировать сервер NFS или SMB для использования VPN.
В общем, немного поразмыслив, я решил настроить File Storage на виртуальном сервере от RuVDS — этот провайдер использует в своей инфраструктуре преимущественно Windows Server, что намекает на относительную простоту организации удаленного хранилища (ха-ха!). Тем более, на моих устройствах (за исключением, разумеется, мобильных) установлена винда и macOS, поэтому серьезных проблем с подключением к удаленному серверу возникнуть уж точно не должно, подумал я (ха-ха два раза).
Матчасть
Virtual Private Server (VPS) чаще всего покупают для хостинга сайтов, но в отличие от обычного хостинга, он позволяет изолированно запускать несколько приложений в одном и том же контейнере. В целом, VPS вполне можно использовать для организации личного файлового хранилища, поскольку:
• средства виртуализации VPS обеспечивают достаточный уровень безопасности, в связи с чем такое хранилище можно считать относительно надежным;
• как правило, провайдер самостоятельно организует резервное копирование собственных контейнеров, либо предоставляет средства автоматизации этого процесса, поэтому о бекапах можно особенно не беспокоиться;
• виртуальный сервер более дешев по сравнению с выделенным сервером при схожем уровне безопасности и в целом подходит для выбранной цели.
Для реализации своей задумки я выбрал виртуальный сервер в следующей конфигурации:
• Windows Server 2019
• 2 ядра (Intel Xeon);
• 2 Гб RAM;
• 40Гб HDD.
Этого вполне достаточно, чтобы использовать наш VPS в качестве удаленного файлового хранилища. После создания сервер сразу же станет доступен нам по RDP — к нему можно подключиться либо с помощью клиента удаленного Рабочего стола, либо непосредственно в браузере из Панели управления RuVDS. Необходимые для подключения данные будут дополнительно отправлены по электронной почте, так что не потеряются. Что ж, приступим к самому интересному — настройке сервера.
Настройка сервера
При первом входе на сервер с учетной записью Администратора мы увидим на экране окно Диспетчера серверов, в котором можно настроить машину, щелкнув мышью на надписи «Добавить роли и компоненты».
В окне Мастера добавления ролей и компонентов нажимаем «Далее», затем, выбрав вариант «Установка ролей и компонентов», снова жмем «Далее». Выбираем в списке наш сервер (собственно, он и будет там представлен в единственном экземпляре), и очередным нажатием на кнопку «Далее» переходим к настройке ролей.
Нас интересует раздел «Файловые службы и службы хранилища». Эта роль установлена на сервере по умолчанию. Установите флажок «Файловые службы и службы SCSI и разверните расположенный под ним список. Здесь следует дополнительно установить следующие флажки:
• Файловый сервер;
• Рабочие папки;
• Диспетчер ресурсов файлового сервера (в открывшемся окне нажмите «Добавить компоненты»).
Теперь дважды нажмем «Далее» и завершим настройку ролей сервера щелчком мыши на кнопке «Установить».
Создание нового раздела
Если мы просто создадим общую папку на диске С: , у нас не получится организовать для нее доступ на запись. Винда небезосновательно считает этот диск загрузочным томом и не позволяет писать в расположенные на нем папки по сети. Поэтому мы сможем увидеть такую папку на удаленной машине и даже открыть ее, но при попытке создать или сохранить в ней файл даже с правами администратора мы получим сообщение об ошибке «Вам необходимо разрешение на выполнение этой операции».
А при попытке раздать для этой папки дополнительные права на полный доступ получим ошибку применения параметров безопасности для загрузочного диска.
Я решил эту проблему, создав отдельный логический том, отличный от того, на котором установлена Windows — там мы сможем развлекаться, как нашей душе угодно. Для этого:
• В окне Диспетчера серверов откройте расположенное в верхней части меню «Средстива», а в нем — «Управление компьютером».
• В открывшемся окне выберите в левой панели оснастку «Управление дисками». Вы увидите единственный диск, на котором расположена операционная система.
• Щелкните на диске правой клавишей мыши и выберите «Сжать том». При общем объеме диска в 40 Гбайт в поле «Размер сжимаемого пространства, Мб» я прописал значение 25 000, посчитав, что для работы винде хватит 15 Гбайт дискового пространства.
• Щелкните мышью на кнопке «Сжать», и дожидитесь, пока Windows освободит место на диске.
После того как в Диспетчере дисков появится неразмеченное свободное пространство, необходимо проделать следующие шаги:
• Щелкните правой клавишей мыши в нераспределенной области, и в контекстном меню выберите пункт «Создать простой том»;
• В окне «Мастера создания простого тома» нажмите «Далее», убедитесь, что размер тома соответствует объему неразмеченной области, снова нажмите «Далее».
• Введите букву диска (по умолчанию »D: ») и опять нажмите «Далее».
• Выберите в качестве файловой системы NTFS, размер кластера — «по умолчанию», установите флажок «Быстрое форматирование». Остальные параметры можно оставить без изменений. Нажмите «Далее». Затем щелкните мышью на кнопке «Готово».
Если теперь мы откроем Проводник, то увидим, что в системе появился новый диск D: .
Создаем шару
В Проводнике на удаленном сервере создадим новую папку на только что подготовленном нами диске и назовем ее, например, «Share». Снова откроем окно Диспетчера серверов. В левой панели расположена надпись «Файловые службы и службы хранилища». Щелкнем на ней мышью, чтобы перейти к настройкам.
Откроется одноименное окно, в котором демонстрируются следующие оснастки:
• Серверы — содержит список серверов (в нашем случае один) и журнал событий;
• Тома — данные о логических томах, общих ресурсах, сведения о диске;
• Диски — данные о зарегистрированных в системе дисковых накопителях;
• Пулы носителей — список доступных пулов хранения, по умолчанию — пустой;
• Общие ресурсы — сведения обо всех настроенных на сервере общих ресурсах (шарах);
• iSCSI — сведения о виртуальных дисках iSCSI;
• Рабочие папки — данные о настроенных на сервере синхронизируемых Рабочих папках
Перейдем в раздел «Общие ресурсы», и в расположенном сверху меню «Задачи» выберем пункт «Новый общий ресурс».
Запустится «Мастер создания общих ресурсов». В первую очередь нужно выбрать из списка подходящий профиль общей папки. Нам подойдет вариант «Общий ресурс SMB — быстрый профиль», поскольку он позволяет предоставлять доступ к файлам на компьютерах с Windows и не требует настройки дополнительных параметров.
Нажимаем «Далее». В следующем окне нам предложат выбрать папку для создания общего ресурса. Устанавливаем переключатель в позицию «Ввести пользовательский путь», жмем «Обзор» и выбираем созданную нами ранее папку Share. Снова жмем «Далее».
В следующем окне вводим произвольное имя общего ресурса — оно будет видно «снаружи» при обращениях к папке, нажимаем «Далее». В следующем окне нам предложат указать дополнительные настройки нашей шары. В целях безопасности можно установить флажок «Зашифровать доступ к данным» — в этом случае при удаленном доступе к папке передаваемая в обе стороны информация будет подвергнута шифрованию. Если установлен флажок «Включить перечисление на основе доступа» юзеру будет видно только то содержимое общей папки, к которому он имеет доступ согласно привилегиям его учетной записи. Если папкой будете пользоваться только вы, этот флажок можно не устанавливать. Кеширование общего ресурса я рекомендую отключить, чтобы не расходовать попусту ресурсы сервера.
По нажатию «Далее» система продемонстрирует стандартный для Windows Server список разрешений на доступ к папке, согласно которому полные права на чтение и запись имеет только пользователь с правами Администратора. Нажмите в окне Мастера на кнопку «Настройка разрешений», затем «Добавить» → «Выберите субъект», в нижнем поле введите «Все» (без кавычек), нажмите «Ок» и установите флажок «Полный доступ». Нажмите «Применить», затем «Ок».
Осталось только нажать в окне «Мастера создания общих ресурсов» кнопку «Далее» и «Создать». Выбранная нами папка появится в панели «общие ресурсы».
Траблшутинг
Теперь, казалось бы, мы можем обращаться к этой папке прямо из Проводника. Для этого набираем в адресной строке \\ip-адрес-нашего-сервера, вводим имя и пароль Администратора, и видим нашу расшаренную папку с тем именем, которое мы задали ей на этапе настройки. Можно пользоваться шарой? Хренушки. Отказано в доступе. Винда не была бы виндой, если бы все было так просто. Самый простой способ избавиться от этой ошибки — такой.
• Вновь подключаемся к серверу по RDP, щелкаем правой кнопкой мыши на значке подключения к сети в трее и выбираем в контекстном меню «Открыть Параметры сети и интернет».
• В открывшемся окне проматываем содержимое вниз и жмем на надпись «Центр управления сетями и общим доступом».
• В расположенной слева панели жмем на надпись «Изменить дополнительные параметры общего доступа».
• Устанавливаем переключатель в положение «Включить сетевое обнаружение».
• Переходим в раздел «Все сети» чуть ниже, устанавливаем переключатель в положение «Включить общий доступ, чтобы сетевые пользователи могли читать и записывать файлы в общих папках».
• Жмем «Сохранить изменения».
Если сетевое обнаружение никак не хочет включаться, делаем следующее: в панели поиска набираем без кавычек «Службы» или services.msc, и принудительно запускаем следующие службы (если они еще не запущены):
• DNS-клиент (DNS Client)
• Обнаружение SSDP (SSDP Discovery)
• Публикация ресурсов обнаружения функции (Function Discovery Resource Publication)
• Узел универсальных PNP-устройств (UPnP Device Host)
Для каждой из этих служб настоятельно рекомендую включить автоматический запуск. Все? Теперь-то мы можем использовать общую папку? Нет!
Запускаем на сервере Проводник, находим в нем нашу расшаренную папку. Щелкаем на ней правой клавишей мыши, в контекстном меню выбираем пункт «Свойства» и открываем вкладку «Безопасность». Выбираем щелчком мыши пользователя «Все» и нажимаем на кнопку «Изменить». Устанавливаем флажок «Полный доступ», жмем «Применить» и «Ок».
Это еще не конец наших мучений! Открываем вкладку «Доступ», нажимаем на кнопку «Расширенная настройка», затем — «Разрешения». В появившемся окне нужно установить флажок «Полный доступ», затем нажать «Применить» и «Ок».
Неужели квест закончен и мы можем пользоваться нашей шарой? Как бы ни так! Ведь это операционная система Windows Server 2019, в которой безопасность стоит на первом месте. Поэтому при попытке обратиться к серверу из Проводника на локальном компьютере мы, скорее всего, увидим ошибку «Вход в систему не произведен: выбранный режим входа для данного пользователя на этом компьютере не предусмотрен».
На этом этапе кое-кто отчаивается и идет покупать платный аккаунт в Dropbox за $9.99. Но мы сильны духом, любим секс, а потому продолжаем эксперименты. Вновь открываем Удаленный рабочий стол на сервере, вводим в поисковую строку слово «Администрирование» (без кавычек) и нажимаем Enter. В окне «Администрирование» выбираем «Локальная политика безопасности» → «Локальные политики» → «Назначение прав пользователя» → «Отказать в доступе этому компьютеру из сети — Гость». Дважды щелкаем на этой строке мышью и удаляем «Гостя» из списка.
Все! Аллилуйя! Вот теперь, после всех этих плясок с бубном общий доступ к папке будет наконец открыт, и мы получим возможность насладиться всеми чудесными возможностями Windows Server 2019. Как минимум, сможем сохранять в шаре файлы. Для пущего удобства можно подключить удаленную папку в качестве сетевого диска. Для этого:
• На своей рабочей машине откройте Проводник, щелкните правой клавишей мыши на значке «Этот компьютер» и выберите в контекстном меню пункт «Подключить сетевой диск».
• В открывшемся окне выберите букву сетевого диска, в поле «Папка» введите IP-адрес сервера и сетевое имя общей папки, установите флажки «Восстанавливать подключение при входе в систему» и «использовать другие учетные данные».
• Нажмите на кнопку «Готово».
При первом подключении к диску потребуется ввести логин и пароль Администратора сервера. В дальнейшем параметры учетки будут подтягиваться автоматически.
Если при попытке соединения появляется ошибка «Ресурс общего доступа доступен в сети, но не отвечает на попытки подключения» виноват, вероятно, брандмауэр на сервере. Проверить это достаточно просто: нужно отключить брандмауэр и попробовать зайти в общую папку. Если попытка увенчалась успехом, необходимо настроить в брандмауере правила для соединений.
Квотирование и Рабочие папки
При желании в «Диспетчере серверов» можно настроить квотирование, то есть, запретить пользователям создавать в общей папке файлы больше заданного объема. Еще там есть занимательный инструмент «Рабочие папки». Фактически, это та же сетевая шара, только с автоматической синхронизацией, как в Dropbox или у «Яндекс.Диска». Файлы в «Рабочей папке» хранятся на сервере и остаются там даже после удаления файлов на устройстве пользователя. Подробнее почитать о них можно вот здесь, я же не буду описывать технологию настройки Рабочих папок, поскольку она в целом схожа с настройкой обычной сетевой шары, которую мы подробно рассмотрели в этой статье.