Пользователь
0,0
рейтинг
27 июля 2012 в 07:49

ownCloud, делаем своё собственное защищённое облако из песочницы

ownCloud представляет собой Open Source решение для организации своего собственного dropbox-подобного хранилища файлов. Кроме, собственно, синхронизации файлов доступны так же дополнительные возможности, как то: синхронизация контактов, календарей (наличествует поддержка CalDAV) и задач, фотогалерея, проигрыватель аудио (с поддержкой протокола Ampache). Сервис работает в многопользовательском режиме, есть функционал общих папок.

Клиенты синхронизации доступны для Windows / Mac / Linux / Android, версия для iOS, по заверениям разработчиков, в финальной стадии. Наличествует достаточно интересная, но пока экспериментальная функция External Storage, позволяющая монтировать Dropbox и GDrive в папку с ownCloud.

Важной для меня функцией в Android-клиенте является Instant Upload, автоматически загружающий видео и фотографии в облако сразу после съёмки, аналогично клиенту Dropbox.

Проект достаточно сыроват, интерфейсы и стабильность работы клиентов оставляют желать лучшего, однако тот факт, что облако полностью управляемо и зашифровано перекрыл эти недостатки.

В качестве хостинга можно выбрать VDS или домашний сервер на антресоли.

Рассмотрим вариант с «домашним сервером».

В качестве железки выбран простенький неттоп, операционная система — Ubuntu Server 12.04, прямой ip и доменное имя. Храниться данные будут в зашифрованном LVM-разделе, доступ клиентов к серверу организован поверх SSL.

  • Устанавливаем «голый» ubuntu server 12.04, в процессе установки не забываем про LVM-encrypted с устойчивой к подбору парольной фразой.
  • Устанавливаем необходимые пакеты:
    apt-get install apache2 php5 php5-common php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl
  • Скачиваем ownCloud:
    wget download.owncloud.org/releases/owncloud-4.0.5.tar.bz2
    (ссылку на последнюю версию можно взять непосредственно на сайте проекта) и распаковываем его:
    tar -xjf owncloud-4.0.5.tar.bz2
  • Копируем папку с ownCloud в корень web-сервера:
    cp -r owncloud /var/www/
  • Создаём необходимые папки
    mkdir /var/www/owncloud/data
    и меняем их владельца на www-data
    chown -R www-data:www-data /var/www/owncloud/apps
    chown -R www-data:www-data /var/www/owncloud/config
    chown -R www-data:www-data /var/www/owncloud/data
  • Редактируем /etc/apache2/sites-enabled/000-default
    Здесь AllowOverride=All в разделе «Directory /var/www»
  • Включаем модули rewrite, headers и ssl в apache:
    a2enmod rewrite && a2enmod headers && a2enmod ssl
  • Устанавливаем openssl:
    apt-get install openssl (вероятно, уже установлен)
    генерируем самоподписанные сертификаты и размещаем их по соответствующим папкам:
    openssl genrsa -des3 -out server.key 1024
    mv server.key server.key.old
    openssl rsa -in server.key.old -out server.key
    openssl req -new -key server.key -out cert.csr
    openssl x509 -req -days 365 -in cert.csr -signkey server.key -out cert.crt
    mv cert.crt /etc/ssl/certs/
    mv server.key /etc/ssl/private/
  • Редактируем /etc/apache2/sites-available/default-ssl
    Указываем в SSLCertificateFile сгенерированный ранее сертификат /etc/ssl/certs/cert.crt, а в SSLCertificateKeyFile свой ключ /etc/ssl/private/server.key
    Не забываем также указать имя домена и сайта.
  • Указываем апачу основной сайт:
    a2ensite default-ssl
  • Рестартим апач:
    service apache2 reload
    На этом этап установки завершён, далее нужно будет настроить, собственно owncloud.
  • Заходим по адресу yourip.address/owncloud, принимаем самоподписанный сертификат, проходим все необходимые шаги (точнее, всего один шаг) по настройке ownCloud. Попадаем в достаточно приятный веб-интерфейс.
  • Далее устанавливаем на компьютерах/смартфонах клиенты. Настройка клиента сводится к указанию адреса owncloud — yourip.address/owncloud, вводу имени и пароля и конечной папки на компьютере. Не забываем в адресе указать https, а не http.


На практике работает всё очень похоже с dropbox — заливаешь файл, он «расползается» по всем клиентам. Снимаешь на камеру Android-смартфона — изображение или видео через некоторое время попадает на компьютер. Особо хочу отметить, что Android-клиент поддерживает общесистемную функцию Easy Share Action, потому практически из любого приложения файл можно поместить в ownCloud.

ownCloud имеет встроенную поддержку WebDAV, потому на большинстве десктопных ОС можно обойтись вообще без клиентского приложения (в случае, если например неважна синхронизация, а нужен только доступ к файлам). Непосредственно на сервере данные хранятся в виде обычных файлов и, если включить фантазию и засучить рукава, можно совместить ownCloud с FTP/AFP/Samba-сервером, организовать автоматическое скачивание торрентов посредством rtorrent, а в корпоративных средах открываются поистине безграничные возможности организации доступа к файлам. В общем, всё ограничивается вашей фантазией.

Функционал легко расширяется с помощью дополнительных плагинов (Applications в терминологии ownCloud). Например, в случае физической невозможности зашифровать диск сервера можно воспользоваться плагином Encryption, тогда всё содержимое облако будет зашифровано встроенными средствами.

Объём хранилища ограничен только вашим жёстким диском. Облако в 2Tb — не вопрос. Поддержка версионности файлов наличествует. Один десктопный клиент, кстати, может подключаться к нескольким ownCloud облакам одновременно.

Скорость работы зависит в основном от ширины канала клиента и сервера. В моём случае почти все клиенты и сервер располагаются в пределах одного провайдера, потому видео с телефона заливается в облако очень быстро, несравнимо быстрее, чем в dropbox.

У данного решения с LVM-encrypted диском есть один недостаток — в случае перезагрузки мы потеряем удалённый доступ к серверу, поскольку при загрузке система будет просить парольную фразу для расшифровки диска на физической консоли. Так же из недостатков замечено, что при активной работе клиентов сервис апача на сервере неслабо отъедает процессорные ресурсы.

В итоге у нас получилось свой Dropbox с защищённым доступом и дамами, с клиентами под распространённые платформы. ownCloud, фактически, даёт возможность воспользоваться многими приятностями облачных технологий не требуя ответную жертву в виде приватности.

От себя всячески желаю проекту дальнейшего развития и процветания.
Kaerty Radic @Radic
карма
3,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (18)

  • +1
    одного не пойму… зачем дома на антресоли держать LVM-encrypted?
    • 0
      В случае, если антресоль в общем с соседями «кармашке», дверь от него легко можно забыть закрыть.
  • 0
    А какие есть идеи использования в корпоративной среде?
    • 0
      Удалённый доступ к корпоративной файлопомойке, как замена FTP, WebDAV.
    • 0
      Синхронизация домашних каталогов пользователей в единое место с целью резервного копирования.
      • 0
        А разве неосторожное действие пользователя не отразиться на хранилище симметрично? Или там такая хорошая версионность? Тогда она занимает весьма много места…
        Но в принципе, да, вариант.
        • +1
          Настраивать резервное копирование домашних каталогов с разных компов очень неудобно —
          комп пользователя может быть выключен, в ремонте, пользователь унес ноут домой и адрес его неизвестен.
          А если данные пользователей сами стекаются в одно всегда работающее место, то кто мешает делать бэкап этого места с нужной периодичностью?
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Сервис апача отжирает процессорные ресурсы на сервере, в случае домашнего сервера это некритично. Клиенты пока функционально слабые, например, десктопные не отображают иконкой статус синхронизации, Android-клиент не предлагает выбора использовать Instant Upload только в сетях Wi-Fi, соответственно, будет пытаться заливать гигабайтный видеоролик даже в сети EDGE.
      В остальном работает всё стабильно.
    • 0
      Аналогично, дикие баги и тормоза были в третьей версии.
  • 0
    в Ubuntu Server 12.04 owncloud кстати есть в стандартных репозиториях.
    а клиент их не понравился, особенно с сравнении с дропбокосвым
  • 0
    Блин, достаточно давно использую эту штуку, но не знал об андроид клиенте. Откуда вы его берете?! В маркете по запросу «owncloud» вылазит всякая шняга, на странице owncloud.org/sync-clients/ под андроид ничего нет. WTF?!
  • +1
    Почему это называется облаком?
    • +1
      Потому же, почему в свое время гламурные кнопки и fage-эффекты назывались AJAX :) А если серьезно, то тренд просто расширяет свои термины на около-трендовую среду и сейчас почти все, что хранит данные не на локале, называется облаком.
    • +2
      Вот что про это пишет википедия… :)

      — Кроме всего прочего, облака — известный лирический образ, используемый многими поэтами (Державин, Пушкин) в своих произведениях, писатели часто обращаются к этому образу, если требуется описать нечто высокое, мягкое или недосягаемое. Они ассоциируются с покоем, мягкостью и безмятежностью. Облака часто олицетворяют, придавая им мягкие черты характера.
      — недосягаемые, значит, они, мягкие и безмятежные!
    • 0
      Мода.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.