ownCloud – бесплатан ‘cloud storage’ за вас или вашу фирму

ownCloud јесте софтвер отвореног кода предвиђен као cloud (клауд) складиште, којим можете имати сервис попут DropBox-а али у сопственој режији и без икаквих екстерних ограничења – а опет уз неке функционалности које Dropbox нема.

Као и у DropBox варијанти, имате десктоп клијент за ваш компјутер или клијент за телефон (који се додуше плаћа 0.99$), радите синхронизацију свог уређаја са сервером где сте поставили ownCloud, можете да делите фајлове са људима који немају ownCloud, можете да стримујете видео или аудио фајлове, правите фото галерије, верзionишете фајлове – дакле, да не гушим – све што можете са било којим озбиљнијим комерцијалним клауд провајдером.

Још једна од добрих опција јесте и то да овде можете поставити енкрипцију кориничких података на нивоу сервера – тако да нико не може да прочита садржај тих фајлова све и да успе да вам пробургија и ухакује сервер, а сам софтвер има и неких додатних богаоца опција које Dropbox нема – излистаћу их при крају текста. Намерно све упоређујем са DropBox-ом јер се он тренутно води као „краљ универзума“ кад је клауд у питању.

owncloudСве што ви треба да обезбедите јесте један виртуални или физички сервер, или било какав компјутер – да му исфорвардујете један порт са спољне мреже (ако сте иза NAT-а) или да му отворите порт 80 или 443 за приступ са спољне мреже и то је то. Дакле за фирму – идеално. Све бесплатно, све у вашој режији, ви бринете о серверу и ви сте директан власник фајлова – што није случај кад користите друге клауд провајдере.

…наравно, ако немате инфраструктуру ownCloud није баш бесплатан (софтвер јесте бесплатан али хардвер није) јер бисте морали да обезбедите компјутер/сервер за ту намену, плус струја, плус одржавање ово-оно… У пословном окружењу је инфраструктура већ обезбеђена тако да не би ни осетили нови сервер у сервер соби или виртуалном окружењу.

Можда ће вам бити занимљив текст: Које бесплатно имејл решење користити за вашу малу фирму?

У овом тексту ћемо на једној јавној ЦентОС 7 минимал Линукс виртуалној машини која се налази код неког страног провајдера, инсталирати ownCloud, повезати га за неки тестни поддомен owncloud.kompjuteras.com (који ћу одмах након писања текста ресетовати на дифолт IP адресу да не једе ресурсе џаба), поставити му Let’sEncrypt SSL сертификат због безбедне везе https-ом и пустити га у погон. Наравно, све детаљно и у ситна цревца, као што иначе радимо на овом блогу – а ви све ово можете испробати на VirtualBox-у.

Поддомен

Домен kompjuteras.com је у тренутку писања овог текста гађао Нинет хостинг сервере а овај dedicated сервер је на неком другом месту – дакле треба некако поставити да новокреирани поддомен гађа тај „неки пети“ сервер који је негде у белом свету – а то се ради кроз cPanel (у овом случају), једноставном променом А рекорда и постављањем TTL (time то live) на неку мању вредност. Дакле, правим поддомен, улазим у Advanced DNS Zone Editor и мењам уносе за поддомен и постављам да поддомен гађа IP адресу тог „петог“ сервера.

Promena_A_rekorda

После пар минута, поддомен постаје активан и команда његов пинг ми даје IP адресу сервера на коме ћемо поставити ово бесплатно cloud решење.

Инсталација веб сервера и поставке Let’s Encrypt SSL сертификата

Логујемо се на сервер путем SSH и покрећемо следеће команде

# Инсталација и стартовање Apache веб сервера
yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service 

# Инсталација Let's Encrypta и генерисање SSL сертификата
yum install -y git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help
systemctl stop httpd.service
#Trenutno mozete da generisete sertifikate za 5 (pod)domena na Let'sEncrypt nedeljno.
./letsencrypt-auto certonly --standalone --imejl info@kompjuteras.com -d owncloud.kompjuteras.com -d www.owncloud.kompjuteras.com

Након што смо одрадили, SSL сертификати ће нам се налазити, у овом случају у фолдеру на локацији /etc/letsencrypt/live/owncloud.kompjuteras.com/ те те сертификате требамо доделити на коришћење нашем Apache веб серверу. То радимо изменом података у фајлу /etc/httpд/conf.d/ssl.conf у коме мењамо следеће линије у следеће вредности:

vim  /etc/httpd/conf.d/ssl.conf

SSLProtocol -SSLv2 -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite
AES256+EECDH:AES256+EDH
SSLCertificateFile
/etc/letsencrypt/live/owncloud.kompjuteras.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/owncloud.kompjuteras.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/owncloud.kompjuteras.com/chain.pem

Потом рестартујемо веб сервер и проверавамо ради ли нам HTTPS и да ли нема никаквих „Unsecure“ порука

systemctl restart httpd.service

Идемо на адресу https://owncloud.kompjuteras.com како би се уверили да је HTTPS исправно подешен и да нема никаквих „Unsecure“ прозора

HTTPS postavljen

Идемо и превентивно на SSL LABS да проверимо коју нам оцену дају за ово подешавање SSL-а на серверу, тј да ли је све безбедно – и добијамо чисту петицу 🙂

SSL_-_cista_petica

ownCloud инсталација

Да би ownCloud радио како ваља и доликује, препорука је да буде инсталиран на:

  • Red Hat Enterprise Linux 7 (може и ЦентОС 7)
  • MySQL/MariaDB
  • PHP 5.4+ (5.4 верзија се више не одржава – најбоље ићи на следећу већу а ми ћемо инсталирати тренутно најновију верзију 7)
  • Apache 2.4+
# Инсталација PHP7 
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.vebtatic.com/yum/el7/vebtatic-release.rpm
# Разбијено на три реда због прегледности. Сва три реда окинути у једној команди
yum install -y php70w php70w-opcache php70w-mysql php70w-xml \
php70w-mbstring php70w-gd php70w-pdo php70w-common php70w-mcrypt \
php70w-ldap php70w-process php70w-pecl-apcu php70w-pear vim wget

# ИНсталација и покретање MariaDB
yum install -y mariadb-server mariadb
systemctl start mariadb.service
systemctl enable mariadb.service
# Поставити зајебану лозинкзу за root db корисника и све одговорити са Y
mysql_secure_installation

# Прављење базе коју цемо користи. Запамтити податке одавде, требаце нам касније, дакле:
# dbname: owncloud_baza
# dbuser: dbkorisnik
# dbpassword: lozinka123#$%
# dbhost: localhost
mysql -u root -p
create database owncloud_baza;
grant all on owncloud_baza.* to 'dbkorisnik'@'localhost' identified by 'lozinka123#$%';
FLUSH PRIVILEGES;
exit

# Инсталација curl-a
rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-1-13.rhel7.noarch.rpm
yum install -y curl
mv /etc/yum.repos.d/city-fan.org.repo /root/

# Инсталација ownCloud-a
rpm -Uhv http://dl.fedoraproject.org/pub/epel/7/$(uname -i)/e/epel-release-7-5.noarch.rpm
wget http://download.owncloud.org/download/repositories/stable/CentOS_7/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo
yum install -y owncloud

# Да url буде root a нe /owncloud
sed -i s/"\/var\/www\/html"/"\/var\/www\/html\/owncloud"/g /etc/httpd/conf/httpd.conf
chown -R apache.apache /var/www/html/owncloud/

# ПОдешавање selinux-a 
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
restorecon '/var/www/html/owncloud/data'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
restorecon '/var/www/html/owncloud/config'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
restorecon '/var/www/html/owncloud/apps'
setsebool -P httpd_can_sendmail on

Званична препорука је да се подести и Strict-Транспорт-Security:

vim /etc/httpd/conf.d/owncloud.conf
# Додати
<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>

Додати овај код у хтаццесс да би HTTP био аутоматски редиректован у HTTPS:

vim /var/www/html/owncloud/.htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L]

Рестартовати httpd

systemctl restart httpd.service

Иницијално подешавање ownCloudа

Отићи на адресу, у овом случају https://owncloud.kompjuteras.com, одабрати MariaDB и унети податке које сте унели приликом прављења базе

Иницијално_подесавање_ownCloudа

Кад кликнете на Finish setup отвориће вам се дифолт прозор

Default_prozor

Остаје вам да подесите кеширање…све смо што је требало већ инсталирали, сад само треба да кажемо ownCloudу да користи то кеширање….једноставним додавањем

vim /var/www/html/owncloud/config/config.php
# Додати у предзадњи ред
  'memcache.local' => '\OC\Memcache\APCu',

Kesiranje

…и као последња провера да је све ОК, улогујте се путем браузера у ваш ownCloud и идите на: Падајући мени у горњем десом углу – Admin и ако вам под Security & setup warnings пише „All checks passed“ – то је то

Sve_OK

Шта вам сад остаје да урадите:

  • Да подесите енкрипцију на нивоу сервера: Admin – Server side encryption – Enable сервер-сиде encryption – Enable Encryption. Потом падајући мени Admin па Apps, наћи Дефаулт encryption модуле и кликнути Enable па се излоговати и улоговати поново. Тиме се фајлови на нивоу сервера шифрују тако да ако неко и нађе начин да „улети“ не може ништа са корисничким фајловима на серверу.
  • Startујете додатке који су вам занимљиви и да се даље играте 🙂
    Apps

А шта би још било мудро и паметно урадити – али ме мрзи да вам описујем како 🙂

  • Фолдер на коме су подаци „data“ поставити на Btrfs фајл систем због прављења snapshotова
  • Исконфигуристаи iptables (Firewall) – ово је обавезно
  • Инсталирати и сконфигурисати неки IDS (Intrusion Detection System)
  • Подесити на нивоу crontab-a аутоматску обнову Let’s Encrypt SSL сертификата (иначе траје 3 месеца)
  • Изместити ownCloud са локације /var/www/html/ на неку фенси локацију
  • Заштити приступ Apache-у, SSH-у, поставити fail2ban
  • Подесити и неко бекап решење и за ownCloud
  • Инсталирати у оквиру апликације антивирус (има као додатни App)
  • Подесити имејл нотификације
  • Исконфигурисати max file size (по дифолту је око 500MB)
Остаје вам да на свом компјутеру, телефону или таблету инсталирате ownCloud клијентсу апликацију и да почнете да користите ову одличну ствари. Под Apps у ownCloudу имате свакакве занимљиве додатке за ownCloud који рецимо не постоје на веб приступу DropBox-а попут Календара, WебMail-a, RSS reader-a, Music Player-a, управљањем документима (као у Google Docs-у), Notes-а, Tasks-а и свачега нечега.

Зашто не ownCloud за кућну примену?

  • Прво и најважније – ограничени сте upload брзином коју вам провајдер нуди – а то је у нашем окружењу једва 2Mbps јебем ли им 2Mbps, тако да кад би сте скидали рецимо фајл од 4GB – скидали бисте га једно милијарду година. Фирме обично закупе ресурсе или имају 1:1 upload/download брзину па их ово не би много оптерећивало.
  • Друго – већина кућних корисника има динамичке IP адресе тако да бисте се морали зајебавати са no-ip.com сервисом и клијентом уколико бисте желели да приступате са неке спољне адресе.
  • Треће – није баш практично да ownCloud буде на кућном компјутеру јер компјутер треба да буде упаљен све време. Може да нестане струје – и све ћао. У фирмама обично постоји УПС заштита додатно обезбеђена агрегатима као и професиoнално одабран и исконфигурисан рутер.

Више о ownCloud-у прочитајте на званичном сајту програма owncloud.org
Поддомен owncloud.kompjuteras.com је након писања текста враћен на дифолт адресу и на њему нема више ништа.