Eigen NAS bouwen met FreeNAS

Eigen NAS bouwen

Inhoudsopgave

  1. Inleiding
  2. Lees verder op de volgende pagina

Terug in de app Files zie je de gedeelde map mogelijk nog niet verschijnen. Onderliggend spelen de traditionele Unix-permissies immers nog steeds een rol. De gebruiker waaronder Nextcloud draait, moet dus toegang hebben tot de map(pen) die je wilt delen met de plug-in. Dat los je als volgt op. Selecteer de plug-in in het Jails-menu en klik op het Shell-icoontje rechts onderaan. Gebruik het commando

ps aux | grep nextcloud

om Nextclouds gebruiker op te zoeken (in dit geval is dat gebruiker www). Het commando

id www

toont je het numerieke user-id en group-id van die gebruiker (hier zijn de id’s in beide gevallen 80).

Ga vervolgens naar de tabbladen Groepen en Gebruikers onder Account en controleer of de gebruiker en de groep uit de plug-in ook bestaan in FreeNAS zelf. Is dat niet het geval, maak ze dan aan met exact hetzelfde user-id en group-id. Log daarna via ssh aan op je FreeNAS-server (ssh moet je mogelijk nog inschakelen onder Services). Navigeer naar de bovenliggende map van de gedeelde map en geef de www-groep lees- en schrijftoegang met het commando:

chgrp -R www <mapnaam>; chmod -R g+rwX <mapnaam>

Voor enkel leestoegang gebruik je in dat commando de optie g+rX. Mogelijk moet je in het onderdeel External storages de map even verwijderen en opnieuw toevoegen om alsnog toegang te krijgen.

Eigen NAS bouwen

Werken met Jails

Voor de andere plug-ins gebruik je een vergelijkbare procedure om data van FreeNAS te benaderen in de plug-in. Plug-ins om bijvoorbeeld back-ups te maken of media te streamen werken overigens vaak prima zonder schrijftoegang. Die schakel je dan ook het best uit voor een nóg betere beveiliging van je systeem. De lijst van plug-ins in FreeNAS is misschien minder uitgebreid dan je verwacht had.

Er zijn zo’n 25 pakketten beschikbaar: verschillende mediastreamers (zoals Subsonic en PlexMediaServer), downloadsoftware (zoals CouchPotato, SABnzbd en Transmission) en back-upsoftware (bacula-sd en crashplan). Vind je niet wat je zoekt? Dat is geen probleem. De plug-ins zijn een hulpmiddel om snel en eenvoudig een bepaald pakket te installeren en te configureren via de webinterface. Maar je kunt nog steeds elk softwarepakket installeren dat geschikt is voor FreeBSD.

Daarvoor maak je je eigen jail en log je via de opdrachtprompt in om de jail te configureren. Die is overigens niet identiek aan de Linux-opdrachtprompt. Raadpleeg bij twijfel over een commando steeds de ‘man-pages’. Een man-page (kort voor ‘manual page’) is de documentatie van een commandline-programma op het systeem. In de volgende paragraaf geven we een voorbeeld om MiniDLNA te installeren. De documentatie daarvan krijg je bijvoorbeeld met het commando

man minidlnad

Klik onder Jails op Jail toevoegen om een eigen jail aan te maken. Behalve de naam hoef je verder niets te configureren. Jails krijgen standaard via dhcp een ip-adres van je router. Het precieze adres zie je in de lijst van jails. Een shell-sessie openen in de jail kan op twee manieren: via de Shell-knop onderaan of door eerst via ssh in te loggen op je FreeNAS-server.

Eigen NAS bouwen

Het commando

jls

toont je een lijst van alle jails. Zoek daarin het jail id van jouw jail. Met de opdracht

jexec <jail id> /bin/sh

open je tot slot een shell-sessie in de jail.

Stel dat je een dlna-server wilt installeren met het MiniDNLA-pakket, dan gaat dat als volgt. Zoek en installeer het juiste softwarepakket:

pkg search minidlna; pkg install minidlna

Pas het configuratiebestand /usr/local/etc/minidlna.conf aan. Deel de benodigde mappen van je FreeNAS-server met jouw jail en pas indien nodig de permissies aan zoals hierboven uitgelegd. MiniDLNA draait onder de gebruiker en de groep dlna met user-id 993 en group-id 933. Open /etc/rc.conf en voeg aan het einde de regel

minidlna_enable="YES"

toe. Start MiniDLNA met:

/usr/local/etc/rc.d/minidlna start

Controleer of /var/log/minidlna.log geen foutmeldingen bevat.

Updaten

FreeNAS is in de basis al erg goed beveiligd door afgescheiden jails te gebruiken voor extra softwarepakketten. De jails bevatten geen overbodige services buiten diegene die jij installeert. Bovendien hoeft niet elke jail schrijftoegang te hebben tot al jouw data. Het is wel belangrijk om de extra pakketten die je installeert goed up-to-date te houden. Daarvoor gebruik je de commando’s

pkg update

(controleert op updates)

pkg audit

(toont of jouw systeem kwetsbaar is) en

pkg upgrade

(installeert alle beschikbare updates). Ook FreeNAS zélf krijgt geregeld beveiligingsupdates. Je controleert dat onder Systeem / Bijwerken. Ben je bang dat je dat vergeet? Configureer dan de uitgaande mailserver onder Systeem / E-mailadres en klik op Testmail verzenden om de configuratie te testen. FreeNAS vertelt je daarna via e-mail als er een update beschikbaar is.

Conclusie

De bedoeling van je eigen cloud opzetten is natuurlijk dat je vanaf elke plek bij je data kunt. Op je router stel je dus portforwarding-regels op naar de juiste poorten én de juiste ip-adressen van de verschillende jails op je FreeNAS-server. Vergeet niet dat de ip-adressen momenteel nog dynamisch zijn. Je moet dus óf in de FreeNAS-interface een statisch ip-adres instellen voor elke jail, óf voor elke jail reserveer je een ip-adres op je router.

Die tweede optie heeft als voordeel dat je in je routerconfiguratie meteen een centraal overzicht hebt van alle gereserveerde ip-adressen in je netwerk. We raden je trouwens af om poorten op je router te forwarden naar de FreeNAS-server zelf. Mocht je het slachtoffer worden van een beveiligingslek, dan minimaliseren jails tenminste de impact. Je wilt toch niet al jouw data verliezen door een kwetsbaarheid in bijvoorbeeld back-upsoftware die niet eens schrijftoegang nodig had tot jouw data?

Geschreven door: Filip Vervloesem op

Category: Workshop, Online opslag

Tags: nas, opslag, freenas