- Частное облако для видео и фотографий за полчаса «на коленке»
- Подготовка
- Установка Syncthing на компьютеры
- Мобильное приложение
- Связываем устройства
- Как создать собственное облако, где можно бесплатно хранить любой объём данных
- Персональное облако
- Возможные решения
- OwnCloud
- NextCloud
- SparkleShare
- Seafile
- Pydio
- ProjectSend
- SpiderOak
- Установка NextCloud
- OnlyOffice
- Выводы
Частное облако для видео и фотографий за полчаса «на коленке»
Многие пользуются функцией синхронизации с облаком от крупных компаний, таких как Apple или Google, кто-то предпочитает Yandex, mail.ru и тому подобное. Мне эти варианты не приглянулись, предпочитаю свои данные хранить самостоятельно. Потому, однажды, решил сделать себе простенькое «облако».
Задача: синхронизировать устройства и дать возможность получить отснятый материал через web-браузер, авторизировавшись по паролю. Пароль этот раздать родным и близким.
Зачем это все нужно? Дело в том, что развелось, без меры, всевозможных «уполномоченных» и лиц, считающих себя таковыми. Это может быть сотрудник полиции, не особенно желающий следовать не то, что духу, но и букве закона, всевозможные сотрудники ЧОПов «Рога и Копыта», которым знание законов, да и вообще мозг, заменяет указ начальства, безумные вахтеры с одноименным синдромом, казаки, разноплановые активисты — перечислять можно ну очень долго.
Вся эта почтенная публика очень не любит, когда их художества снимают на видео. Во время съемки можно услышать «здесь снимать запрещено», «я должностное лицо», «убери камеру, да я тебя!», а то и вовсе поучаствовать в игре «не дай разбить свой гаджет и не получи кулаком в лицо».
Замечал, что когда звучит фраза «ведется прямая трансляция», пыл вышеперечисленных персонажей несколько угасает, тянущиеся к раздражающему устройству ручки опадают, а «ты» резко меняется на «вы». Облагораживает, в общем, волшебная фраза.
Из материальных средств у меня был под рукой смартфон под управлением Android, домашний сервер под управлением Debian GNU/Linux, и пара ноутбуков. Было решено, что хранить все яйца в одной корзинке не стоит, потому приобрел еще одно устройство и разместил его там, где до него точно не дотянутся загребущие ручки разнообразных полномочных.
Подготовка
Домашний сервер был готов изначально, система там стоит на LUKS, поэтому никаких дополнительных действий, кроме установки Syncthing, не потребовалось.
На втором сервере система работает с карты памяти, потому подключаю LUN с хранилки и доустанавливаю пакеты для поддержки MPIO:
Отлично. Ставим ПО для работы с LUKS, зашифруем устройство, создадим файловую систему и смонтируем:
В /etc/crypttab запишем:
Пояснение: я создал отдельного пользователя, из-под которого на данном сервере будет работать syncthing.
Доустановил nginx и утилиты апача для работы с htpasswd:
Настройке nginx и получению сетрификатов с letsencrypt посвящено не мало статей, поэтому просто покажу конфиг /etc/nginx/sites-available/default:
Соответственно, файлы с паролями будут находиться в /etc/nginx/passwd. Создаем файлы, задаем учетки:
Чтобы nginx мог читать пользовательские файлы, добавим его в группу:
Создадим пользовательские каталоги, смонтируем и перечитаем конфиг nginx:
И добавим точки монтирования в /etc/fstab:
Установка Syncthing на компьютеры
Здесь все весьма тривиально. На серверах под управление Debian, я добавил репозитарии и установил приложение, воспользовавшись инструкцией с сайта.
На Void Linux, под которым работают ноутбуки, просто установил из репозитария:
Для автозапуска приложения, дописал в /etc/rc.local:
Мобильное приложение
Здесь тоже все просто. Тем или иным путем, нам нужно установить Syncthing на свой смартфон. Я это сделал через F-Droid:
Папки лучше расшарить через web-интерфейс, явно указав пути:
Связываем устройства
Действия предельно простые. Заходим браузером по адресу http://localhost:8384/
Для доступа к безголовым машинам, можно пробросить порт. Я это делаю средствами ssh:
В итоге, на время активности ssh-сессии, веб-интерфейс сервера будет доступен по ссылке http://localhost:38384/
Далее, меню «Действия» → «Показать ID», после чего сканируем QR-код из Syncthing на смартфоне.
Можно добавить, на одном из компьютеров все остальные, напрямую введя ID и указать это устройство в качестве «рекомендателя», после чего добавить его на смартфоне. Все остальные устройства подтянутся автоматом.
В настройках доступа расшаренной папки можно указать, какие из устройств будут иметь доступ. Вдруг нужно будет какое-то исключить из списка.
Также крайне рекомендую активировать хотя бы простую версионность, на случай, если файл будет удален с одного из устройств, скажем, под чутким руководством сотрудника полиции.
Вот так, из подручных материалов, собрали, по сути, отказоустойчивое «облако» для хранения и отдачи отснятого материала. При желании, можно добавить еще пару узлов, например компьютер на работе, или Raspberry Pi с шифрованным USB-HDD в гараже, главное, чтоб был доступ к Сети.
Если есть какие-либо дополнения и замечания, буду рад прочесть их в комментариях.
PS: на смартфоне в Syncthing крайне рекомендую выставить опцию «запускать с высоким приоритетом», чтобы система не прибила.
Источник
Как создать собственное облако, где можно бесплатно хранить любой объём данных
Мы все пользуемся облачными хранилищами, а некоторые из нас даже платят абонентскую плату за возможность хранить файлы сверх выделенного лимита. Это удобно — при наличии интернета нам в любой момент доступны все файлы, которые мы скопировали в облако. Но у таких сервисов есть и недостатки: их могут взломать хакеры, файлы могут попасть к посторонним, а если владельцев облака не устроит контент, который вы храните у них, ваш аккаунт могут заблокировать, и тогда все файлы пропадут. Создание собственного облака — отличное решение, хотя и у него есть свои недостатки.
Премущества персонального облака:
— Нет лимитов. Вы можете хранить столько файлов, сколько вмещается на накопители в вашем компьютере.
— Никаких платежей, всё бесплатно (кроме электроэнергии).
— Полная приватность. Файлы копируются с компьютера на другие устройства без использования стороннего сервера.
— Возможность делиться неограниченным количеством папок и файлов с другими пользователями.
— Управление уровнями доступа к файлам и папкам.
Недостатки персонального облака:
— Придётся держать компьютер постоянно включённым, иначе удалённый доступ к файлам пропадёт.
— Не получится прикрутить ваше облако к большей части приложений, которые работают с популярными хранилищами.
— Риск лишиться файлов из-за сбоя в компьютере.
Как создать своё облако:
1. Зайдите на сайт Tonido и создайте учётную запись.
2. Скачайте программу Tonido Server. Установите её, запустите и разрешите ей доступ к сети (если выскочит диалоговое окно брандмауэра). Эта программа создаёт из компьютера сервер, благодаря чему доступ к хранящимся на нём файлам может осуществляться из любой точки мира через интернет.
3. Значок Tonido Server висит в панели уведомлений. По нажатию на нему в браузере открывается локальный адрес http://127.0.0.1:10001 с интерфейсом сервиса, где можно указать, какие папки будут добавлены в облако.
4. Скачайте мобильное или десктопное приложение Tonido. Запустите его и зайдите в свою учётную запись. Если вы увидите в приложении файлы, которые хранятся на компьютере, значит облако готово и им можно пользоваться. Теперь у вас всегда будут при себе все нужные вам файлы.
Приложение может открывать некоторые типы файлов, в том числе видео, музыку и тексты. Любой файл можно скачать на устройство или отправить другу (по электронной почте или с прямым доступом по ссылке в сервисе Tonido).
Строго говоря, сервер, запущенный на домашнем компьютере, не может считаться полноценным облачным сервисом. Облако — профессиональное решение, которое использует технологию распределения файлов по нескольким серверам, благодаря чему риск их пропажи почти исключается. Вероятность повреждения данных можно минимизировать и дома — для этого, например, можно создать RAID-массив. Но даже в этом случае остаются другие риски, например, физическое повреждение компьютера или его кража. Обезопаситься от этого сложнее.
Источник
Персональное облако
Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.
Возможные решения
Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
Ниже рассмотрена часть из них.
OwnCloud
Реализован на PHP/Javascript.
- Возможно расширять функционал, устанавливая приложения из репозитория облака.
- Есть интеграция с офисом Collabora и OnlyOffice.
- Возможно использовать существующие хранилища, такие как FTP, Swift, S3, Dropbox и т.п.,
распределяя данные между ними и локальным облаком. - Шифрование на клиенте.
- Возможность предоставлять файлы внешним пользователям по e-mail.
- Есть автоматизация операций с файлами (например, автоматическое добавление тэгов).
- LDAP.
- Есть аудио плеер, музыкальная коллекция, галерея плагин чтения PDF.
- Интеграция с Zimbra.
- Есть календари, списки задач, текстовые редакторы и т.п.
- Антивирус и защита от ransomware.
- Двуфакторная аутентификация.
- Возможность имперсонации под другого пользователя (с целью отладки).
NextCloud
Форк OwnCloud. Реализован на PHP/Javascript.
- Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV.
- Есть NextCloud Talk, через который возможно делать видеозвонки и видеоконференции.
- Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux.
- Синхронизация с мобильными устройствами.
- Календарь (также как CalDAV).
- Планировщик задач.
- Адресная книга (также как CardDAV).
- Потоковое мультимедиа (используется Ampache).
- Поддерживает разные провайдеры авторизации: LDAP, OpenID, Shibboleth.
- Двуфакторная авторизация.
- Разделение контента между группами или используя публичные URL. Тонкая настройка правил.
- Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием. Анонсирована поддержка онлайн-версий редакторов LibreOffice.
- Закладки.
- Механизм сокращения URL.
- Фотогалерея.
- Просмотрщик PDF (используется PDF.js)
- Интеграция с Collabora и OnlyOffice.
- Модуль логирования.
- Возможность создания свои Web-сайтов (на PicoCMS).
- Интеграция с Outlook и Thunderbird.
- Интеграция клиента в Gnome.
- Возможность использовать внешнее хранилище.
- Полнотекстовый поиск.
- Интеграция с антивирусом.
SparkleShare
Реализован на C#.
- Версионирование.
- Шифрование на клиенте.
- Прозрачная синхронизация между несколькими пользователями: удалённые изменения появятся в локальном каталоге, выделенном для SparkleShare.
Seafile
Реализован на C/Javascript.
- Файлы могут быть организованы в библиотеки, которые могут быть синхронизированы между устройствами.
- Есть клиент, позволяющий создать локальный «диск», отображённый на облако.
- Встроенное шифрование. Все файлы шифруются клиентом и хранятся в облаке зашифрованными.
- Поддержка мобильных устройств.
- HTTS/TLS шифрование.
- Есть LDAP.
- Тонкая настройка прав.
- Версионирование файлов.
- Возможность создания снимка каталога, к которому потом возможно вернуться.
- Дедупликация.
- Поддержка блокировки файлов.
- Совместное редактирование файлов онлайн.
- Антивирус.
- Тонкая настройка прав.
- Периодический бэкап через rsync.
- WebDAV.
- REST API.
- Возможность интеграции с Collabora.
- Быстрый и нетребовательный к ресурсам.
- Считается надёжным.
- Установка прав на подкаталоги поддерживается только в платной Pro версии.
- Интеграция с антивирусом — только в Pro версии.
- Аудит — только в Pro версии.
- Полнотекстовый поиск — только в Pro версии.
- Интеграция с S3 и Ceph — только в Pro версии.
- Онлайн просмотр Doc/PPT/Excel — только в Pro версии.
Pydio
Реализован на PHP/Javascript.
- Обмен файлами не только между пользователями, но и между несколькими экземплярами Pydio.
- SSL/TLS шифрование.
- WebDAV.
- Возможность создать несколько рабочих пространств.
- Обмен файлами с внешними пользователями, с тонкой настройкой обмена (например, прямые ссылки, пароль и т.п.).
- Встроен офис Collabora.
- Предосмотр и редактирование изображений.
- Есть встроенный аудио и видео проигрыватель.
ProjectSend
Реализован на PHP/Javascript.
- Возможно расшаривать файлы, как между конкретными пользователями, так и между группами.
- Полный отчёт по операциям с файлами.
- Возможность внешним пользователям загружать файлы (с целью обмена, например прикладывать баг-репорты).
SpiderOak
- Экономия места в хранилище и времени выгрузки файлов за счёт дедупликации и внесения изменений в уже имеющиеся файлы (вместо перезаписи файлов целиком).
- Настраиваемая мультиплатформенная синхронизация.
DropBox для синхронизации создаёт специальную папку, в которую надо помещать все синхронизируемые файлы. SpiderOak может работать с любым каталогом. - Сохранение всех хронологических версий файлов и удаленных файлов
- Совместное использование папок при помощи так называемых ShareRooms, на которые устанавливается пароль.
Файлы, обновлённые на локальном компьютере, автоматически обновляются в хранилище. Пользователи извещаются об изменениях по RSS. - Получение файлов с любого подключенного к Интернету устройства.
- Полное шифрование данных по принципу «нулевого знания».
- Поддержка неограниченного количества устройств.
- Шифрование данных на стороне клиента.
- Двуфакторная аутентификация.
Закрытая проприетарная система.
С учётом того, что данное ПО платное и частично закрытое, его использование исключается.
Установка NextCloud
Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.
Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.
Посмотреть, как он работает в демо-режиме вы можете здесь.
Вот общие точки сопряжения между облачным хранилищем и системой:
- /tank0/apps/cloud/nextcloud — хранилище облачного сервиса.
- /tank0/apps/onlyoffice — данные офиса.
- https://cloud.NAS.cloudns.cc — WEB интерфейс облачного сервиса.
Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.
Всё, что нужно вы найдёте в репозитории на Github.
Там же доступна конфигурация для SeaFile.
Сначала установите и запустите NextCloud.
Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:
Будет собран новый образ на основе Nextcloud 13.0.7. Если вы хотите изменить версию базового образа, сделайте это в app/Dockerfile . Я использую версию 15, но стоит заметить, что в ней не работают многие плагины, такие как загрузчик ocDownloader и заметки, а также я ещё не восстановил работоспособность OnlyOffice.
Кардинальных отличий или сильного улучшения производительности я не заметил.
Ниже я считаю, что вы используете версию 13+.
Далее, зайдите в NextCloud и выбрав в меню справа вверху «Приложения», выполните установку необходимых плагинов.
- LDAP user and group backend — сопряжение с LDAP.
- External Storage Support — поддержка внешних хранилищ. Нужна будет далее, с целью интеграции NextCloud и общих файлов, а также сопряжения с внешними облачными хранилищами. Про настройку внешних хранилищ я расскажу в другой статье.
- ocDownloader — загрузчик файлов. Расширяет функциональность облака. Docker образ специально пересобран так, чтобы он работал.
- ONLYOFFICE — интеграция с офисом. Без этого приложения, файлы документов не будут открываться в облаке.
- End-to-End Encryption — сквозное шифрование на клиенте. Если облако используют несколько пользователей, плагин необходим, чтобы удобно обеспечить безопасность их файлов.
- Brute-force settings — защита от подбора учётных данных. NextCloud смотрит в Интернет, потому лучше установить.
- Impersonate — позволяет администратору заходить под другими пользователями. Полезно для отладки и устранения проблем.
- Talk — видеочат.
- Calendar — говорит сам за себя, позволяет вести календари в облаке.
- File Access Control — позволяет запрещать доступ к файлам и каталогам пользователям на основе тэгов и правил.
- Checksum — позволяет вычислять и просматривать контрольные суммы файлов.
- External sites — создаёт ссылки на произвольные сайты на панельке вверху.
- Установлен загрузчик Aria2.
- Установлен загрузчик Youtube-DL.
- Установлены inotify-tools.
- Увеличены лимиты памяти для PHP.
- Web-сервер настроен под лучшую работу с LDAP.
Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.
Настройка LDAP не тривиальна, потому я расскажу подробнее.
Зайдите в «Настройки->Интеграция с LDAP/AD».
Добавьте сервер 172.21.0.1 с портом 389.
Логин: cn=admin,dc=nas,dc=nas .
NextCloud может управлять пользователями в базе LDAP и для этого ему потребуется администратор.
Нажимайте кнопку «Проверить конфигурацию DN» и, если индикатор проверки зелёный, кнопку «Далее».
Каждый пользователь имеет атрибут inetOrgPerson и состоит в группе users_cloud .
Фильтр будет выглядеть так:
Нажимайте «Проверить базу настроек и пересчитать пользователей», и если всё корректно, должно быть выведено количество пользователей. Нажимайте «Далее».
На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.
На этой странице надо ввести логин какого-либо пользователя и нажать «Проверить настройки».
Последний раз «Далее».
Тут нажмите «Дополнительно» и проверьте, что поле «База дерева групп» равно полю «База дерева пользователей» и имеет значение dc=nas,dc=nas .
Вернитесь в группы и установите в поле «Только эти классы объектов» галочку напротив groupOfUniqueNames .
Итоговый фильтр здесь такой:
Поле «Только из этих групп» я не устанавливал, т.к. хочу увидеть в интерфейсе NextCloud всех пользователей, а те кто не входит в группу users_cloud , отсеиваются фильтром на предыдущем этапе.
OnlyOffice
OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.
Но при этом, поддержка оригинального формата у него реализована гораздо лучше, почти как в оригинальном офисе от MS, он более стабилен, имеет более продуманный интерфейс.
Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.
Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.
Поясню некоторые моменты:
- Вам надо изменить на свой, также как и NAS на имя своей DNS зоны.
- HTTPS здесь не требуется включать, потому что хотя офис и виден снаружи, обмен с ним идёт через обратный прокси, который работает с пользователем исключительно по HTTPS. Так построена архитектура NAS.
Теперь надо поднять офис:
И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:
Затем, в настройках NextCloud требуется выбрать Пункт «Администрирование->ONLYOFFICE» и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.
В третьем поле надо прописать адрес облака.
JWT токен возможно сгенерировать, например здесь.
Если сервер настроен правильно, в меню создания документов облака появятся дополнительные пункты для офисных документов, а .docx файлы будут открывать в офисе.
Выводы
Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.
В этой роли NextCloud весьма удобен и обладает широким функционалом.
У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.
Источник