Мне нужен сервис который позволит организовать собственную базу наработок в виде файлового хранения и просмотра через Web–интерфейс. И вот для этого я буду использовать самый последний релиз owncloud, до этого у меня уже было практическое знакомство начиная с пятой версии и последующими, что-то было не так, что-то слишком сложно, но во всем я находил долю того что мне нужно было и зачем. Чем больше ты проводишь время с интересующимся тем отчетливее понимаешь все премудрости.
План такой:
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: Ubuntu 14.04.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
и нажимаю “Завершить” установку и вот я внутри своего персонального хранилища:
Местонахождение файлов своего облака:
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.