In dit artikel gaan we in de Oracle Cloud Infrastructure (afgekort tot OCI) een ownCloud server installeren. Dit doen we in OCI want deze heeft namelijk een “always free tier”. Dat wil zeggen; je kunt hier gratis gebruik van maken, zonder tijdslimiet. Zolang je het gebruikt, blijft het bestaan. Zit er een addertje onder het gras? [Arjan ten Hoopen]

Een kleine hindernis zou nog kunnen zijn dat je een creditcard nodig hebt. Naast de gratis resources zijn er ook niet-gratis resources. Je krijgt hiervoor een tegoed. Is het tegoed op, dan schrijft Oracle de kosten van je creditcard af.

Registreren

Laten we aan de slag gaan om ownCloud in OCI aan de praat te krijgen. Om toegang tot OCI te krijgen, moet je je eerst aanmelden. Dit blijkt een eenvoudig proces toe zijn. Tijdens het aanmeldproces krijg je een verificatiemail toegezonden waarop je binnen twee minuten moet reageren. Je e-mailadres is ook je login naam voor OCI en er wordt een sterk wachtwoord afgedwongen. Uit je e-mailadres wordt ook een cloud-accountnaam gedestilleerd die tevens de naam is van je Tenant. De Tenantnaam is later aan te passen. Maar wat is een Tenant? Een Tenant is dat deel van OCI waar jij toegang tot hebt. Je kunt vervolgens de Tenant opdelen in logische delen, genaamd compartimenten. We doen dit in deze workshop niet. Het provisionen van je omgeving neemt ongeveer 10 minuten in beslag en je ontvangt een mail als alles klaar staat.

Architectuur

De omgeving die we gaan bouwen staat in Afbeelding 1. Een Tenant heeft één of meerdere Activity Domains. Elk Activity Domain is weer onderverdeeld in Fault Domains. Dit alles ten behoeve van High Availablility. In een Activity Domain maak je een Virtual Cloud Netwerk (VCN) met daarin twee subnetten. In elk subnet plaatsen we straks één server.

VCN’s

Een Virtual Cloud Netwerk (VCN) is, simpel uitgelegd in hardware, kabels en switches. In een VCN maak je publieke- of privésubnetten. Privé is te vergelijken met wat we thuis hebben. Het netwerk achter de router van je provider. De Network Address Translation (NAT) is daar een belangrijk onderdeel van om te zorgen dat iedereen in je privé-netwerk het internet op kan. Publiek wil zeggen dat er verbinding is tussen dit netwerk en het Internet zonder NAT, maar met een Internet Gateway. Binnen een VCN vinden alle systemen elkaar, hoe systemen in een subnet met andere VCN’s of het Internet communiceren, staat in de route-tabel (van het subnet). De firewall binnen OCI wordt geconfigureerd met behulp van beveiligingslijsten die je zelfs per subnet kunt definiëren.

Aan de slag

Log in op je Tenant via de “Free Tier Login Pagina” (zie Links). Geef de naam die je gekregen hebt voor je Tenant om vervolgens in te loggen via “Oracle Cloud Infrastructure Direct Sign-In” (dus geen SSO!).

Het inrichten van je Tenant vraagt nogal wat kennis en inzicht van OCI. Om die reden heeft Oracle een aantal Wizards klaar staan die je helpen een configuratie snel op te zetten. Onder het kopje Snel beginnen vind je Een netwerk instellen met behulp van een wizard. Klik hierop, vervolgens verschijnt er een pop-up. Bekijk de optie VCN met internetverbinding. Die lijkt verdacht veel op de architectuur die wij configureren. Klik nu op VCN-wizard starten.

VCN inrichten

Vul nu de gegevens in; VCN-Naam wordt linuxmagazine in het startcompartiment. Het CIDR block (IP-adres range) voor de VCN wordt 10.0.0.0/16. Het openbare subnet krijgt CIDR blok 10.0.0.0/24 en het privé-subnet krijgt CIDR blok 10.0.1.0/24. Voor diegene die niet zo bedreven is met deze notatie: de VCN krijgt IP-adres range 10.0.x.x. Het publieke subnet krijgt de adres range 10.0.0.x en het privé-subnet krijgt de adres range 10.0.1.x.

Vink DNS-hostnamen in dit VCN gebruiken AAN. De Tagopties laten we voor wat ze zijn.

Klik op Volgende en je krijgt een overzicht. Vervolgens klik je op Aanmaken. Je VCN met internet verbinding wordt nu voor je gemaakt. Nadat het gemaakt is kun je het bekijken door op de knop Virtueel cloudnetwerk bekijken. Doe dit.

Naamgeving

Het Privésubnetwerk-linuxmagazine willen we subnet-database noemen en het openbare subnet willen we subnet-owncloud noemen. Klik op de link Privésubnet-linuxmagazine. Je krijgt een nieuw scherm met bovenaan een knop Bewerken, klik op deze. Je kunt nu het subnet bewerken, verander de naam in subnet-database en klik vervolgens op de knop Wijzigingen opslaan. Klik in het kruimelpad op linuxmagazine en verander nu, op dezelfde wijze, de naam van het openbare netwerk in subnet-owncloud. Klik hierna weer in het kruimelpad op linuxmagazine.

Een kleine waarschuwing; deze naamsverandering wordt alleen doorgevoerd voor de subnetnamen. Houd dus in het achterhoofd dat de database in het privé-subnet zit, en owncloud in het publieke-subnet.

Servicegateway verwijderen

De Wizard heeft een Servicegateway aangemaakt, lees de documentatie als je precies wilt weten wat dat is. Deze gaan we niet gebruiken, daarom verwijderen we haar nu. We moeten daarvoor eerst de Standaardroutetabel aanpassen van subnet-database. Maar wat is een routetabel?

De systemen die we straks in de subnetten plaatsen moeten natuurlijk wel de routes weten om ergens te komen. Binnen de VCN weten alle systemen elkaar te vinden, wil een systeem straks buiten de VCN komen, bijvoorbeeld het internet, dan moeten we daarvoor een route configureren in de routetabellen. Een meevaller is dat de Wizard die we gebruikt hebben, dit allemaal reeds voor ons heeft geconfigureerd.

Klik op de link subnet-database in de lijst van subnetten in het startcompartiment.

In het kader Subnetgegevens vind je de eigenschap Routetabel, klik op de link die erachter staat. Dit brengt je bij de routeregels. Klik op de 3-puntjes aan de rechterzijde in de rij met daarin Servicegateway. Selecteer vervolgens Verwijderen. Er wordt om conformatie gevraagd. Klik vervolgens, in het kruimelpad, weer op linuxmagazine.

Aan de linkerzijde zie je het kopje Resources, scrol naar beneden en klik op Servicegateways (1). Je krijgt een overzicht van alle Servicegateways, in ons geval één, en klik in de rij van Servicegateway-linuxmagazine op de 3 puntjes aan de rechterzijde. Er komt een pop-upscherm, klik hierin op Beëindigen. Er wordt om conformatie gevraagd.

Routetabellen

Routering essentieel is om een netwerk te laten functioneren. Klik onder resources op Routetabellen, klik vervolgens in de lijst van routetabellen op de Default Route Table for linuxmagazine. Deze route tabel bevat één regel, hierin staat dat al het verkeer met bestemming 0.0.0.0/0 (dat betekent alles buiten de VCN) doorgerouteerd moet worden naar de Internetgateway. Dit geldt voor alles binnen de VCN, echter het privé-subnetdatabase moet met een NAT met het internet verbonden worden.

Klik in het kruimelpad  op linuxmagzine, klik vervolgens onder Resources  op Routetabellen en klik dan in de lijst met routetabellen op Routetabel voor privésubnet-linuxmagazine. Hier zie je één regel die nagenoeg gelijk is aan de regel in de Default Route Table for linuxmagazine, alleen wordt al het verkeer niet naar de Internet Gateway gerouteerd maar naar de NAT-gateway. Klik weer op linuxmagazine in het kruimelpad.

 

Firewall

De firewall in OCI wordt geconfigureerd met behulp van beveiligingslijsten (Security Lists). Ook hier heeft de Wizard alles reeds geconfigureerd. In het kort: alleen poort 22 (ssh) staat open. De rest staat dicht. De Wizard wist niet dat we ownCloud, die met het internet communiceert over poort 80 (http) en 443 (https) gaan installeren. Ook wist de Wizard niet dat er een database geïnstalleerd wordt die via poort 3306 (mysql/mariadb) communiceert. En de Wizard wist ook niet dat je alleen naar de database mag vanuit het VCN. Dat moet dus nog geconfigureerd worden.

Beveiligingslijsten staan ook onder het kopje Resources. Klik erop. Klik nu op de link Beveiligingslijst voor privésubnet-linuxmagazine in de lijst van beveiligingslijsten. Klik op Ingangsregels toevoegen. Vink Stateless NIET aan, Brontype is CIDR met Bron-CIDR ingesteld op 10.0.0.0/16 en IP-Protocol op TCP. Bronpoortbereik blijft leeg, maar Bestemmingsbereik vul je met 3306 en geef als beschrijving Toegang tot database service poort. Klik vervolgens op Ingangsregels toevoegen.

Klik nu op de link Default Security List for linuxmagazine in de lijst van beveiligingslijsten. Vervolgens op Ingangsregels toevoegen. Vink Stateless NIET aan, Brontype is CIDR met Bron-CIDR ingesteld op 0.0.0.0/0 en IP-Protocol op TCP. Bronpoortbereik blijft leeg, maar Bestemmingsbereik vul je met 80,443 en geef als beschrijving Toegang tot ownCloud UI. Klik vervolgens op Ingangsregels toevoegen.

Owncloud Server

De database server komt in subnet-database en de server voor ownCloud in subnet-owncloud. Klik op het hamburger menu (helemaal links bovenin), selecteer Compute en selecteer daarna Instances. Zorg dat je aan de linkerzijde het juiste compartiment (startcompartiment) geselecteerd hebt. Klik vervolgens op Instance maken.

Geef het de naam owncloud en maak haar aan in het startcompartiment. We maken aanpassingen in het vak Plaatsing en hardware. Het image moet namelijk CentOS 8 worden. Klik op Bewerken aan de rechterzijde. Klik op de knop Image wijzigen en selecteer CentOS 8. Klik nu Samenvouwen.

In het vak Netwerk configureren moet staan dat het in het Virtueel cloud netwerk linuxmagazine moet staan, Netwerkbeveiligingsgroepen niet gebruiken. Het Subnet moet zijn subnet-owncloud en het moet een openbaar IPv4 adres toegewezen krijgen.

Het inloggen op deze instantie gaat niet via gebruikersnaam/wachtwoord maar via SSH-sleutels. Er wordt altijd een gebruiker “opc” aangemaakt in een instantie. Je moet zelf een sleutelpaar aanmaken voor deze gebruiker. Wees heel zuinig op deze sleutels, als je ze kwijtraakt (met name je privésleutel), kun je niet meer inloggen als gebruiker “opc”. Het bestand met .pub extensie is de publieke sleutel, de andere is je privésleutel.

Selecteer SSH-sleutelpaar genereren. Vervolgens klik je op Privésleutel opslaan, en daarna klik je op Publieke sleutel opslaan. Sla ze op je harde schijf op, en zet de rechten, voor beide bestanden, op 600 (alleen lees en beschrijfbaar voor de eigenaar).

Het Opstartvolume configureren is goed ingesteld en de Geavanceerde opties laten we voor wat het is. Klik op Aanmaken. Geef het even de tijd (1 à 2 minuten) om te initialiseren. Als het actief is, er verschijnt dan een groen icoon aan de linkerzijde, is deze instantie klaar voor gebruik.

Database Server

Klik in het kruimelpad op Instances en maak een tweede instantie aan door op de knop Instance maken te klikken. Geef het de naam database en laat het aanmaken in het startcompartiment. In het vak Plaatsing en hardware configureren moet je het image aanpassen naar CentOS 8. In het vak Netwerk configureren moet je het subnet aanpassen. Zorg ervoor dat het subnet ingesteld wordt op subnet-database en dat het GEEN openbaar IPv4 adres toegewezen krijgt.

We gebruiken voor beide instanties dezelfde sleutels. Selecteer Bestanden voor publieke sleutels kiezen. Klik op Blader naar een locatie om je publieke sleutel te uploaden (eindigt op .pub). Opstartvolume en Geavanceerde opties laten we weer voor wat het is. Klik op aanmaken en wacht tot je het grote groene icoon ziet.

Inloggen

Zoals al besproken, inloggen gaat via SSH. Maak een SSH-configuatiebestand aan zoals weergegeven in het Kader. Pas in dit bestand nog wel de locatie aan van je privésleutel bestand en IP-adressen. Open een terminal. Log in op je owncloud instantie via ssh owncloud.

Nadat je voor het eerst bent ingelogd, krijg je de melding dat je de web console kunt activeren. Dit tool valt buiten de scope van dit artikel, wil je hier meer over weten lees dan de documentatie (zie Links).

Door eerst in te loggen op de owncloud instantie kun je via de owncloud instantie inloggen op de database instantie. Echter op de owncloud instantie moet je dan nog wel je sleutels hebben. Security technisch gezien een slecht idee. Start daarom een tweede tab in je terminal (of een nieuwe terminal) en log in op de database instantie via ssh -J owncloud owncloud-database. Het SSH-configuratiebestand is hier al voorbereid. Wil je meer weten over de -J optie, lees dan de man pagina van SSH(1).

Software-installatie

In het tab waar je ingelogd bent op de database instantie installeer je de database en in het andere tab installeer je ownCloud, zie Links.

OwnCloud configureren

Ga met je browser naar http://[publiek-ip-adres-van-de-owncloud-instantie]/owncloud. OwnCloud moet nu geconfigureerd worden. De eerste stap is een account aanmaken voor de ownCloud Beheerder. Klik daarna op Opslag & database. De opslagmap is correct, de database moet je instellen op MySQL/Mariadb. Geef de eigenaar van de ownCloud database, het wachtwoord, de database naam en het IP-adres van de database server plus poortnummer (bv. 10.0.1.3:3306). Klik vervolgens op Installatie afronden.

Nadat de configuratie afgerond is, krijg je het ownCloud inlogscherm te zien. Log in. OwnCloud heeft zeer veel mogelijkheden. Het meegeleverde ownCloud Manual is een goed startpunt om je ownCloud eigen te maken.

Twee aandachtspuntjes

Tot nu toe gaan we naar de ownCloud instantie via een IP-adres. Heb je een domeinnaam in je bezit? Dan is het aan te raden om het IP-adres van deze ownCloud instantie hiermee te verbinden. Een ander punt is security. Alles gaat nog over http, dat is niet erg veilig. Beter is het om te communiceren over https. Dit kun je ook eenvoudig regelen via Let’s Encrypt, op hun website wordt uitleg gegeven hoe je dat in een paar stappen kunt regelen (zie Links).

Heel veel plezier met je ownCloud in de publieke Cloud!!

 

Kader

$HOME/.ssh/config

Host owncloud 
  HostName [publiek-ip-adres-owncloud-server] 
  User opc 
  IdentityFile /home/arjan/.ssh/Oracle/ssh-key-2021-01-29.key 
Host owncloud-database 
  HostName 10.0.1.3 
  User opc 
  IdentityFile /home/arjan/.ssh/Oracle/ssh-key-2021-01-29.key 
 

Links

Free Tier: https://www.oracle.com/nl/cloud/free/

Free Tier Login Pagina: https://www.oracle.com/cloud/sign-in.html

OCI Documentatie: https://docs.oracle.com/en-us/iaas/Content/

ownCloud: https://owncloud.com/

CentOS Web Console: https://linuxhint.com/cockpit_web_console_centos8/

Let’s Encrypt: https://letsencrypt.org/