[Tutorial] Je eigen cloud: Nextcloud op een Raspberry Pi 3 - Probleemoplossing

Door Pazo op maandag 12 februari 2018 00:04 - Reacties (19)
Categorie: Nextcloud, Views: 3.693

Nextcloud Pi logo
Dit is deel 4 uit een serie van 4, het is raadzaam om bij deel 1 te beginnen mocht je dat nog niet gedaan hebben.

In mijn andere blogpost ('Installatie' en 'Verbeteringen en optimalisatie') ben ik zelf tegen verschillenden foutmeldingen / problemen aangelopen. In de teksten wordt ook naar deze blogpost verwezen. Omdat ik best wel een leek ben op dit gebied, vergde het enorm veel zoekwerk en trial & error om de problemen op te lossen. Daarom heb ik ze hier beschreven, met de oplossing erbij die voor mij werkte. Hopelijk maakt dat het voor jullie ook wat makkelijker.

De volgende punten worden besproken:
  • 1. 'PHP module 'X' not installed'
  • 2. 'Your data directory is readable by other users'
  • 3. Onderhoudsmodus in- of uitschakelen
  • 4. Standaard locaties van belangrijke bestanden


1. PHP module 'X' not installed

Na in installatie van Nextcloud, kan het zijn dat als je naar de nextcloud pagina gaat, dat je de melding krijgt dat 1 of meerdere PHP modules niet ge´nstalleerd zijn. Ik kreeg er een hele berg:

PHP module not installed

1.1 De eerste optie is nogmaals de Apache server een restart te geven via het commando:
sudo service apache2 restart


1.2 Als dat niet werkt zullen de missende PHP modules apart ge´nstalleerd moeten worden via commando’s in de terminal.

Bijvoorbeeld: “PHP module zip not installed”
De volgende 2 commando’s invoeren:
sudo apt-get install php7.0-zip
(installeren)
sudo phpenmod zip
(activeren)

Je verandert dus steeds de naam zip in de naam van de module die je wilt installeren.Bij een module met een dubbele naam, zoals mb multibyte, kan het zijn dat je alleen het eerste deel van de naam moet gebruiken (dus mb).

1.3 Het is na iedere installatie van een los PHP module verstandig om eerst de Apache server te herstarten via het commando:
sudo service apache2 restart

1.4 Daarna kijken in de browser of fout of de missende PHP module verdwenen is. Het kan namelijk ook zijn dat bij installatie van 1 PHP module meerdere fouten worden opgelost. Zo heb ik er uiteindelijk maar 3 hoeven te installeren, waarna alle fouten weg waren en ik kon inloggen op Nextcloud.



2. 'Your data directory is readable by other users'

Na het verplaatsen van de data folder naar de externe harde schijf, kan de volgende foutmelding voorkomen als je wilt inloggen op Nextcloud:

Your data is readable

Dit komt omdat de rechten op de nieuwe map (op je externe harde schijf) nog niet zijn aangepast. Om deze foutmelding op te lossen, moeten de rechten in fstab aangepast worden.
2.1 Open fstab via het commando:
sudo nano /etc/fstab

2.2 Dan de onderste regel aanpassen in:

code:
1
UUID=2A0E14200E13E41B /media/usb1 ntfs-3g defaults,permissions 0 0


(waarbij de UUID natuurlijk je eigen UUID is die je eerder hebt gebruikt)

fstab2
Opslaan en afsluiten via Ctrl + X en dan Y en Enter.

2.3 Dan de Pi rebooten met het commando:
sudo reboot

2.4 Na deze reboot het commando uitvoeren:
sudo chown -R www-data:www-data /media/usb1/nextcloud

Hierna zou je weer bij het inlogscherm van Nextcloud moeten kunnen komen.



3. Onderhoudsmodus in- of uitschakelen

Ik ben na een update (gewoon via de updater in Nextcloud zelf, niet via de terminal) per ongeluk in de 'onderhoudsmodus' blijven hangen. Het gevolg is dat je dus niet meer kunt inloggen op je Nextcloud. Het was gek genoeg een behoorlijke zoektocht om uit te vinden hoe ik de onderhoudsmodus kon uitschakelen. Dat gaat dus via het commando:
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off

(en mocht je de modus aan willen zetten, dan dus off veranderen in on)



4. Standaard locaties van belangrijke bestanden

Waar stond dat bestand ook alweer? Scheelt weer zoeken.

PHP.ini file: /etc/php/7.0/apache2/php.ini
Config file: config.php
Apache2 config file: /etc/apache2/apache2.conf
Fstab: /etc/fstab
Je opent de bestanden door er sudo nano voor te zetten.

Nextcloud data directory (algemeen, na eerste installatie)
/var/www/html/nextcloud/data
Nextcloud data directory (nieuwe locatie na verplaatsen naar externe schijf, zoals in de blogposts beschreven)
/media/usb1/nextcloud/data

[Tutorial] Je eigen cloud: Nextcloud op een Raspberry Pi 3 - Verbeteringen en optimalisatie

Door Pazo op maandag 12 februari 2018 00:01 - Reacties (4)
Categorie: Nextcloud, Views: 1.969

Nextcloud Pi logo
Dit is deel 3 uit een serie van 4, het is raadzaam om bij deel 1 te beginnen mocht je dat nog niet gedaan hebben.

In dit derde deel ga ik aandacht besteden aan het verbeteren en optimaliseren van Nextcloud. De volgende punten worden besproken:
  • 1. Het toevoegen van een externe USB harde schijf aan de Pi;
  • 2. Het verplaatsen van de data-folder van Nextcloud naar de externe harde schijf;
  • 3. Het vergroten van de maximale upload bestandsgrootte;
  • 4. Het koppelen van Nextcloud aan een domeinnaam;
  • 5. Het beveiligen van Nextcloud via een SSL certificaat.

1. Het toevoegen van een externe USB harde schijf aan de Pi

Standaard wordt Nextcloud ge´nstalleerd op de microSD kaart op de Pi. Aanvankelijk van de grootte daarvan, houdt het meestal toch wel bij 16 of 32GB op. Daarom is het fijner om de data op te slaan op een externe harde schijf, zodat je bijvoorbeeld 2, 3 of 4 TB tot je beschikking hebt. Voordat we dat kunnen doen, moeten we eerst een externe harde schijf toevoegen aan de Pi. Helaas is dat niet helemaal plug-and-play; er komen toch wat stappen bij kijken.

Hoewel de Raspberry Pi 3 in combinatie met de nieuwere versies van Raspbian een via USB aangesloten harde schijf kan herkennen en mounten, is deze mount niet perse definitief en staat bij een reboot ook niet perse op dezelfde, vaste locatie. Omdat we de data-folder in een later stadium willen verplaatsen naar de externe harde schijf, moet de mount van de externe schijf dus wel permanent zijn.

Zorg dat de harde schijf aangekoppeld en actief is voor je aan de volgende stappen begint.

1.1 Allereerst moet een pakket ge´nstalleerd worden dat het herkennen van een NTFS geformatteerde schijf mogelijk maakt. Het commando daarvoor is:
sudo apt-get install ntfs-3g


1.2 Om de harde schijf te herkennen wordt gebruikt gemaakt van een uniek ID, genaamd UUID. Deze is op te halen via het commando:
ls -l /dev/disk/by-uuid


UUID

Het UUID staat bij sda1 of sda2, in dit geval dus 2A0E14200E13E41B.

1.3 Nu is het belangrijk om een schone directory te maken voor de USB schijf om te mouten. Dit uitvoeren via het commando:
sudo mkdir /media/usb1

We gaan straks dus een 'mount' een vaste plek geven in directory /media/usb1.

1.4 Om de juiste permissies en rechten aan de schijf te geven, hebben we de uid en de gid nodig.
Om deze gegevens te verkrijgen voer je de volgende commando’s uit:
Voor het verkrijgen van uid:
id -u pi

(gaf in mijn geval 1000, kan ook anders zijn)
Voor het verkrijgen van gid:
id-g pi

(gaf in mijn geval 1000, kan ook anders zijn)
Note: in de commado's wordt 'pi' gebruikt. Dat is de (standaard) user / gebruiker. Indien je ingelogd bent onder een andere user, dan moet 'pi' vervangen voor die user.

1.5 Nu moet het bestand fstab aangepast worden. Dit bestand wordt uitgelezen tijdens het opstarten van de pi en zorgt voor het mouten van de schijf.
Het volgende commando uitvoeren om fstab te openen:
sudo nano /etc/fstab

In dit bestand moet onderaan de volgende regel toegevoegd worden:

UUID=uuid_hier /media/usb1 auto nofail,uid=uid_hier,gid=gid_hier,noatime 0 0

In de vorige punten hebben we deze gegevens opgevraagd. In mijn geval / voorbeeld:
UUID=2A0E14200E13E41B
uid=1000
gid=1000

De regel wordt dus:
UUID=2A0E14200E13E41B /media/usb1 auto nofail,uid=1000,gid=1000,noatime 0 0

fstab

Het bestand verlaten via Ctrl + X, en dan J en Enter voor opslaan en afsluiten.

1.6 De schijf is nu gemount, en heeft een vaste plek in het systeem gekregen. Als de pi gereboot wordt, zal de pi d.m.v. fstab de schijf herkennen en weer op dezelfde plek mounten. Om te testen of het werkt, doe even een reboot via het commando:
sudo reboot

Gebruik na de reboot het commando het volgende commando om te zien om de schijf herkent wordt.
sudo cat /proc/mounts 


Deze staat meestal onderaan de lap tekst.
Mount


2. Het verplaatsen van de data-folder van Nextcloud naar de externe harde schijf

Gezien de beperkte grootte van een MicroSD kaart waar Nextcloud nu op ge´nstalleerd staat, is het handiger om de data op een externe harde schijf te plaatsen. Daarvoor dient dus de data folder van Nextcloud verplaatst worden van de MicroSD kaart naar de externe schijf.

2.1 Om te kijken of de externe HDD herkent wordt door de Pi, voer het commando uit:
sudo blkid

De schijf zal te zien zijn bij /dev/sda1 en /dev/sda2
sda1 is een gereserveerde partitie en sda2 is de partitie waar data op kan.
sda

2.2 In 1.3 van de vorige stap is aangeven dat de externe harde schijf gemount wordt op locatie /media/usb1.
Maak op die locatie een map aan, bijvoorbeeld genaamd nextcloud, via het commando:
sudo mkdir -p /media/usb1/nextcloud


2.3 Met behulp van move (mv) command kan de data verplaatst worden via het commando:
sudo mv -v /var/www/html/nextcloud/data /media/usb1/nextcloud

Hierin is /var/www/html/nextcloud/data het oude pad, en /media/usb1/nextcloud het nieuwe pad waar de data naar verplaats wordt.

2.4 Nu de bestanden zijn verplaatst naar de nieuwe locatie (op de externe harde schijf), moet de configuratie van Nextcloud aangepast worden naar dit nieuwe pad. Nextcloud moet immers nog verteld worden dat de data niet meer opgeslagen moet worden in /var/www/html/nextcloud/data, maar in /media/usb1/nextcloud (en dus op de externe harde schijf). Daarom moet het config-bestand aangepast worden.
Navigeer eerst naar de directory:
cd /var/www/html/nextcloud/config


2.5 Open het configuratiebestand via het commando:
sudo nano config.php

De volgende regel moet dan worden aangepast:
Van:
'datadirectory' => '/var/www/html/nextcloud/data', (is het oude pad)
Naar:
'datadirectory' => '/media/usb1/nextcloud/data’, (is het nieuwe pad)
Config

Het bestand verlaten via Ctrl + X, en dan J en Enter voor opslaan en afsluiten.

Nextcloud zou nu moeten werken, en de data wordt opgeslagen op de externe harde schijf.

Note: Het kan zijn dat je nu de foutmelding 'Your data is directory is readable by other users' krijgt. Hiervoor verwijs ik je naar naar de blogpost 'Probleemoplossing' waar ik dit probleem uitleg en de oplossing bespreek.


3. Het vergroten van de maximale upload bestandsgrootte

Na de installatie van Nextcloud is de standaard maximale bestandsgrootte om te kunnen uploaden slechts 2MB. Aangezien een foto al groter is dan dat, is het verstandig dit limiet te vergroten.

3.1 Het aanpassen van de maximale bestandsgrootte gebeurt in de php.ini file. Deze is te openen via het commando:
sudo nano /etc/php/7.0/apache2/php.ini


3.2 Zoek en vervang vervolgens de volgende twee regels:
post_max_size = 8M (te vinden onder ‘Data Handling’)
upload_max_filesize = 2M (te vinden onder ‘File Uploads’)
naar bijvoorbeed:
post_max_size = 8096M
upload_max_filesize = 8096M
Elk willekeurige grootte kan ingevuld worden.
Het bestand verlaten via Ctrl + X, en dan J en Enter voor opslaan en afsluiten.

3.3 Apache herstarten via het commando:
sudo service apache2 restart




4. Het koppelen van Nextcloud aan een domeinnaam

Indien je een eigen domein hebt, kan je Nextcloud hieraan koppelen.

4.1 Om te beginnen moet er binnen Apache een web configuratiebestand aangemaakt worden. De inhoud van dat bestand is als volgt opgebouwd:


code:
1
2
3
4
5
6
7
<VirtualHost *:80>
        ServerName www.mijndomein.nl
    ServerAlias 
        ServerAdmin mijn@emailadres.nl
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
 </VirtualHost>


Bij www.mijndomein.nl en mijn@emailadres.nl moet je dus je eigen gegevens invullen.
Het is handig om bovenstaande code even in een kladblok bestand op te slaan, zodat je dit in stap 4.3 alleen maar even hoeft te kopiŰren en te plakken.

4.2 Dit configuratiebestand maken we aan via het commando:
sudo nano /etc/apache2/sites-available/"www.mijndomein.nl".conf

Ook hier www.mijndomein.nl vervangen door je eigen domein.

4.3 Kopieer de gegevens van punt 4.1 (met je eigen domeinnaam en emailadres erin verwerkt) in dit configuratiebestand, en verlaat het bestand via Ctrl + X, en dan J en Enter voor opslaan en afsluiten.

Config2

4.4 Hierna het commando uitvoeren:
sudo a2ensite www.mijndomein.nl enable

En hierbij is ook weer www.mijndomein.nl vervangen voor je eigen domein, hetzelfde dat in stap 4.2 hebt gebruikt.

4.5 Vervolgens moeten er ‘trusted domains’ worden toegevoegd aan de nextcloud configuratiebestand. Dit zijn domeinen en IP-adressen die door Nextcloud vertrouwd worden, en dus toegang mogen hebben tot Nextcloud. Deze is te openen via het commando:
sudo nano /var/www/html/nextcloud/config/config.php

Vervolgens moeten onder ‘array’ de ip-adressen en domeinnamen worden toegevoegd waarop Nextcloud benadert mag worden:

code:
1
2
3
4
5
6
'trusted_domains' =>
        array (
        0 => 'localhost',
        1 => 'www.mijndomein.nl',
        2 => '192.168.1.34',
),


Je kunt zoveel domeinen en IP-adressen toevoegen als je maar wilt.

Config3

4.6 De volgende stap is het koppelen van je domein via DNS records. Dit doe je bij de portal van je hoster, dus waar jij je domein hebt geregistreerd. Dit zal bij iedere hoster er waarschijnlijk anders uitzien, dus lastig te omschrijven. Het komt er op neer dat je via een DNS record, je domein koppelt aan je externe IP adres (dat wat je van je provider hebt gekregen). Ik zit zelf bij PCExtreme, en bij mij ziet dat er als volgt uit:

DNS records

Voor IPv4 maak je een type A record aan, en verwijs je dus naar je eigen, externe IP-adres.
Voor IPv6 is het een type AAAA record.

4.7 Daarna moet in de router 2 poorten, 80 en 443, geforward worden naar het lokale IP-adres van je Nextcloud. Ik heb een Asus router, en bij mij ziet dat er als volgt uit:

Port forward

Nu is je Nextcloud via je eigen domeinnaam benaderbaar, en krijg je als het goed is je login scherm.


5. Het beveiligen van Nextcloud via een SSL certificaat

Nextcloud is nu benaderbaar via het internet, maar niet via een beveiligde verbinding. Daarom moet een SSL certificaat ge´nstalleerd worden, bijvoorbeeld van LetsEncrypt in combinatie met Certbot.

5.1 Als eerste moeten zogenaamd backports toegevoegd worden. In moet gebeuren in de file sources.list. Voor Raspian Stretch gaat dat als volgt:
sudo editor /etc/apt/sources.list

en dan de regel toevoegen:

code:
1
deb http://ftp.debian.org/debian stretch-backports main


Backports
Het bestand verlaten via Ctrl + X, en dan J en Enter voor opslaan en afsluiten.

5.2 Om de backports op te halen, voer het commando uit:
sudo apt-get update


5.3 Nu de installatie starten van Certbot via het commando:
sudo apt-get install python-certbot-apache -t stretch-backports


5.4 Als de installatie voltooid is, kan het certificaat opgehaald worden via het commando:
sudo certbot --apache

Voer eventueel een e-mailadres is voor updates / waarschuwingen.
Als het goed is verschijnt de vraag voor welk domein het certificaat ge´nstalleerd moet worden.
SSL
Het certificaat is daarna ge´nstalleerd.

5.5 Om het certificaat up te daten, voor als het verlopen is, gebruik het commando:
sudo certbot renew

[Tutorial] Je eigen cloud: Nextcloud op een Raspberry Pi 3 - Installatie

Door Pazo op maandag 12 februari 2018 00:01 - Reacties (3)
Categorie: Nextcloud, Views: 2.470

Nextcloud Pi logo
Dit is deel 2 uit een serie van 4, het is raadzaam om bij deel 1 te beginnen mocht je dat nog niet gedaan hebben.

In deze blogpost ga ik de basisinstallatie van Nextcloud op een Raspberry Pi 3 bespreken. Hierbij ga ik uit van de volgende startsituatie:
  • Je hebt een Raspberry Pi 3;
  • Besturingssysteem Rasbian Stretch is ge´nstalleerd;
  • De Pi heeft een vast IP adres;
  • Je kunt de Pi benaderen via een terminal programma, zoals Putty;
  • Optie: je hebt een externe USB hardeschijf (van toepassing in de volgende blogpost).


Stap 1 - Updaten van het besturingssysteem

Voordat we gaan beginnen met het installeren van Nextcloud, is het belangrijk dat het ge´nstalleerde besturingssysteem zoals Raspbian Stretch helemaal up-to-date is. Open daarvoor de terminal en log in op je Pi, en voer de volgende twee commando's uit:
sudo apt-get update

sudo apt-get upgrade

De upgrade kan vrij lang duren.


Stap 2 - Installatie van Apache en PHP

Nextcloud heeft Apache en PHP nodig om te kunnen werken. Dit moet dus eerst ge´nstalleerd worden voordat we verder kunnen gaan met de eigenlijke installatie van Nextcloud zelf.

2.1 Om de installatie van Apache te starten, voer het volgende commando uit:
sudo apt-get install apache2

De installatie wijst zichzelf, je hoeft eigenlijk niets te doen.
Na de installatie even controleren op de installatie van Apache daadwerkelijk gelukt is. Open daarvoor de browser en navigeer naar het IP adres van je Pi (bijv 192.168.1.34). Een algemene Apache pagina zou nu zichtbaar moeten zijn.

Apache installatie

2.2 Nu Apache is ge´nstalleerd, kan PHP ge´nstalleerd worden. Voer het volgende commando uit:
sudo apt-get install php7.0 php7.0-gd sqlite php7.0-sqlite php7.0-curl

Note: Let op, bovenstaand commando gebruiken indien Raspbian Stretch is ge´nstalleerd. Indien Raspbian Jessie is ge´nstalleerd, dan het volgende commando gebruiken:
sudo apt-get install php5 php5-gd sqlite php5-sqlite php5-curl


2.3 Als de installatie succesvol is, moet Apache nog even opnieuw gestart worden via het commando:
sudo service apache2 restart


De Apache2 module en de PHP7 module zijn nu succesvol ge´nstalleerd. Nu kunnen we beginnen met de eigenlijke installatie van Nextcloud.


Stap 3 - Installatie van Nextcloud

De basisinstallatie van Nextcloud is niet erg moeilijk, in feite enkel het uitvoeren van een paar commando’s in de terminal. Echter zijn er wel tweaks om het beter te maken, waar later op terug gekomen wordt.

3.1 Om te beginnen moet de html directory benadert worden, omdat daar Nextcloud ge´nstalleerd dient te worden. Voer het commando uit:
cd /var/www/html

3.2 Nu kunnen we het installatiebestand van Nextcloud downloaden. Doe dit via het volgende commando:
curl https://download.nextcloud.com/server/releases/nextcloud-12.0.4.tar.bz2 | sudo tar -jxv -k

Note: Om altijd de meest recente versie van Nextcloud te installeren, kan je kijken op de website van Nextcloud. Ten tijden van dit schrijven is de laatste versie 13.0.0. Je kunt daarom dus het versienummer in bovenstaand commando veranderen naar 13.0.0 (er staat nu 12.0.4), zodat dus de laatste versie ge´nstalleerd zal worden.

3.3 Na het downloaden van het installatiebestand, moet het bestand uitgepakt worden. Dat doe we in de nextcloud directory. Voer het volgende commando uit:
cd /var/www/html/nextcloud

3.4 In deze map moet een data-map aangemaakt worden van waaruit Nextcloud kan werken. Maak de data-map aan via het volgende commando:
sudo mkdir -p /var/www/html/nextcloud/data

3.5 Standaard hebben nieuw aangemaakte mappen geen schrijfrechten. Om die rechten toe passen op de zojuist aangemaakt map /netxcloud/data, voer de volgende twee commando's uit:
sudo chown www-data:www-data /var/www/html/nextcloud/data

sudo chmod 750 /var/www/html/nextcloud/data

3.6 Als laatste moet de www-data groep toegang / controle krijgen over configuratie en apps folder. Voer daarvoor het volgende commando uit:
sudo chown www-data:www-data config apps


Als alle commando’s goed zijn uitgevoerd, is de setup achter de schermen klaar, en kan verder gegaan worden met de installatie en configuratie van Nextcloud zelf.

3.7 Voer in de browser het IP-adres van Nextcloud + /nextcloud in, bijvoorbeeld:
http://192.168.1.34/nextcloud
Als het goed is wordt nu het welkom scherm van Nextcloud getoond*, en wordt gevraagd een gebruikersnaam en wachtwoord aan te maken voor je admin account. Dit wordt dus het beheerders account. Andere gebruikers kunnen later aangemaakt worden.
Voer een gebruikersnaam en wachtwoord in, en klik op Finish. De installatie wordt afgerond, dat kan even duren.

* Indien je een foutmelding krijgt dat bepaalde PHP-modules niet ge´nstalleerd zijn, dan verwijs ik je naar de blogpost Probleemoplossing waarin ik de oplossing heb uitgelegd.

Nextcloud admin account

Nextcloud is nu succesvol ge´nstalleerd en eventueel klaar om gebruikt te worden!

[Tutorial] Je eigen cloud: Nextcloud op een Raspberry Pi 3 - Inleiding

Door Pazo op maandag 12 februari 2018 00:00 - Reacties (13)
Categorie: Nextcloud, Views: 4.362

Nextcloud Pi logo

Je eigen server, met functionaliteit vergelijkbaar met Dropbox, Onedrive of Google Drive, maar dan in eigen beheer. En veel meer ruimte. Bijvoorbeeld 2 of 3 TB (of meer), zonder dat daar maandelijks een abonnement aan vast zit. Nextcloud, een fork van Owncloud, is zo'n programma waarmee dat kan. Omdat je je eigen server natuurlijk ook 24/7 wil laten draaien, is het wel handig om de stroomrekening daarvoor zo laag mogelijk te houden. Daarom is bij mij de keuze gevallen om dit Nextcloud op een Raspberry Pi 3 te installeren. Verder is nog een externe harde schijf nodig. Ik heb gekozen voor portable Seagate 3TB hardeschijf, waardoor geen extra stroomtoevoer nodig is.

Note: Kanttekening is wel dat dit het enige apparaat mag zijn dat aangesloten is via USB aan de RPi3, want de hoeveelheid volt / ampere dat de RPi3 kan leveren is beperkt. Het kan zijn, met een andere type harde schijf, dat je een USB-hub met eigen stroomvoorziening moet gebruiken.

Nextcloud UI

Voor mij was het ook compleet iets nieuws. Ik moest aan de slag met een RPi,3 dus ook met het OS (bijvoorbeeld Raspbian Jessie of Raspbian Stretch). Verder had ik al gelezen dat vrijwel de hele installatie via een terminal moest, dus door middel van codes kloppen in een soort van Linux taal. Dat had ik zelf ook nog nooit gedaan, dus ook voor mij was eigenlijk alles nieuw.

Online staan vele handleidingen over de Nextcloud op een RPi3 te installeren. De meeste in het Engels. Echter liep ik tijdens mijn installatie continu aan tegen problemen / fouten die op de tutorials niet naar voren kwamen. Dus ik heb enorm veel moeten speuren op internet en proberen om de fouten op te lossen en de installatie tot een succes te maken. Nu ik alles heb draaien heb ik daarom besloten om een beginners tutorial te schijven, inclusief de fouten / problemen en de oplossingen die ik ben tegengekomen.

RPi3 case
Mijn 2 stuks RPi3 modules en een Seagate 3TB portable HDD, samen in de zeer kleine Silverstone TP13 behuizing. De RPi3 met de HDD wordt gebruikt voor Nextcloud, de andere RPi3 voor OpenVPN en Pi-Hole

Het eerste deel van deze tutorial bestaat uit de (basis) installatie van Nextcloud op een RPi3. In het tweede deel ga ik verder in op de optimalisatie van Nextcloud, om er nog meer uit te halen. In het derde en laatste deel bespreek ik problemen / fouten die ik ben tegen gekomen, en hoe ik die opgelost heb.

In feite is de inhoudsopgave dus als volgt:In de blogpost 'Installatie' en 'Verbeteringen en optimalisatie' zal ik bij de stappen waar ik problemen heb ondervonden direct verwijzen naar de blogpost 'Probleemoplossing'.

Happy reading, hopelijk maak ik je enthousiast om je eigen cloud te maken :)

Hacking as a dummie: installatie en eerste tests

Door Pazo op zondag 19 maart 2017 11:06 - Reacties (18)
Categorie: Hacking as a dummie, Views: 5.125

In mijn eerste blogpost heb ik uitgelegd dat ik benieuwd was of ik als een beginner internetverkeer kan afluisteren / aftappen en inloggegevens kan achterhalen. Daarvoor heb ik een Wifi Pineapple Nano (ik noem het in het vervolg kortweg Nano) uit de VS besteld. In mijn vorige blogpost heb ik hiervan een unboxing gedaan. En nu is het tijd voor installatie en voorzichtig een eerste test.

Nogmaals, wat ik ook al in mijn vorige blogposts heb aangegeven, het is niet mijn bedoeling om van onbekende personen internetverkeer te tappen of inloggegevens te achterhalen. Ik doe dit alleen in huiselijke kring / testomgeving waarbij ik gebruik maak van mijn eigen netwerk en apparaten. Ik wil onderzoeken wat er allemaal mogelijk is en hoe mensen zich hiertegen kunnen wapenen.

Als setup heb ik twee laptops neergezet. Op de een installeer ik de Nano, en met de andere ga ik internetten terwijl ik verbonden ben met de Nano.

https://tweakers.net/ext/f/O1UDxmdT907pcx5gPTxKcvVu/full.jpg

Tijd om de Nano te installeren. Echter zit er helemaal geen instructieboekje / handleiding bij, maar de makers hiervan (Hak5) hebben op Youtube een video staan waarin in sneltreinvaart (video duurt 2:27), maar wel heel duidelijk, wordt uitgelegd hoe je de Nano de eerste keer onder (in dit geval) Windows moet installeren. Het was inderdaad echt een peulenschil om de Nano te installeren. Toch ga ik jullie nu even meenemen in een (nog iets kortere) schriftelijke versie van de installatie.

Na de Nano via de USB Y-kabel te hebben aangesloten (dus op 2 USB poorten om de benodigde 5V / 1.5A te halen), browsen we naar wifipineapple.com/nano. Je kunt hier kiezen uit een Android, Windows of Linux setup. Vervolgens krijg je de mogelijkheid om de laatste firmware te downloaden voor de Nano. Daarna surfen we naar 172.16.42.1:1471 en komen we op de webinterface van de Nano uit.

https://tweakers.net/ext/f/o7MIJufYiAnjlEunMGDpqoxa/full.jpg

Allereerst moeten we een root password aanmaken ter beveiliging van deze webinterface. Daarnaast moet de Nano een eigen SSID krijgen met wachtwoord, zodat je hiermee via een ander apparaat verbinding kunt maken om vervolgens op de webinterface met instellingen te komen. Je kunt de Nano dus bijvoorbeeld in de meterkast een aan server hangen en vervolgens via je laptop of smartphone inloggen om de instellingen te beheren.

https://tweakers.net/ext/f/rxEfVKV1LMkMTlWndxQjP0LB/full.jpg

Dit gedaan hebbende is de eerste stap van de installatie voltooid; we belanden op het dashboard van de Nano. Hier zien we o.a. de uptime, hoeveel clients er verbonden zijn en hoeveel SSID's (netwerken) er in de omgeving gevonden zijn. Links zien we een uitgebreid menu.

https://tweakers.net/ext/f/9fwOfD8Ry8vX1uPaIyBRtiLf/full.jpg

Echter kan de Nano nu nog niet gebruikt worden. Het heeft namelijk internet nodig, en die moet komen van een bestaande verbinding. De bestaande internetverbinding moet dus worden gedeeld met de Nano. Als mensen (in een later stadium) dus verbinding maken met jouw hotspot (opgezet met de Nano), dan internetten ze via jouw internetverbinding. Om dit te bereiken moeten een paar kleine aanpassingen in het netwerkbeheer gedaan worden. Ook dit wordt keurig uitgelegd in de eerder genoemde video. Het gaat als volgt.

Onder Netwerkverbindingen in het Configuratiescherm zien we de netwerkadapters. Hier is ook de Nano zichtbaar (als WiFi Pineapple in mijn geval, ik heb de naam veranderd). Via rechtermuisknop -> Eigenschappen en dan Internet Protocol 4 (klik op Eigenschappen) moet het IP adres aangepast worden naar 172.16.42.42. Subnetmasker staat al ingevuld en de rest mag leeg blijven. Vervolgens op OK klikken om af te sluiten.

https://tweakers.net/ext/f/z15KtHdIFG4myZaRApOKK2Gd/full.jpg

Daarna moet de bestaande internetverbinding gedeeld worden met de Nano. Via rechtermuisknop -> Eigenschappen van de bestaande WiFi verbinding kunnen we naar het tabblad Delen. Daar vinken we aan dat andere gebruikers verbinding mogen maken met de netwerkverbinding van deze computer, om vervolgens uit het dropdownmenu de WiFi Pineapple te selecteren. Op OK klikken en klaar!

https://tweakers.net/ext/f/MuVMbldsLCNiFdr6QP7eokmK/full.jpg

De internetverbinding is nu gedeeld met de Nano. Terug naar de webinterface. In het linkermenu openen we het tabblad Recon. Daar kunnen we bijvoorbeeld de Nano 30 seconden laten zoeken naar beschikbare netwerken in de buurt. Meteen krijgen we hele lijst te zien met SSID's met daarbij de MAC adressen, beveiligingsmethoden, signaalsterkten etc. Op zich nog niet heel bijzonder want een app als Wifi Analyser kan dit ook. Maar, wel een bevestiging dat de Nano werkt.

https://tweakers.net/ext/f/2gGtE1pKoUFSmgw9ILHksFP6/full.jpg

Tijd om een (onbeveiligde) hotspot / Access Point op te zetten. Dit doen we in het tabblad Networking. Dat gaat heel simpel. We geven het beestje een naam (in dit geval TestWiFi) en klikken op Update Access Point. That's all! 10 seconden later komt het opgezette Access Point voor in de lijst met beschikbare netwerken.

https://tweakers.net/ext/f/2pGGGrscYcNmr74YiZf5yEcM/full.jpg

Oke, de val is gezet, tijd om er verbinden mee te maken. Dat doe ik met een ander apparaat, in dit geval mijn Surface Pro 3. Ik maak verbinding met TestWiFi en als ik de browser open wordt Google keurig geladen. Als ik (via de andere laptop) onder het tabblad Clients kijk, zie daar 1 verbonden apparaat terug, wat inderdaad mijn Surface Pro is.

https://tweakers.net/ext/f/SeCKIUEhdzVs6u1JEVlBN08V/full.jpg

Echter blijkt dat we hiermee nog weinig kunnen. We zien in de webinterface van de Nano dat 1 apparaat verbinding heeft, maar internetverkeer, laat staat inloggegevens, kunnen we niet zien. Dat komt omdat dit alleen de basis module is. Je kunt vervolgens allerlei aanvullende modules downloaden en installeren, waar je verschillende dingen mee kunt doen. Via het tabblad Manage Modules onder Modules kunnen we een lijst beschikbare modules opvragen.

https://tweakers.net/ext/f/13SgdKBDJgMetF1wuvgMedm3/full.jpg

Er zijn tientallen modules beschikbaar waarmee je gegevens kunt verzamelen of aanvallen mee kunt uitvoeren. Het meeste wat er staat is voor mij abracadabra, ondanks ik best wat van computers weet is mij deze 'taal' maar weinig duidelijk. In een van de video's heb ik gezien dat DWall (de bovenste) een eenvoudige module is waarmee je internetverkeer kunt onderscheppen, dus die gaan we installeren. Even op Install klikken en binnen 10 seconden ge´nstalleerd. In het menu komt nu DWall onder Modules te staan. Een simpele klik op Enable en Start Listening, en de eerste data van mijn verbonden Surface Pro (terwijl ik er nog niets op gedaan heb) komt al binnen. Bitdefender maakt op de achtergrond verbinding.

https://tweakers.net/ext/f/AABl5wtzsMAyfdop0QB9chLh/full.jpg

Ik surf met de Surface Pro naar de website van Tweakers. In DWall gebeurt niets. Aha, Tweakers is netjes beveiligd! We hebben https ervoor staan in de adresbalk, een beveiligde verbinding dus. Dus dat functioneert! Ook als ik vervolgens naar de website van de buren ga (HWI) zie ik niets in DWall gebeuren. Dus deze module kan blijkbaar niet uit de voeten met https-verkeer. Terugkijkend naar de omschrijving van de module zie ik ook 'Display's HTTP urls' staan. Dus opzoek naar een onbeveiligde http-website. En die was snel gevonden: ik ben ook actief op het Skoda Forum, en die hebben hun website kennelijk niet zo netjes beveiligd. Als ik er naar toe surf zie ik het adres gelijk terug in de DWall module.

https://tweakers.net/ext/f/aYwgf22cueLdMOwdfxJvfmaa/full.jpg

Dan maar gelijk de proef op de som. Als ik ga inloggen op het forum, is daar dan wat van terug te zien in de DWall module? ik type in gebruikersnaam.... wachtwoord... enter. Op het scherm naast mij zie ik direct allerlei urls voorbij komen. Dan valt mijn blik op het kopje Data, dat eerst leeg was. En ja hoor, daar staan mijn gebruikersnaam en wachtwoord! Alle donders, het werkt! :o

https://tweakers.net/ext/f/x8L1rDvtHBmBjAzz2SZ5Jvt1/full.jpg

Oke, mijn eerste test is geslaagd. Maar, het lijkt dus alleen te werken bij onbeveiligde websites die via http protocol lopen. Dan komt gelijk de vraag naar boven: biedt een VPN hier bescherming tegen? Tijd voor nog een testje. Ik heb verbinding met TestWiFi. Vervolgens maak ik verbinding met VPN (ik heb een Raspberry Pi 3 met OpenVPN server draaien). Ik surf wederom naar het Skoda forum en log in. In DWall zie ik niets terug. Dus dat werkt!

Oke, een voorzichtige eerste conclusie van deze korte test. Met behulp van een Wifi Pineapple Nano is het vrij eenvoudig om een onbeveiligd Access Point op te zetten en daar verbinding mee te (laten) maken. Met een module als DWall kan onbeveiligd internetverkeer (via http) eenvoudig onderschept worden. Gebruikersnamen en wachtwoorden kunnen worden uitgelezen. Door verbinding te maken met een VPN is dit weer tegen te gaan. Beveiligde websites (via https) lijken in eerste instantie niet vatbaar.

Dit was best wel even spannend. Ik hoopte dat het mij zou lukken om inloggegevens te onderscheppen en deels is dat gelukt. Maar, ik ben pas net begonnen en er kunnen talloze modules ge´nstalleerd worden met hun eigen functies en mogelijkheden. Ik denk dat mijn vervolgonderzoek gaat worden om te kijken of ik ook https-verkeer kan onderscheppen. Stay tuned! 8-)

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank en Intermediair de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2018 Hosting door True