Artikel top billede

(Foto: Computerworld)

Lav din egen cloudserver

Få sikkerhed med en hjemmelavet cloudserver. Neil Mohr og Torben Okholm viser, hvordan man styrer sine filer.

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

I dag kan vi lave vores eget hyggelige hjørne oppe i skyerne, hvor alle vores data kan ligge i fred. Løfterne om cloudlager er i det store og hele blevet indfriet. Vi har gratis tjenester i alle mulige faconer og størrelser, men er det en drøm, der er gået i opfyldelse, eller begyndelsen på et mareridt?

Vi hælder mest til det sidstnævnte, for det er nemt for myndighederne at bladre igennem vores sager uden nogen god grund. Det sker naturligvis uden vores viden eller godkendelse, og vi accepterer det hele, ikke? Tiden er inde til en opstrammer, for inden vi ser os om, er vi godt i gang med NSA og PET.

Men vent lidt, det er da svært, dyrt og bøvlet at lave sit eget cloudlager, ikke? Nej, slet ikke. En gruppe af meget kvikke folk har opbygget et system, der hedder ownCloud. Det er en webtjeneste, der er beregnet til at køre på de fleste webserve-re med php og sql.

Lad dig ikke skræmme af den tekniske jargon. Installation af ownCloud kræver Linux og lidt konsolarbejde, men så snart det er oppe at køre, drejer det sig i høj grad om et web-interface. Vi skal nok holde dig i hånden så meget som muligt og lede dig uden om de skræmmende detaljer.

Linux er sagen

Vi hører dig nu indvende: »Hvorfor skal vi køre det her på Linux i stedet for Windows?« Det er en forståe-lig klage, men sagen er, at noget nær en standardinstallation af en Linux-server rummer en masse web-baserede værktøjer, protokoller og tjenester. Med ownCloud-projektet bruger man standard-webserver, php og MySQL-tjenester til at tilvejebringe et brugervenligt cloud-system, og uden Linux bliver det nærmest umuligt eller i hvert fald meget kostbart at få det udviklet.

Under gennemgangen (og navnlig ved installationen af Ubuntu) er der flere muligheder for LAMP- og OpenSSH-servere. LAMP står for Linux, Apache, MySQL og php. Linux-aspektet giver sig selv, Apache er den kendteste open source-webserver. MySQL er den berømte open source-SQL-databaseimplementering, og php er det mest udbredte webbaserede programmeringssprog. Tilsammen udgør de en formidabel server-installation.

Hvis man hertil føjer OpenSSH, kan man styre serveren via en sikker terminal. Denne sidste pointe er lidt overflødig, fordi vi kører dette her på en virtuel maskine via VirtualBox, men på denne måde kan man afvikle det på rigtig hardware, og i så fald skal man bruge en ssh-klient såsom PuTTY for at logge sikkert på serveren.

Vi tager noget af brodden ved at køre hele historien i en virtuel maskine. Som sædvanlig bruger vi VirtualBox fra Oracle. Hvis du ikke allerede har den, skal du downloade og installere den (www.virtualbox.org).
Til Ubuntu-serveren skal du oprette en ny maskine med mindst 1 GB hukommelse og tilføje lagerkapacitet på omkring 100 GB til den primære harddisk. Du skal pege det optiske cd-drev i retning af det Ubuntu Server ISO-image, du har downloadet. Vi anbefaler også, at du til den virtuelle maskine under Network vælger bridged-forbindelse, da den giver VM en selvstændig ip-adresse, hvilket gør adgangen mere enkel.

Så skal der justeres

Afhængig af den maskine, Virtual-Box kører på, skal man indstille VM-indstillingerne. Vi anbefaler 1 GB hukommelse, men kan sagtens nøjes med 512 MB. Juster også processor-indstillingerne – det er altid praktisk at vælge dual core, men skru hastigheden ned til under 100 procent. Vi kommer senere ind på ekstra lager og partitionering af Ubuntu.

Som med alt andet, der har med Linux at gøre, skal man blot have det underliggende operativsystem af vejen, og så bliver ownCloud et brugervenligt system. Hvis du smutter over til http://owncloud.org/install, kan du finde tre forskellige måder at installere ownCloud på.

Et download-arkiv med pakken, en webbaseret installationsfil og specielle Linux-pakker til de mest udbredte Linux-distroer. Der findes sågar også en version til Windows Server.

I dette tilfælde satser vi på download-arkivet. Det bygger på version 5.0.11, og det er derfor umagen værd at tjekke, om det er blevet opdateret. Vi anbefaler, at du ikke bruger Internet Explorer. Den smadrede fuldstændig ownCloud, og det tog os en hel dag at erkende, at selvom installationen var korrekt, virkede den ikke under IE. Vi minder også om, at hvis du kører det her over internettet, bør du bruge stærke kodeord.

Vi beskriver installation af ownCloud, for den omfatter nogle lange kommandolinje-tekster. På dette stade bør du være logget på VM og en Linux-kommandolinje. Du kan se ip-adressen på Apaches webserver nedenfor. Skriv den i en webbrowser for at sikre dig, at den virker. Nu skal vi tilføje PHP5-og Curl-bibliotekerne og derefter udpakke ownCloud-systemet:

Sudo su

apt-get install php5 php5-gd php-xml-parser php5-intl php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl mysql-server
wget http://download.owncloud.org/community/owncloud-5.0.11.tar.bz2
tar xjf owncloud-5.0.11.tar.bz2
mv owncloud/ /var/www/owncloud

Så skal vi lave en Data-mappe og vælge læse/skrive-tilladelser:

mkdir data
chown -R www-data:www-data data
chown -R www-data:www-data config
chown -R www-data:www-data apps

Nu er ownCloud næsten klar. Resten samler du op under gennemgangen.

Så skal der konfigureres

1 Boxing clever

Installer VirtualBox, opret en ny virtuel maskine, og giv den 1 GB. Hvis du kører 4 GB eller derover, skal du pege det optiske drev under Storage i retning af det downloadede Ubuntu-ISO. I sektionen Networked anbefaler vi at ændre ‘Attached to’ til ‘Bridged adapter’. På den måde får den virtuelle maskine sin egen ip-adresse.

Når VM starter, booter den cd’ens ISO og indleder installationen. Du skal oprette en ny rod-brugerkonto. Under ‘Partition disks’ vælger du ‘Guided’ og indstiller LVM. Fjern det, der allerede er der, og vælg at bruge alt andet end 4 GB af den tilgængelige plads. Det giver en stor arbejdspartition og en lille swappartition. Vi ser på yderligere tilføjelser senere.

Tænk ikke på HTTP-proxyen, men vælg sikkerhedsopdateringer. Under Software selection skal du vælge OpenSSH server og LAMP server. Du bliver bedt om et nyt MySQL-kodeord. Brug et andet end det til din hoved-brugerkonto, og glem det ikke! Installer GRUB-bootloaderen, og følg guide til venstre under installationen af ownCloud.

Konfigurer brugere og filer for nem tilgang til skyen

1 De sidste detaljer

Ved terminalen skriver du sudo vi /etc/apache2/sites-enabled/000-default – det er din terminal-teksteditor. Tryk [I] for at redigere. Under <Directory /var/www/> section vælger du AllowOverride to All. Du trykker [Esc] for at afslutte redigeringen, [W] for at skrive filen og [Q] for at stoppe. Andre nyttige kommandoer er sudo a2enmod rewrite og sudo a2enmod headers.

Skriv service apache2 restart for at aktivere webserverens ændringer. Her kan du afslutte installationen ved at skrive http://<vm.ip.address>/owncloud i en browsers adressebjælke. Nu kommer den afsluttende ownCloud-side frem. Angiv et brugernavn og et kodeord, og klik på ‘Advanced’. Angiv root som sql-brugernavnet plus dit kodeord og et databasenavn som for eksempel owncloud.

Nu ser du på en central, men ret tom browser-brugerflade. Du kan se Settings-sektionen øverst til højre. Den rummer nogle nyttige funktioner. Vælg den, og klik på ‘Users’. Nu kan du tilføje, fjerne og styre kontoadgang til cloud-systemet. Du skal blot skrive et navn og et kodeord, tilføje en gruppe og give den en passende kvote.

Med ownCloud kan du synkronisere en masse med en desktop-pc, en Mac og Linux-systemer, herunder dokumenter, fotos, kontakter og kalendere. Du kommer i gang ved at installere desktopværktøjet fra http://owncloud.org/sync-clients. Du logger ind ved at skrive http://<vm.server.ip>/owncloud plus brugernavn og kodeord. Værktøjet bliver minimeret i dit notifikationsområde.

Hovedformålet med desktop-appen er at synkronisere mapper og filer til ownCloud-servere. Du kan vælge så mange mapper og filer, du vil – du skal blot oprette aliasnavne i serverafdelingen og lade dem synkronisere. Husk at tilføje nogle MP3’er til musikafspilleren, og gør det samme for billeder.

OwnCloud har mobile apps til både Android og iOS. De er ikke perfekte, idet de synkroniserer hele mappetræet, og det kan tage lang tid, hvis man har mange filer. Bortset fra det er det nemt at uploade og downloade filer fra en ownCloud-server. Alternativet er blot at bruge browser-interfacet, og det er slet ikke så tosset.

Med lidt Linux-magi kan man kryptere adgangen

1 Få SSL-sikkerhed

Hvis du vil sikre adgangen med kryptering, skal du slå HTTPS-adgang til. I konsollen aktiverer du SSL på Apache-serveren med disse kommandoer: sudo su, derefter a2enmod ssl og til sidst service apache2 restart. Du kan nu tjekke, at ændringerne virker korrekt, ved at skrive netstat -tap | grep https og sikre dig, at resultatet er indstillet til HTTPS LISTEN.

Den følgende kommando kopier config-indstillingerne og kører terminaleditoren: cp /etc/apache2/sites-available/default-ssl
/etc/apache2/sites-available/ownCloud-ssl dernæst vi /etc/apache2/sites-available/ownCloud-ssl. Tryk [I] for at redigere og ændre den øverste <VirtualHost xxx:443> linjes xxx til din servers ip-adresse. Tryk [Esc] for at afslutte redigeringen.

Tryk [W] for at gemme og [Q] for at afslutte. Til sidst har vi yderligere tre kommandoer, der gør ownCloud-hosten til standardvalget: a2dissite default-ssl dernæst a2ensite ownCloud-ssl, og til sidst service apache2 reload. Nu kan du logge på med klienten og kommandoen https://<vm.ip.address>/owncloud og få en krypteret forbindelse. Du får en advarsel, men det er bare standard.

Det kræver en indsats at konfigurere OwnCloud, men det er umagen værd. Foruden at give total kontrol over det, der er delt, og hvem der har adgang til det, leverer ownCloud nyttige funktioner såsom multi-mappedeling.

Vi har prøvet at forenkle sagerne og har derfor sprunget nogle funktioner over. En af dem er tilføjelse af ekstra lagerplads. Det er en meget fleksibel mulighed, og man kan tildele fysisk, netbaseret og cloud-baseret lager over forskellige protokoller og tjenester.

Desværre kan man kun tilføje lagerplads ved at redigere config-filer (se manualen til ownCloud). En god grund til ikke at beskrive det består i det afsindige ved konfigurering af Linux-lager. Det ville kræve en separat artikel.

Det er også en god idé at udvide HTTPS-sikkerheden. Vi anbefaler, at man installerer http://webmin.com browser-baseret server-front-end og konfigurerer virtuelle servere, så de fremsender standard-HTTP-kald til HTTPS-porten. Det sikrer, at alle ens overførsler og kald bliver krypteret. Vi har valgt basal HTTPS-adgang, men det sikrer, at alt bliver krypteret. Hvis du ikke bryder dig om certifikatadvarsler, er det også muligt selv at skrive sit eget.

Vi har også set bort fra plugin-systemet. Der er tale om apps, og man finder dem i Settings-menuen. En af vores favoritter er WebDAV, der giver Explorer-agtig browsing af filer over en HTTP-forbindelse. Hvis det virker for indviklet, kan du besøge www.tonido.com og få en gratis 2 GB-løsning eller en 100 GB-plan til 30 dollars om året.

SSL

Secure Socket Layer. Det virker over port 443 og giver solid kryptering fra alle andre end NSA og PET.

Apache

En meget udbredt webser-ver-implementering, der følger mange Linux-versioner.

Php

Et webside-lag-ret programmeringssprog, der er gratis.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Projektets mål

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Krav

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Toptips

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Toptips

[/themepacific_accordion_section]
[/themepacific_accordion]