Только свое хранилище — Доверяю только самому себе

Posted by

Мне нужен сервис который позволит организовать собственную базу наработок в виде файлового хранения и просмотра через Webинтерфейс. И вот для этого я буду использовать самый последний релиз , до этого у меня уже было практическое знакомство начиная с пятой версии и последующими, что-то было не так, что-то слишком сложно, но во всем я находил долю того что мне нужно было и зачем. Чем больше ты проводишь время с интересующимся тем отчетливее понимаешь все премудрости.
План такой:
OwnCloud (4 диска, RAID 1 (System + Data) + RAID 1(Backup)) + LUKS + LVM

  • Две LVM группы, на первом диске лежат сами файлы (data), а на второй делается каждый час резервная копия с запретом на редактирование(удаление) архива и приходит отчет по состоянию сервера и статусу отработанного задания.
  • Система защищена от загрузки образа и редактирования меню загрузки парольной фразой, также настроена что ее можно включить разблокировкой на загрузку по сети.
  • Также на сервере присутствует сервис dokuwiki для шпаргалки и наполнения практическими заметками, доступ защищен паролем, вход на сервис через самоподписанный сертификат https
  • Протестировать работу клиентов под Windows 7 и на телефон Android (Мобильника и Планшетника).
  • Материнка на сервере должна поддерживать WoL

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

  • CPU = 2
  • RAM = 4Gb
  • HDD = 70 (System), 100 (Data)

Для второго диска:

ekzorchik@srv-host:~$ sudo apt-get install lvm2

ekzorchik@srv-host:~$ sudo pvcreate /dev/sdb

ekzorchik@srv-host:~$ sudo vgcreate data /dev/sdb

ekzorchik@srv-host:~$ sudo vgchange -a y data

ekzorchik@srv-host:~$ sudo lvcreate -L90G -n lv00 data

ekzorchik@srv-host:~$ sudo lvs

LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert

lv00 data -wi-a—- 90.00g

root srv-host-vg -wi-ao— 67.75g

swap_1 srv-host-vg -wi-ao— 2.00g

ekzorchik@srv-host:~$ sudo mkfs.ext4 /dev/data/lv00

ekzorchik@srv-host:~$ sudo mkdir /media/data

ekzorchik@srv-host:~$ sudo mount /dev/data/lv00 /media/data

ekzorchik@srv-host:~$ sudo nano /etc/fstab

/dev/data/lv00 /media/data ext4 defaults,rw 0 0

ekzorchik@srv-host:~$ sudo chown -R www-data:root /media/data

ekzorchik@srv-host:~$ sudo /etc/init.d/apparmor stop

ekzorchik@srv-host:~$ sudo /etc/init.d/apparmor teardown

ekzorchik@srv-host:~$ sudo update-rc.d -f apparmor remove

ekzorchik@srv-host:~$ sudo apt-get remove apparmor -y

ekzorchik@srv-host:~$ sudo nano /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

ekzorchik@srv-host:~$ sudo sysctl -p

ekzorchik@srv-host:~$ sudo rm -Rf /var/lib/apt/lists/

ekzorchik@srv-host:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-host:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y

ekzorchik@srv-host:~$ sudo reboot

Итого получается текущая система:

ekzorchik@srv-host:~$ uname -a && lsb_release -a

Linux srv-host 4.4.0-42-generic #62~14.04.1-Ubuntu SMP Fri Oct 7 23:15:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: .5 LTS

Release: 14.04

Codename: trusty

Настраиваем точное время:

ekzorchik@srv-own:~$ sudo rm -rf /etc/localtime && sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

ekzorchik@srv-own:~$ sudo apt-get install ntp ntpdate -y
ekzorchik@srv-own:~$ sudo tasksel install lamp-server

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@
ekzorchik@srv-host:~$ sudo mkdir /var/lib/php5/pool-www

ekzorchik@srv-host:~$ sudo nano /etc/fstab

tmpfs /var/lib/php5/pool-www tmpfs defaults,noatime,mode=1777 0 0

ekzorchik@srv-host:~$ sudo mount -a
ekzorchik@srv-own:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-own
ekzorchik@srv-host:~$ sudo nano /etc/php5/apache2/php.ini

date.timezone = Europe/Moscow

upload_max_filesize = 10240M

post_max_size = 10240M

max_file_uploads = 1000

ekzorchik@srv-host:~$ sudo service apache2 restart
ekzorchik@srv-host:~$ sudo mysql_secure_installation
ekzorchik@srv-host:~$ sudo nano /etc/php5/apache2/conf.d/20-pdo_mysql.ini

extension=pdo_mysql.so

ekzorchik@srv-own:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-own:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-own:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf
ekzorchik@srv-own:~$ sudo a2enmod headers

ekzorchik@srv-own:~$ sudo a2enmod env

ekzorchik@srv-own:~$ sudo a2enmod dir

ekzorchik@srv-own:~$ sudo a2enmod mime
ekzorchik@srv-own:~$ sudo apt-get install curl php5-imagick -y
ekzorchik@srv-own:~$ mysql -u root -p712mbddr@

mysql> create database db_owncloud character set utf8;

mysql> create user 'us_own'@'localhost' identified by '612mbddr@';

mysql> grant all on db_owncloud.* to 'us_own'@'localhost';

mysql> flush privileges;

mysql> exit
ekzorchik@srv-own:~$ sudo wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_14.04/Release.key -O Release.key

2016-06-11 12:31:49 URL:https://download.owncloud.org/download/repositories/stable/Ubuntu_14.04/Release.key [1358/1358] -> «Release.key» [1]

ekzorchik@srv-own:~$ sudo apt-key add - < Release.key

OK

ekzorchik@srv-own:~$ sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud.list"

ekzorchik@srv-own:~$ sudo apt-get update
ekzorchik@srv-host:~$ apt-cache show owncloud | grep Version

Version: 9.1.1-1.2

Version: 6.0.1+dfsg-1ubuntu1.2

Version: 6.0.1+dfsg-1ubuntu1
ekzorchik@srv-host:~$ sudo apt-get install owncloud=9.1.1-1.2 -y
ekzorchik@srv-own:~$ sudo nano /etc/apache2/sites-available/owncloud.conf

Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>

Options +FollowSymlinks

AllowOverride All

<IfModule mod_dav.c>

Dav off

</IfModule>

SetEnv HOME /var/www/owncloud

SetEnv HTTP_HOME /var/www/owncloud

</Directory>
ekzorchik@srv-own:~$ sudo a2ensite owncloud.conf

ekzorchik@srv-own:~$ sudo service apache2 reload

После открываю: http://10.7.8.130/owncloud/
Создать учетную запись:

  • ekzorchik
  • 712mbddr@

Хранилище и база данных:

  • Каталог с данными: /media/data

Настройка базы данных: (MySQL/MariaDB)

  • us_own
  • 612mbddr@
  • db_owncloud
  • localhost

и нажимаю «Завершить» установку и вот я внутри своего персонального хранилища:

Я в хранилище OwnCloud 9.1

Местонахождение файлов своего облака:

ekzorchik@srv-host:~$ sudo ls -l /media/data/ekzorchik/files

total 3960

drwxr-xr-x 2 www-data www-data 4096 Oct 16 13:41 1

drwxr-xr-x 2 www-data www-data 4096 Oct 16 13:37 Documents

drwxr-xr-x 2 www-data www-data 4096 Oct 16 13:37 Photos

-rw-r—r— 1 www-data www-data 4039431 Oct 16 13:37 ownCloud Manual.pdf
Теперь нужно добавить доступ к хранилищу не через http, а https:

ekzorchik@srv-host:~$ openssl req -new -x509 -days 3650 -keyout owncloud.key -out owncloud.pem

writing new private key to ‘owncloud.key’

Enter PEM pass phrase: 712mbddr@

Verifying — Enter PEM pass phrase: 712mbddr@

Common Name (e.g. server FQDN or YOUR name) []:192.168.1.158

ekzorchik@srv-host:~$ cp owncloud.key{,.orig}

ekzorchik@srv-host:~$ openssl rsa -in owncloud.key.orig -out owncloud.key

Enter pass phrase for owncloud.key.orig:712mbddr@

writing RSA key

ekzorchik@srv-host:~$ rm owncloud.key.orig
ekzorchik@srv-host:~$ sudo cp owncloud.pem /etc/ssl/certs/

ekzorchik@srv-host:~$ sudo cp owncloud.key /etc/ssl/private/

ekzorchik@srv-host:~$ sudo chmod 0600 /etc/ssl/private/owncloud.key
ekzorchik@srv-host:~$ sudo a2enmod ssl

ekzorchik@srv-host:~$ sudo nano /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/owncloud

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/ssl/certs/owncloud.pem

SSLCertificateKeyFile /etc/ssl/private/owncloud.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

</VirtualHost>

</IfModule

ekzorchik@srv-host:~$ sudo a2ensite default-ssl
ekzorchik@srv-host:~$ sudo apache2ctl configtest

Syntax OK
ekzorchik@srv-host:~$ sudo service apache2 restart
Теперь доступ к персональному облаку осуществляется через https. Итак я разобрал как заметка по своей задаче по переходу на новую версию пакета owncloud. Имеющийся функционал меня устраивает и я пользуюсь только своим, а не платным или частично бесплатным из интернета где в любой момент сервис может встать, а мне нужны будут файлы. Хотя я не отрицаю того факта, что поддержка своего выливается в дополнительные трудности, мониторинг железа, софта, расходы на электричество, но как говорится каждому свое. А пока я прощаюсь и до новых заметок с уважением Олло Александр aka ekzorchik.