376

Делаем собственное облако. OwnCloud+Let's Encrypt

Наверняка вы пользуетесь какими-либо хранилищами данных в интернете. Если у вас есть почта в Gmail, значит автоматически у вас есть аккаунт в Drive.Google и именно там хранится ваша почта. Если почта от Yandex, то, точно также, вы используете Yandex.Диск. Есть еще множество вариантов облачных хранилищ. Есть платные и бесплатные, с разными характеристиками. Вы можете выбирать исходя из имеющейся задачи сохранения тех или иных данных. Но у всех этих хранилищ есть существенный недостаток — вы их абсолютно не контролируете. Кроме того, и это не секрет, те же Google и Yandex читаю вашу почту, просматривают ваши файлы для таргетирования рекламы. Менее именитые хранилища порой становились фигурантами утечек данных об аккаунтах пользователей, а значит хранимая в них информация подвергалась разной степени компрометации.


В общем очевидно, что неплохо было бы иметь собственное хранилище данных. Возможно не очень большое, но пригодное для хранения чувствительной информации. Конечно же подключение и обмен с таким хранилищем должны быть защищены. Само хранилище желательно расположить там, где до него не дотянутся Яровая и прочие Мизулины. Ну и хранимые файлы не блохо бы зашифровать. Вперед, к облакам!

В этой статье будет рассказано, как установить и настроить собственное хранилище на базе решения ownCloud. Нам подойдет любой VPS с количеством оперативной памяти от 512МБ. Вычислительные способности не очень важны, если пользоваться хранилищем будет малое число клиентов. А вот места на жестком желательно побольше. Сколько именно — решать вам. Применение SSD, опять же, при малом числе клиентов, не обязательно. Трафик тоже прикидывайте сами. Если у вас хранилище в районе 100ГБ, то и 512ГБ исходящего трафика в месяц будет достаточно. Важнее, чтобы реальная скорость канала была большая. Не стоит гнаться за тарифами с безлимитным трафиком, но с плохими каналами.


Небольшое отступление: Есть ответвление от ownCloud под названием Nextcloud. Он новее и прогрессивнее, но пока не блещет стабильностью и поддержкой. Ветки не сильно разошлись и Nexcloud настривается точно также. Для ознакомления и пробы сил я всё-таки рекомендую ownCloud. Он лучше документирован, по нему море статей, все баги и особенности давно разобраны.


Под ownCloud нам потребуется установить и настроить LEMP сервер. Устанавливать его мы будем на CentOS 7 x64. Желательно использовать дистрибутив с минимальным набором пакетов. Такой есть у любого хостера, называться будет примерно так: centos-7-x86_64-minimal. Все необходимые пакеты мы поставим в процессе настройки. Минимальный дистрибутив позволит избежать конфликтов пакетов и занятых портов.


Ещё нам понадобиться доменное имя. Второго или третьего уровня. Возможно у вас уже есть какой-нибудь домен. Тогда вы можете сделать поддомен вида, например, mycloud.example.com


Или же вы давно хотели заиметь свой домен (например для почты), но всё не решались. Тогда самое время перейти на сайт регистратора (godaddy.com, reg.ru и тысячи их. Не реклама!) и зарегистрировать доменное имя. Естественно, это будет стоить денег. Причем ежегодно. Можно получить доменное имя бесплатно. Например, перейдём на dot-tk (вместо - поставьте точку) и поищем свободное имя в зонах tk .ml .ga .cf .gq

Если у вас уже есть домен, то просто добавьте А запись, вида (вместо 123.123.123.123 вставить IP-адрес вашего VPS):

Если вы решили получить новый платный домент, то действуйте по инструкциям выбранного регистратора, а потом добавьте А запись, как показано выше.


Если ваш маленький еврей бунтует, то продолжим получать бесплатный домен у dot-tk

Как видите, я выбрал для домена такое немного колхозное, но понятное имя mydomen.ml (я знаю, что правильно mydomain, но все простые имена уже были заняты или платные). На его примере я и буду рассказывать дальше.

Так как у вас еще нет своего сайта/блога/etc, то вместо 123.123.123.123 вписываете IP-адрес вашего VPS.


Дальше вам предложат зарегистрироваться и домен за вами. Попадаем в clientarea

В принципе, мой домен уже смотрит на мой VPS и на этом можно было бы остановиться. Но это не правильно. ownCloud это сервис, один из многих, которые можно привязать к домену. Поэтому мы не будем тратить домен второго уровня на ownCloud, а сделаем как написано выше, домен третьего уровня.


Откроем консоль управления доменом.

Откроем управление DNS-записями

И добавим запись. Нужно заполнить новую запись в разделе Add Record (выделено красным). Вместо 123.123.123.123 вписываете IP-адрес своего VPS

Не забудьте нажать кнопку «Save Changes» под новой записью.


Так мы создадим домен третьего уровня, ведущий на наш VPS с ownCloud.


В дальнейшем, в том месте, где обведено зелёным, вы сможете написать другой IP. Например IP сервера с вашим сайтом.


Тогда домен mydomen.ml будет вести на сайт, а домен mycloud.mydomen.ml на VPS с ownCloud. Сейчас и тот и другой ведут на ваш VPS.


Мы будем использовать mycloud.mydomen.ml


Настройте SSH и подключитесь к серверу с помощью Pytty и WinSCP. Как это сделать, ищите здесь.


Выполним стандартные телодвижения по подготовке CentOS к работе:

yum -y install epel-release
yum -y update

Установим web-сервер Nginx:

yum -y install nginx

Добавим репозиторий webtatic (предоставляет для CentOS пакеты, относящиеся к PHP):

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Теперь установим PHP7-FPM и еще несколько дополнительных пакетов (в числе прочего будет установлен Redis), которые понадобятся в рамках этой статьи:

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt
yum -y install php70w-pear php70w-xml php70w-mbstring php70w-pdo
yum -y install php70w-json php70w-pecl-redis php70w-mysql
yum -y install dialog crontabs wget unzip redis git bc

Проверим версию PHP, чтобы убедится, что всё хорошо встало

php -v

Должно быть примерно так:

Настроим PHP7-FPM


С помощью WinSCP откроем файл /etc/php-fpm.d/www.conf и найдем строчки:

; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

Исправим на:

; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

Найдем:

listen = 127.0.0.1:9000

Проверяем, чтобы был именно порт 9000.

Находим:

;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

и превращаем в

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Сохраняем и закрываем файл.

Теперь сделаем рабочий каталог для PHP:

mkdir -p /var/lib/php/session

Назначим его владельцем пользователя nginx

chown nginx:nginx -R /var/lib/php/session/

Запустим php-fpm, redis и nginx

systemctl start redis
systemctl start php-fpm
systemctl start nginx

Убедимся, что с ними всё хорошо

systemctl status php-fpm
systemctl status nginx
systemctl status redis

И добавим в атозагрузку

systemctl enable php-fpm
systemctl enable nginx
systemctl enable redis

Теперь на нужна СУБД MariaDB. Установим:

yum -y install mariadb mariadb-server

Запустим:

systemctl start mariadb

Проверим:

systemctl status mariadb

И добавим в автозагрузку

systemctl enable mariadb

Теперь выполним первоначальную настройку MariaDB:

mysql_secure_installation

На вопрос

Enter current password for root (enter for none):

просто жмём Enter. На вопрос:

Set root password? [Y/n]

отвечаем Y и жмём Enter, придумываем и два раза вводим стойкий пароль.

Навсе последующие вопросы отвечаем Y и жмём Enter.

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Создадим новую базу данных с названием ‘owncloud_db’ с пользователем ‘ownclouduser’.

mysql -u root -p

СУБД спросит пароль, вводим пароль придуманный выше.

Вводим команду (не забывайте «;» )

create database owncloud_db;

В следующей команде вместо ownclouduser_pass придумайте, запомните и впишите стойкий пароль (да, ещё один).

create user ownclouduser@localhost identified by 'ownclouduser_pass';

Дадим пользователю права на новую базу (вместо ownclouduser_pass впишите пароль из предыдущей команды)

grant all privileges on owncloud_db.* to ownclouduser@localhost identified by 'ownclouduser_pass';

И отменим все другие права:

flush privileges;

Чтобы выйти из консоли СУБД введите

quit;

Теперь настроим бесплатный сертификат Let’s Encrypt для нашего Nginx и автоматизируем его обновление.

Клонируем репозиторий проекта letsencrypt из GitH

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Теперь создадим сертификат

ВНИМАНИЕ: к этому моменту ваш домен (в моём случае mycloud.mydomen.ml) уже должен пинговаться.

Чтобы это проверить, на компьютере с Windows нажимаем сочетание клавиш Win+R и вписываем

ping mycloud.mydomen.ml

в ответ мы должны получить четыре строчки вида «Ответ от 123.123.123.123: число байт=32 время=79мс TTL=51». Если в ответ мы получаем «При проверке связи не удалось обнаружить узел…», то нужно просто подождать. После регистрации домена и добавление строчки с доменом третьего уровня может пройти до 24 часов, прежде чем они начнут пинговаться.

Выполним последовательно команды:

cd /opt/letsencrypt
./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html/ -d mycloud.mydomen.ml

В процессе нас попросят ввести e-mail для уведомлений (вводим реально существующий):

Enter email address (used for urgent renewal and security notices) (Enter ‘c’ tocancel)

принять лицензионное соглашение (ввести A)

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.... You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
——————————————————————————-
(A)gree/(C)ancel:

и ответить на вопрос об информационной рассылке (ввести Y или N, тут уж как сами хотите.)

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
——————————————————————————-
(Y)es/(N)o:

В конце получим сообщение вида:

Congratulations! Your certificate and chain have been saved at…

Теперь сделаем ключ для алгоритма Диффи-Хелмана.

openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Процесс долгий. Занимает несколько минут.


Теперь научим наш Nginx применять полученные сертификаты, а также добавим некоторые настройки для ownCloud. Открываем конфиг Nginx по пути /etc/nginx/nginx.conf и находим в нем секцию, которая выглядит примерно так:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

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


Удаляем эту секцию и вместо неё вставляем секции следующего содержания:

upstream php-handler {
server 127.0.0.1:9000;
}
server {
# перенаправление с 80 порта, а также с www
server_name mycloud.mydomen.ml www.mycloud.mydomen.ml
listen 80;
return 301 https://mycloud.mydomen.ml$request_uri;
}

server {
listen 443 ssl;
server_name mycloud.mydomen.ml;
# Указываем пути к сертификатам
ssl_certificate /etc/letsencrypt/live/mycloud.mydomen.ml/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mycloud.mydomen.ml/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
# позволяем серверу прикреплять OCSP-ответы, тем самым уменьшая время загрузки страниц у пользователей
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
location ~ /.well-known {
allow all;
log_not_found off;
access_log off;
}
# The rest of your server block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/acme-challenge { }
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into this topic first.
#add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}

Смотрим внимательно в приведённый выше конфиг. Все mycloud.mydomen.ml заменяем на название своего домена.

Проверим, что всё хорошо

nginx -t

Должны получить в ответ:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Применим новые настройки

systemctl reload nginx

letsencrypt выдаёт сертификаты со сроком действия 90 дней. Их нужно заблаговременно продлевать. Процесс этот можно и нужно автоматизировать. Само обновление запускается командой

/opt/letsencrypt/letsencrypt-auto renew

Если вы выполните эту команду прямо сейчас, то она проверит все ваши сертификаты и уведомит, что их продление не требуется.

——————————————————————————-
Processing /etc/letsencrypt/renewal/mycloud.mydomen.ml.conf
——————————————————————————-
Cert not yet due for renewal
The following certs are not due for renewal yet:
/etc/letsencrypt/live/mycloud.mydomen.ml/fullchain.pem (skipped)
No renewals were attempted.

Для автопродления воспользуемся встроенным в Linux планировщиком cron. Для этого командой

crontab -e

откроем crontab для редактирования. Появится пустое чёрное поле.

Нажмите кнопку Insert на клавиатуре, снизу появится уведомление —ISERT —. Теперь впишите/вставьте следующие две строчки

00 3 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
10 3 * * 1 /usr/bin/systemctl reload nginx

Нажмите на клавиатуре кнопку Esc, режим —INSERT — пропадёт. Теперь введите (просто вводите, в нижней строчке оно появится само)

:wq

и нажмите Enter

Мы вернемся в консоль с сообщением

crontab: installing new crontab

Теперь каждый понедельник ночью в 3:00 будет обновляться сертификат, а в 3:10 перезапускаться Nginx. Вы можете контролировать выполнение задания в логе /var/log/le-renew.log.


Это всё была присказка, т.е. только подготовка к установке ownCloud. Промежуточным итогом мы имеем Web-сервер, который умеет в правильный https, имеет все необходимые библиотеки и СУБД. Т.е. мы установили и настроили (ну почти) обещанный LEMP сервер.


Остановим пока Nginx

systemctl stop nginx

Узнать последнюю версию ownCloud и получить ссылку на скачивание можно здесь.

Скачаем архив

cd /tmp
wget https://download.owncloud.org/community/owncloud-10.0.2.zip

Распаковываем его

unzip owncloud-10.0.2.zip

С помощью WinSCP удалим из папки /usr/share/nginx/html/ все папки и файлы кроме папки .well-known


И скопируем туда файлы ownCloud

cp /tmp/owncloud/. /usr/share/nginx/html/ -r

Теперь, с помощью WinSCP, в папке /root/ создадим файл oc-set со следующим содержимым:

#!/bin/bash
ocpath='/usr/share/nginx/html'
htuser='nginx'
htgroup='nginx'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

И выставим ему права 0755.

После выполним полученный скрипт:

/root/oc-set

Скрипт отработает. Создаст все необходимые каталоги для ownCloud и выставит правильные права. В результате работы скрипта будут выведены строчки:

Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess

Запустим Nginx

systemctl start nginx

Теперь можно в браузере переходить по адресу cloud.mydomen.ml


Нас встречает окно создания учётной записи администратора

Придумываем логин-пароль администратора и нажимаем «Завершить установку». Пароль должен быть стойким.


Если вы сейчас зайдёте в наше вновьсозданное облако, то увидите, что ownCloud ругается на отсутствие кэширования, что может замедлять работу. Настроим кэширования с помощью Redis.


В WinSCP откроем файл /usr/share/nginx/html/config/config.php. Смотрим на последнюю строчку, она выглядит так:

);

Перед ней добавим строчки

'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
),

запятые в конце строчек не забудьте.


Должно получиться так

‘filelocking.enabled’ => true,
‘memcache.local’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘localhost’,
‘port’ => 6379,
‘timeout’ => 0.0,
),
);

Сохранить и закрыть.

С помощью WinSCP откроем файл /etc/sysctl.conf и добавим строчку:

vm.overcommit_memory=1

Сохраним и закроем файл.


Перезапустим службы:

systemctl restart redis
systemctl restart php-fpm
systemctl restart nginx

Теперь можно в браузере заходим в наше облако cloud.mydomen.ml. Он будет ругаться на СУБД и пр. — не обращайте внимания, это для данной задачи не критично.


Обязательно зайдите в основные настройки и установите настройку планировщика задач на Cron

Облако настроено, можно пользоваться. Теперь настроим немного безопасности.


Установим и запустим файрволл

yum -y install firewalld
systemctl start firewalld

И откроем порты для необходимых сервисов

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

Проверим, что сохранилась возможность заходить по ssh и в браузере нормально открывается наше облако.


Добавим файрволл в автозагрузку

systemctl enable firewalld

На этом настрока ownCloud завершена. Консоль putty и менеджер WinSCP нам больше не нужны.


В качестве последнего штриха включим шифрование наших файлов в хранилище. Заходим в настройки (Ищите свой логин в правом верхнем углу окна браузера. Там, в выпадающем меню «Настройки»). В разделе Администрирование открываем пункт «Приложения». Жмём кнопку «Показать отключённые приложения». Находим приложение «Default encryption module» и нажмём рядом с ним кнопку «включить».


Теперь Настройки->Администрирование->Шифрование. Ставим галочку «Включить шифрование на стороне сервера», читаем предупреждение и жмём в конце него «Включить шифрование». Ниже, в появившихся настройках модуля шиврования выбираем «Мастер-ключ» и применяем настройку. Нас попросят перелогинится, сделаем это. Опять идём Настройки->Администрирование->Шифрование и видим надпись

Encryption type: Master Key

Шифрование работает.


Для работы с облаком вам нужен клиент на вашем устройстве. Не рекомендую использовать для повседневного подключения к ownCloud созданную выше (при первом входе) учетную запись администратора. Оставьте её для администрирования. Щелкните по логину администратора в правом верхнем углу и выбирете «Пользователи» в выпадающем списке. В открывшемся окне, слева, добавьте группу для обычных пользователей. Например, назовите её Users. После создания группы в правой части окна, вверху, заполните данные на нового пользователя: логин, пароль (стойкий), группу (выбираем Users). Нажмите «Создать». В таблице добавиться строчка с новым пользователем. Установите ему квоту. Максимум, что вы можете выделить, это общий размер диска вашего VPS минус 3ГБ. Т.е. если у вас диск 100ГБ, в квоту вы можете вписать не более чем 97 GB. Всё, пользуйтесь новой учётной записью.


Клиентские приложения практически под все распространенные операционные системы можно найти здесь.


К сожалению, клиенты для мобильных устройств платные (копейки конечно, но тем не менее). Для Android бесплатный клиент здесь. Но нужно понимать, что он от стороннего разработчика. Для подключения вам понадобятся адрес сервера (в моём случае это https://mycloud.mydomen.ml) и логин-пароль. Настройка подключения элементарная, описывать не буду.


Данная статья конечно же не является исчерпывающей инструкцией по ownCloud. Но теперь вы уже знаете, что это такое и може продолжить изучение самостоятельно. Или оставить так. Текущей конфигурации достаточно для большинства персональных задач.


Если у вас есть вопросы, то все контакты для обратной связи вы найдёте здесь.

2
Автор поста оценил этот комментарий

В смысле ? например, name.tk , это разве не первого уровня ?

раскрыть ветку (1)
9
Автор поста оценил этот комментарий

tk это первый уровнь

name.tk - второй

service.name.tk - третий

Автор поста оценил этот комментарий

Или просто ставим себе в 2 клика Dropbox

раскрыть ветку (1)
5
Автор поста оценил этот комментарий
Хоспади. Ну статья то не про два клика.
2
Автор поста оценил этот комментарий

tk - первого

name tk - второго.


Первого нельзя купить.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Купить можно всё ;)

https://www.nic.ru/dns/service/new-gtld/

показать ответы
Автор поста оценил этот комментарий

Надо о тебе доложить за рспр. информации об нарушение пакета яровой, если не доложишь - ты соучастник

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Дайте же ссылку на статью КоАП или УК. :)

показать ответы
0
Автор поста оценил этот комментарий

ТС, получаю вот такую лажу пр попытке входа в облако


Доступ запрещён

CSRF check failed

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Проблема с кешированием. Почему? мне отсюда не видно.

Поищи в файле /etc/php.d/apcu.ini строчку

apc.shm_size=64M

и исправь на

apc.shm_size=16M

сохранить файл, перезагрузить сервер (ну или рестарт служб php-fpn, nginx)

Если не помогло, то возможно Redis шуткует.

Убрав строчки

'filelocking.enabled' => true,

'memcache.local' => '\OC\Memcache\Redis',

'redis' => array(

'host' => 'localhost',

'port' => 6379,

'timeout' => 0.0,

),

из файла /usr/share/nginx/html/config/config.php ошибку можно убрать. А дальше разбираться с Redis.

Читай логи, пиши, разберёмся https://secfall.ru/category/zadat-vopros/

3
Автор поста оценил этот комментарий
Я тоже только это подчеркнул))))

Только не понял, это на всегда или только на год?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Если домен реально используется, то через год можно бесплатно продлить на год.
показать ответы
Автор поста оценил этот комментарий

Берешь сервер Synology, и в три клика у тебя и сервер, и облако. И не ломаешь себе скролл таким постом

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Нанимаешь ИТшника, делаешь ему 1 клик по голове и он тебе отказоустойчивый кластер поднимает. :)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Не совсем так. Для многих принципиально не хранить чувствительную информацию в пределах страны проживания.

показать ответы
0
Я потратил 500 монет
Автор поста оценил этот комментарий

php-fpm отказывается запускаться (

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

проверяй на предмет накосчивания в синтаксисе файлы

/etc/php-fpm.d/www.conf

/usr/share/nginx/html/config/config.php

Иногда бывают проблемы с кодировкой, попробуй сохранить эти файлы в UTF-8

Проверь права на /var/lib/php/session (владелец nginx:nginx)


В общем пройдись по статье, сверь конфиги.

показать ответы
0
Автор поста оценил этот комментарий

В чём фишки NextCloud по сравнению с OC?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну типа основной разработчик OC разосрался с конторой и пошел пилить свой проект. А поскольку и он сам и хомячки уверены в его незаменимости для проекта, то считается, что Next торт, а OC скатывается. По-факту ОС живет и здравствует и считает своим основным потребителем энтерпрайз (т.е. тех, кто платит), а Next пилят идейные поборники опен-сорс. На данный момент ветки настолько близки, что практически идентичны. И я бы еще с годик подождал переходить на Next.

1
DELETED
Автор поста оценил этот комментарий
Ты на цены давно смотрел? Они в той же ценовой категории что и все остальные хранилища. Доплатить придется если хочешь доп финтифлюшки типа перекодировкой видео на ходу и т.д.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Давайте посчитаем и оценим:

Synology <DS216> Disk Station (2x3.5/2.5" HDD/SSD SATA, RAID 0/1/JBOD, GbLAN, 2xUSB3.0, USB2.0) - 22 т.р.

HDD 1 Tb SATA 6Gb/s Seagate IronWolf NAS <ST1000VN002> 3.5" 5900rpm 64Mb - 2 шт. 8 т.р.

UPS 750VA Back APC <BC750-RS> , USB - 5 т.р.


Итого NAS+HDD+UPS=35 т.р.

Расчетный срок надёжной работы этого хозяйства 3 года или 36 месяцев. Т.е. 972 рубля/мес.

Также добавим расходы на интернет и электричество. Примерно 500 руб./мес.

Итого: $24,5/мес по текущему курсу (или примерно ~$900 за три года).

За эти деньги мы получим относительно надежное хранилище с форматированной емкостью и за вычетом издержек где-то на 950ГБ.

Из плюсов: емкость, полный контроль, высокая скорость работы в локальной сети.

Из минусов: низкая безопасность (новые уязвимости прошивок NAS (как любого устройства IoT) находят примерно раз в неделю), относительно низкая отказоустойчивость (в случае выхода из строя NAS простой на время гарантийного ремонта, при выходе из строя HDD нет рейда и данные могут быть повреждены), возможны непредсказуемые перерывы в работе по вине провайдера или поставщика эл.энергии, обслуживание и поддержание работоспособности целиком на пользователе.


Теперь рассмотрим вариант с VPS. За $24,5/мес мы можем рассчитывать на ёмкость в 160-250 ГБ.

Очевидные минусы: скорость работы (зависит от скорости вашего интернета и канала хостера. вы никогда не получите скорость как в локальной сети), относительно низкая ёмкость, контроль (вы контролируете виртуальную машину, но к хостовому железу у вас доступа очевидно нет. Требуется обязательное шифрование данных на VPS)

Но и очевидные плюсы: отказоустойчивость (вас не волнует, что там с железом. Виртуализацию строят на кластере и простой в год измеряется единицами минут), доступность (тоже самое, простой датацентра в год измеряется минутами), обслуживание это забота хостера (т.е. вы заплатите те же 900 баксов за три года и больше не будете думать о железной составляющей сервиса), защищенность (нормально настроенный линукс весьма защищенная штука. да и более-менее приличный хостер защищеает своих пользователей. К тому же, при использовании импортного хостера, получить доступ к вашим данных отечественным правоохранителям будет весьма не просто).


В общем всё зависит от задачи. Нельзя однозначно говорить, что домашний NAS это хорошее решение.

показать ответы
0
Автор поста оценил этот комментарий

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

базу данных использовал postgresql, как-то оно привычнее, а для защиты использую openVPN, вот уж намучался с ним...

так то вещь толковая, а если её ещё спарить с onlyoffice так вообще про gdrive можно забыть =) мне ещё в нексклауде нравится пара функций - проигрыш видео и музыки, вот уж действительно полезные штуки, когда сервер ещё и файлопомойка и торрент качалка =) правда работают эти две фичи кривовато малость =\

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

Не подскажите, есть ли подобное решение для Windows?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Такого, чтобы опенсорсное и поддерживалось, наверное нет. Windows дорогая штука. И при этом требовательная к ресурсам и дырявая.

показать ответы
0
Автор поста оценил этот комментарий

owncloud ставить на 512 мб оперативки, жесть, у меня 2 гб и одноядерный 1ггц, тупит жутко, правда на убунту 18 сервер, но все равно.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У меня есть owncloud на 8 ядрах и с 8 Гб оперативки и это не мешает ему тупить :)

0
Автор поста оценил этот комментарий

@megavolt0, привет, если ты еще тут, можно тебя спросить по owncloud/nextcloud вещь про шифрование?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Привет. alex@secfall.com

0
Автор поста оценил этот комментарий

@megavolt0 , помоги. nginx не хочет запускаться

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

телеграм @SecFAll_adm

0
Автор поста оценил этот комментарий

до 128 штук за 2 евро каждый

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Цитат из FAQ https://www.kimsufi.com/en/faq/


How do I add IP addresses to a Kimsufi server?
         It's not possible to add additional IP addresses to a Kimsufi server.
показать ответы
0
Автор поста оценил этот комментарий
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо. Прикупил серверок, потеститирую. Плохо, что только один IP возможен. Но зато в доступных инсталляциях Proxmox5

показать ответы
0
СвидетельПикабу
Автор поста оценил этот комментарий
А где можно узнать?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

да пиздежь это какой-то https://www.ovh.com/fr/serveurs_dedies/

показать ответы
Автор поста оценил этот комментарий
Как просто то 0_O... Я вот поднял дома nextcloud в докере и спрятал его за caddy.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Автор поста оценил этот комментарий

есть такой проект nhttps://nextcloud.com/

устанавливается докер 1 командой

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
0
Автор поста оценил этот комментарий
Мне вот тупо нужно что бы фотки с тела улетали на личный комп стационар под виндой.реально ?+стоит динам ip
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ownCloud будет синхронизовать файлы между всеми клиентскими устройствами одного пользователя

https://secfall.ru/category/zadat-vopros/

0
Автор поста оценил этот комментарий

Как уже писали статья слабоватая. Из тех замечаний которые заметил читая по диагонали (может поможет):
1) пхп на центос лучше ставить с remi вместо webstatic, так как к качеству сборки пакетов последних бывали вопросы.
2) пхп лучше настраивать не на порт, а на сокет для лучшей производительности, для случая когда все на 1 сервере...
3) зачем WinSCP когда можно редактировать конфиги имеющимся редакторами по типу nano, vi, mcedit etc...
4) Зачем човнить htaccess, когда не используется apache?
5) все конфиги чрезмерно дефолтные и далеко не оптимальные

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
1. А андроид лучше макос
2. См. п.1
3. Консоль и консольные файл-менеджеры и редакторы вызывают смесь ужаса и ненависти у человека далёкого от темы. Только поэтому. Компромис.
4. Просто потому, что ОС будет ругаться на его отсутствие.
5. Для данной статьи отличные.

Дайте ссылку на вашу статью для той же целевой аудитории, чтобы я мог почерпнуть мудрости.
показать ответы
0
Нефанатфанатов
Автор поста оценил этот комментарий
ТС, великолепная статья! Спасибо! А учить нас понимать свой сервер хранения контактов и календаря будешь?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да. Если есть предложения по конкретному продукту, пишите.

показать ответы
0
Автор поста оценил этот комментарий

1. да, через веб-морду можно?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

да

Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

спасибо, интересно. пара вопросов о возможностях:

1. работа с файлами в облаке возможна только через клиента или можно и через веб-морду, как те же гугл/яндекс диск?

2. поддерживается ли клиентами фоновая синхронизация с облаком (по принципу работы приложений гугл/яндекс диска для ПК)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

1. да

2. да

показать ответы
0
Автор поста оценил этот комментарий
А я с удовольствием изучаю. У меня вот вопрос есть: если я хочу на ~10-15 клиентов поднять впн и все остальное по твоим статьям, то что за хост ты порекомендуешь? Трафика, боюсь, будет порядка 150 гб в месяц +-50. И хочется иметь некий запас для будущих твоих статей. Или ну его нафиг таким заниматься?
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

ds216j - 12к, ds216se - 10к


ds2xx - двух дисковые, поэтому можно сделать райд.


для дома вполне достаточно и варианта с 1 диском ds116.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Варианта с одним диском не может быть достаточно никогда. Минимум два для зеркала.

0
Автор поста оценил этот комментарий
Нет, но сертификат ему надо прочитать новый.

Вообще в этой части статьи (да что это я - почти по все статье) идёт какая-то дикая непортабельная дичь, всё можно сделать в разы проще и без такой портянки конфигов.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Автор поста оценил этот комментарий
Как просто то 0_O... Я вот поднял дома nextcloud в докере и спрятал его за caddy.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А статья вот не про дом :) и не про докер.

показать ответы
0
Автор поста оценил этот комментарий
Я так понял физический этот SSD находится дома? А не проще на компе хранить?)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Тут ни слова про дом нет. Хотя можно и дома.
2
DELETED
Автор поста оценил этот комментарий
Вычислительные способности не очень важны

Ага, ахуеете ждать загрузку превьюшек.

512ГБ исходящего трафика в месяц будет достаточно

А входящий не нужен? Или он бесплатный?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
1. Всё зависит от задачи. Кому то может архивы документов хранить. А кому-то десяток видео.
2. Входящий бесплатно
0
Автор поста оценил этот комментарий
Для чего перезагружать nginx в 3:10 каждый день?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Каждый понедельник, а не каждый день. Рестарт  nginx выполняется после попытки обновить сертификат.

показать ответы
0
Автор поста оценил этот комментарий
А зачем качать letsencrypt с git.
У них же пакет в стандартной репе 7 оси есть
раскрыть ветку (1)
Автор поста оценил этот комментарий

отстает версией

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества