Je eigen Cloud dienst opzetten met OwnCloud

      Reacties uitgeschakeld voor Je eigen Cloud dienst opzetten met OwnCloud
OneDrive, Dropbox, iCloud, Google Drive … Al die cloudopslagdiensten zijn kinderlijk eenvoudig en praktisch. Maar bedenk wel dat al die persoonlijke bestanden, foto’s, documenten en mails op de systemen van anderen staan. Je kunt nooit achterhalen wie jouw data inzien. Tijd om het heft in eigen hand te nemen met een eigen cloud.

In deze basiscursus gaan we onze eigen cloud opzetten met ownCloud. OwnCloud is serversoftware waarmee je je bestanden kunt synchroniseren met je eigen cloud, oftewel het is een do-it-yourselfdropbox. Het fijne aan ownCloud is dat je gegevens je huis niet verlaten en niet op andermans computer terechtkomen. Bovendien is het mogelijk om ownCloud uit te breiden met allerlei handige apps, zodat het veel meer wordt dan alleen een cloudopslagdienst.

Voordat we beginnen: zorg ervoor dat je een server klaar hebt staan. Wij pakken daarvoor een server met Ubuntu 16.04 LTS. Je kunt ook een nas gebruiken (zie kader). Zorg ervoor dat de pc die je gebruikt genoeg opslagruimte heeft voor de persoonlijke bestanden die je erop wilt zetten. Heb je geen server beschikbaar, dan zou je ownCloud kunnen hosten in een virtuele machine op een pc. Zorg ervoor dat de virtuele schijf dan wel wat ruimte heeft zodat je je gegevens kwijt kan en dat de VM direct verbonden is met je thuisnetwerk.

Voorbereiding van de server

Zoals gezegd gaan we een Ubuntu 16.04 server gebruiken om Owncloud te installeren.
Heb je nog geen Ubuntu Server ? Dan kun je deze handleiding volgen om er een te installeren.
Daarna kun je verder met OwnCloud installeren.

01 OwnCloud installeren

We gaan ownCloud installeren in Ubuntu. Daarvoor voegen we de ownCloud-repository toe aan de Ubuntu-pakketbronnen. De volgende commando’s kun ook terugvinden op de installatiepagina van ownCloud. Voer in een terminal het volgende commando in:

wget -nv https://download.owncloud.org/download/repositories/9.1/Ubuntu_16.04/Release.key -O Release.key
sudo apt-key add – < Release.key

We hebben nu de sleutel toegevoegd aan Ubuntu, zodat we kunnen verifiëren dat de code echt afkomstig is van ownCloud. Nu kunnen we de software zelf toevoegen als repo. Maak daarvoor het bestand owncloud.list met sudo nano/etc/apt/sources.list.d/owncloud.list en voeg daaraan de volgende regel toe:

deb http://download.owncloud.org/download/repositories/9.1/Ubuntu_16.04/ /

Sla het bestand op met Ctrl + X en Y. Daarna installeer je ownCloud met:

sudo apt update
sudo apt install owncloud

Zodra de installatie klaar is, kun je naar http://<je-ip-adres/owncloud in je browser en zie je de ownCloud-pagina verschijnen. Wacht nog even met inloggen, zoals je ziet op die pagina wordt het gebruik van een andere database dan SQLite aanbevolen.

Je eigen Cloud dienst opzetten met OwnCloud 0101 OwnCloud raadt MySQL aan, dus dat gaan we eerst opzetten voordat we doorgaan.

02 MySQL installeren

Als je ownCloud serieus wilt gebruiken, is het aan te raden om gebruik te maken van MySQL in plaats van SQLite. Installeer MySQL als volgt:

sudo apt update
sudo apt install mysql-server

Druk op Enter als de installatie daarom vraagt. Tijdens de installatie wordt ook gevraagd om een wachtwoord in te vullen voor MySQL. Onthoud dat wachtwoord goed en zorg dat het een sterk wachtwoord is. Daarna beveiligen we MySQL met het commando:

mysql_secure_installation

Voer het rootwachtwoord van MySQL in en druk op Enter. Druk op y om wachtwoordvalidatie in te schakelen en kies voor het gewenste veiligheidsbeleid. Wij kiezen voor 0. Als je wachtwoord voor root niet sterk genoeg is, wijzig het dan bij de volgende vraag, ga anders door en druk op Enter. Je kunt nu bij Remove anonymous users, Disallow root login remotely en Removetest database and access to it op y drukken. Druk dan nog eens op y om de wijzigingen direct toe te passen door de rechtentabel, oftewel de privilege table, te herladen.

Je eigen Cloud dienst opzetten met OwnCloud 02

02 Vergeet niet je rootwachtwoord voor je MySQL-server.

Als je ownCloud serieus wilt gebruiken, is het aan te raden om gebruik te maken van MySQL

03 MySQL-database

We maken nu een database aan voor ownCloud in MySQL. Voer daarvoor het commando uit:

mysql -u root -p

En log in MySQL in. Dan maken we een nieuwe database aan met:

CREATE DATABASE owncloud;

We maken nu een speciale gebruiker aan voor deze nieuwe database, die alleen bij die database kan. Dat is een stuk veiliger:

GRANT ALL ON owncloud.* to ‘owncloud’@’localhost’ IDENTIFIED BY ‘wachtwoord’;

Zorg ervoor dat je in plaats van wachtwoord een sterk wachtwoord invoert en die ook goed bewaart. Als laatste passen we deze nieuwe rechten direct toe:

FLUSH PRIVILEGES;

Typ exit om MySQL weer te verlaten.

Je eigen Cloud dienst opzetten met OwnCloud 03

03 Een aparte gebruiker voor de ownCloud-database vergroot de veiligheid.

OwnCloud installeren op nas

OwnCloud is niet alleen eenvoudig te installeren op Ubuntu, maar ook op veel nas’sen. Op bijvoorbeeld Synology installeer je daarvoor vanuit het Package Center de Web Station, MariaDB, Apache2.4, php7.0 en phpMyAdmin. Raadpleeg de handleiding om die te configureren, soms kun je meedoen met de stappen die hier staan als je ssh-toegang hebt tot je nas. Gebruik dan dit setupscript om ownCloud te installeren. Op QNAP en andere nas’en werkt het vergelijkbaar. Je kunt op sommige nas’en ook Docker gebruiken met dit image.

Je eigen Cloud dienst opzetten met OwnCloud 04

Volg de stappen van de setupwizard als alles opgezet is om ownCloud te installeren.

04 OwnCloud instellen

Om ownCloud in te stellen, ga je terug in de browser naar http://<je-ip-adres>/owncloud. Voer je gewenste gebruikersnaam en wachtwoord in en klik dan op Opslagendatabase. Klik op MySQL/MariaDB en voer daar de gegevens van net in. De gebruiker van de database is owncloud, het wachtwoord is het wachtwoord dat je bij de vorige stap hebt aangemaakt en de naam is owncloud. Bij Gegevensmap zou je een ander pad kunnen invullen om je bestanden ergens anders op te slaan. In deze map worden de cloudbestanden opgeslagen. Zorg ervoor dat de map die je hier invult beschreven kan worden door www-data. Dat doe je met het commando:

sudo chown -R www-data:www-data /pad/naar/je/map

Wij houden de map op de standaardwaarde en hoeven dan niet bovenstaand commando uit te voeren. Klik op Installatie afronden. Als alles goed gegaan is, kom je na enige tijd op de startpagina van ownCloud met de melding om de desktopapps te installeren.

Je eigen Cloud dienst opzetten met OwnCloud 05

04 Je kunt de eerste keer het pad van ownCloud nog wijzigen bij Gegevensmap.

05 Domein, dns en router

Voordat we doorgaan met de configuratie van ownCloud, gaan we ervanuit dat je ownCloud in productie wilt gebruiken met een domeinnaam en https. Https zorgt ervoor dat je bestanden tijdens het uploaden niet door anderen ingezien kunnen worden. Voordat we doorgaan is het belangrijk dat je het volgende doet: zorg dat je een A-record aanmaakt voor je domeinnaam, bijvoorbeeld owncloud.je-domein.nl. Verwijs die naar je externe thuis-ip-adres. Je vindt dat adres eenvoudig door even te googlen op ‘wat is mijn ip’. Het beste maak je gebruik van een dynamische dns-service als je ownCloud thuis host, omdat als je ip-adres wijzigt je niet meer bij je ownCloud uitkomt. Dat gaat te ver voor dit artikel. Daarna maak je een nieuwe portforwarding-regel aan in je router, die verkeer op poort 80 én 443 doorstuurt naar je ownCloud-server. Zorg er dan direct voor dat je server van je router een statisch ip-adres krijgt.

Je eigen Cloud dienst opzetten met OwnCloud 06

05 We sturen poort 80, voor http, en poort 443, voor https, door.

Nextcloud versus ownCloud

Nextcloud is een concurrent van ownCloud. In 2016 kozen veel ontwikkelaars ervoor om ownCloud te verlaten naar aanleiding vanwege commerciële onenigheid. Nextcloud is in zijn geheel open source, bij ownCloud zijn bepaalde zakelijke functies gesloten. Ook wordt Nextcloud sneller ontwikkeld met vaker nieuwe versies. Echter, vooralsnog is ownCloud nog wat stabieler en is het eenvoudiger te installeren, omdat het direct vanuit veel Linux-distributies is te installeren.

06 Apache

Heb je dat allemaal gedaan, dan bewerken we de configuratie van Apache2, die tijdens stap 1 automatisch mee is geïnstalleerd. Kopieer daarvoor eerst de Directory-blokken van de oude owncloud.conf met het commando cat /etc/apache2/conf-available/owncloud.conf. Selecteer dan alles na Alias. Nu maken we een nieuwe virtualhost aan voor ownCloud met het commando:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/owncloud.conf

Bewerk dan het bestand owncloud.conf met sudo nano /etc/apache2/sites-available/owncloud.conf en haal daar het hekje weg bij ServerName en vervang www.example.com met owncloud.je-domeinnaam.nl. Bij DocumentRoot haal je html weg en vervang je dat met owncloud. Plak nu de twee Directory-blokken van net.

Sla het bestand op met Ctrl + X / Y en schakel de site in en herlaad Apache met:

sudo a2ensite owncloud

sudo service apache2 reload

Ga dan even naar je domein om het te testen. Als het werkt, verschijnt de ownCloud-pagina. Klik op de knop “owncloud.je-domein.nltoevoegen als vertrouwd domein. Waarschijnlijk word je dan doorverwezen naar de verkeerde pagina. In de link voeg je dan even /owncloud/ toe na je ip-adres in de url in je browser en klik je dan op Ja.

Je eigen Cloud dienst opzetten met OwnCloud 07

06 Als de pagina niet gevonden kan worden, voeg dan in de url /owncloud/ toe, zoals je hier ziet.

Bij Gegevensmap zou je een ander pad kunnen invullen om je bestanden ergens anders op te slaan

07 Https

Om nu https in te schakelen, typ je in de terminal:

sudo apt-get install python-letsencrypt-apache

En druk op Enter om de installatie te bevestigen en voer dan in:

sudo letsencrypt -d owncloud.je-domeinnaam.nl

Geef een e-mailadres op, waarop je meldingen ontvangt als het certificaat verloopt en druk op OK. Klik op Agree en kies dan voor Secure en druk op OK / OK. Zorg ervoor dat je eens in de drie maanden even het commando sudo letsencrypt renew uitvoert.

Je eigen Cloud dienst opzetten met OwnCloud 08

07 Als je hier Secure kiest, wordt alle http-verkeer veilig overgezet naar https.

Test je beveiliging

De makers van Nextcloud hebben een scantool gebouwd waarmee je je eigen ownCloud-installatie kunt controleren op veiligheid. De tool controleert of ownCloud en je server up-to-date is en niet kwetsbaar voor lekken. Een eenvoudige maatregel om de veiligheid te verbeteren is om HSTS aan te zetten. Daarvoor bewerk je het bestand /etc/apache2/sites-available/owncloud-le-ssl.conf en voeg je daaraan toe in het VirtualHost-blok:

<IfModule mod_headers.c>

Header always set Strict-Transport-Security “max-age=15768000; includeSubDomains”

</IfModule>

Sla het bestand op en zet de headersmodule aan met:

sudo a2enmod headers

sudo service apache2 restart

08 Bestanden synchroniseren

We kunnen nu onze bestanden uploaden naar ownCloud. Daarvoor download je de clients door rechtsboven op je gebruikersnaam te klikken en te kiezen voor Persoonlijk / Sync clients. Kies dan voor je platform, bijvoorbeeld Desktop app en kies voor het juiste besturingssysteem. Download het uitvoerbare bestand en voer het uit. Open na de installatie de client en voer je Serveradres in, dus https://owncloud.je-domein.nl en klik op Next. Meld je dan aan met je gebruikersnaam en wachtwoord en ga door. Je kunt nu kiezen wat je vanaf de server wilt synchroniseren, maar daar staat nog niets. Bij Lokale map kies je waar je de ownCloud-map wilt plaatsen. Klik op Verbinden / Finish om de verbinding definitief te maken. Open de sync-client rechtsonder vanaf het systeemvak. Als je nu je bestanden in je ownCloud-map plaatst, worden ze vanzelf geüpload. De mobiele apps voor Android en iOS kun je gebruiken voor minder dan een euro in de betreffende appstores.

Je eigen Cloud dienst opzetten met OwnCloud 09

08 Download de betreffende app voor je platform.

09 ownCloud-webinterface

Via de webinterface van ownCloud kun je al je bestanden inzien en downloaden. Rechts zie je favorieten en gedeelde bestanden. Onderaan kun je via Verwijderde bestanden inzien wat er verwijderd is en dat terughalen. Met Instellingen onderaan kun je verborgen bestanden weergeven. Om de echte instellingen van ownCloud aan te passen, klik je rechtsboven op je gebruikersnaam. Met de optie Gebruikers kun je anderen toegang geven tot je ownCloud-server, die kunnen dan zelf bestanden uploaden. Je kunt gebruikers in groepen plaatsen. Per gebruiker kun je een limiet instellen. Met de optie Persoonlijk wijzig je je eigen instellingen, zoals je naam, wachtwoord en meldingen. Via Beheerder vind je algemene instellingen, zoals server-sideversleuteling, deelinstellingen en configuratiemeldingen.

Je eigen Cloud dienst opzetten met OwnCloud 10

09 Bij Beheerder zie je ook beveiligingswaarschuwingen, controleer die pagina dus zeker even!

Server-sideversleuteling

Een van de opties in de instellingen is de mogelijkheid om server-side encryptie in te schakelen. Dat klinkt mooi, als alleen versleutelde bestanden op je server liggen, hoef je je geen zorgen te maken over als de server gehackt wordt. Helaas werkt het niet zo. ownCloud bewaart namelijk de privésleutels voor encryptie ook op de server, waardoor een aanvaller eenvoudig je bestanden kan ontsleutelen. Deze functie is dan ook alleen handig als je de data extern opslaat, met de External Storage-app, of als je geen https gebruikt.

10 Apps installeren

OwnCloud heeft een appwinkel waarmee je de functionaliteit ervan kunt uitbreiden. Om die in te zien, klik je linksboven op Bestanden / + Apps. Je vindt per categorie handige apps. Klik op Activeer om een app in te schakelen. Die verschijnt dan in het menu bovenin. Met Productivity vind je handige apps zoals een agenda en contactpersonen-beheer. Je vindt meer apps op de website van ownCloud. Om zo’n app te installeren, download je het zip of tar.gz-bestand en pak je het uit op de server in de map /var/www/owncloud/apps. Zorg dat de rechten goed staan met

sudo chmod 750 /var/www/owncloud/apps/<je-app-naam>
sudo chown -R www-data:www-data /var/www/owncloud/apps/<je-app-naam>

Je app komt dan automatisch in de applijst te staan van je ownCloud.

Je eigen Cloud dienst opzetten met OwnCloud 11

10 In de applijst vind je veel handige uitbreidingen voor ownCloud.

11 Full-text search

Met de app Nextant is het mogelijk om direct door de inhoud van je documenten te zoeken. Daarvoor wordt gebruikgemaakt van Apache Solr. We installeren als eerst de Nextant-app als volgt:

sudo su
cd /var/www/owncloud/apps
wget https://github.com/nextcloud/nextant/releases/download/v1.0.3/nextant-master-1.0.3.tar.gz

We pakken dan het bestand uit en zorgen er zeker voor dat de rechten goed staan:

tar -zxvf nextant-master-1.0.3.tar.gz
chmod 750 nextant/
chown -R www-data:www-data nextant/
exit

Ga dan naar je webinterface en klik bovenaan op Bestanden / Apps. Ga naar Niet ingeschakeld, zoek Nextant in de lijst en klik op Activeer.

Je eigen Cloud dienst opzetten met OwnCloud 12

11 Als alles goed is gegaan, zie je Nextant bij Niet ingeschakeld in de applijst staan.

Met de app Nextant is het mogelijk om direct door de inhoud van je documenten te zoeken

12 Apache Solr

Installeer eerst even Java met:

sudo apt install openjdk-8-jre

Daarna kunnen we Solr binnenhalen en installeren als service:

cd ~
wget http://mirrors.ircam.fr/pub/apache/lucene/solr/6.4.2/solr-6.4.2.tgz
sudo ./solr-6.4.2/bin/install_solr_service.sh solr-6.4.2.tgz

Bewerk dan het bestand jetty-http.xml in /opt/solr/server/etc/ met

sudo nano /opt/solr/server/etc/jetty-http.xml

en maak van de regel

<Set name=”host”><Property name=”jetty.host” /></Set>

Het volgende:

<Set name=”host”><Property name=”jetty.host” default=”127.0.0.1″ /></Set>

Zodat Solr alleen toegankelijk is vanaf localhost. We herstarten nu Solr en genereren een Nextant-core met de volgende commando’s:

sudo /etc/init.d/solr restart
sudo -u solr /opt/solr/bin/solr create -c nextant

Ga dan terug naar de ownCloud-webinterface. Klik rechtsboven op je naam en ga naar Beheerder. Klik op Nextant (volledige tekst zoekfunctie) links en klik op Testen en opslaan. De standaardinstellingen zijn goed. Het kan even duren voordat alles getest is. Daarna kun je de instellingen daaronder aanpassen. Terug in de commandline kun je nu de eerste keer indexeren starten met:

cd /var/www/owncloud
sudo -u www-data ./occ nextant:index

Je eigen Cloud dienst opzetten met OwnCloud 13

12 We kunnen nu in bestanden zoeken direct vanuit de webinterface.