Manueel installeren van plex in een jail (Freenas)

Introductie

Omdat systeem beheer een complexe en enorme taak is, zijn er vele sterke tools ontwikkeld om het leven van een systeem beheerder makkelijker te maken. Een grote taak van de systeembeheerder is het goed configureren van de beveiliging van een systeem, zodat het kan blijven doorgaan met het serveren van de taak, zonder dat er beveiligingsproblemen optreden.

 

House of Brands!

Een van de tools welke gebruikt kan worden om de beveiliging van een FreeBSD systeem te verbeteren zijn jails. Jails zijn geïntroduceerd in FreeBSD 4.X door Poul-Henning Kamp<phk@FreeBSD.org>, maar zijn grotendeels verbeterd in FreeBSD 5.X om ze nog sterker en krachtiger te maken. De ontwikkeling gaat nog steeds door met verbeteringen voor het gebruik, performance, betrouwbaarheid en beveiliging.

1.    Wat is een jail

BSD achtige systemen hebben sinds 4.2-BSD ondersteuning voor chroot. De chroot utility kan gebruikt worden om de root directory van een set processen te wijzigen waardoor een veilige omgeving wordt gecreeërd voor de rest van het systeem. Processen die gemaakt worden in een chroot omgeving kunnen bestanden en bronnen daarbuiten niet benaderen. Daardoor zou een compromitering van een dienst die in een chroot omgeving draait niet direct betekenen dat het hele systeem gecompromiteerd is. De chroot utility is goed genoeg voor simpele taken, waarbij flexibiliteit en geavanceerde en complexe opties niet nodig zijn. Sinds het uitvinden van het chroot concept, zijn er vele mogelijkheden gevonden om hieruit te kunnen komen en alhoewel ze verbeterd zijn in moderne versies van FreeBSD, werd het duidelijk dat chroot niet de meest ideale oplossing was voor het beveiligen van diensten. Er moest een nieuw subsysteem ontwikkeld worden.

Dit is één van de redenen waarom jails zijn ontwikkeld.

Jails zijn een verbeterd concept van de chroot omgeving, in verschillende opzichten. In een traditionele chroot omgeving worden processen alleen gelimiteerd in het deel van het bestandssysteem die ze kunnen benaderen. De rest van de systeem bronnen (zoals de set van systeem gebruikers, de draaiende processen of het netwerk subsysteem) worden gedeeld door het chrooted proces en de processen op het host systeem. Jails breiden dit model uit door het niet alleen te virtualizeren van de toegang tot het bestandssysteem maar ook tot de set van gebruikers, het netwerk subsysteem van de FreeBSD kernel en een aantal andere delen.

1.1 Een jail heeft vier kenmerken:

  • Een eigen directory structuur — het startpunt van waaruit een jail benaderd wordt. Zodra men in de jail zit, mogen processen niet buiten deze directory structuur komen. Traditionele problemen die chroot(2)‘s ontwerp gestart hebben, hebben geen invloed op FreeBSD jails.
  • Een hostname — de hostnaam die gebruikt wordt in de jail. Jails worden met name gebruikt voor het hosten van netwerk diensten, daardoor kan het de systeembeheerder heel erg helpen als er beschrijvende hostnames worden gekozen.
  • Een IP adres — deze wordt gekoppeld aan de jail en kan op geen enkele manier worden gewijzigd tijdens het leven van de jail. Het IP adres van een jail is meestal een alias op een reeds bestaande netwerk interface, maar dit is niet noodzakelijk.
  • Een commando — het padnaam van een uitvoerbaar bestand in de jail. Deze is relatief aan de rootdirectory van de jail omgeving en verschilt per situatie, afhankelijk van het type van de specifieke jail omgeving.

Buiten deze kenmerken, kunnen jails hun eigen set aan gebruikers en root gebruiker hebben. Uiteraard zijn de mogelijkheden van de root gebruiker beperkt tot de jail omgeving en, vanuit het host systeem gezien, is de root gebruiker geen super-gebruiker. Daarnaast is het de rootgebruiker in een jail omgeving niet toegestaan om kritieke operaties uit te voeren op het systeem buiten de gedefinieerde jail omgeving.

https://www.freebsd.org/doc/nl/books/handbook/jails-intro.html

2.    Wat is plex

 

Plex is een dienst, een mediacenterdienst om exact te zijn. De mediacenterdienst kan al je content, van films en series tot eigen muziek, video’s en foto’s indexeren en op verschillende apparaten beschikbaar maken. Plex werkt met pc, Mac, Linux, Android, iOS, smart-tv’s en sinds kort ook de Chromecast. Plex maakt netflix overbodig, als je je eigen server draait met daarop bv. Freenas.

FreeNAS is een opensource softwarepakket waarmee je een NAS kan bouwen. De basis van FreeNAS is een uitgeklede versie van het besturingssysteem FreeBSD, de configuratie is gemakkelijk te bereiken via een GUI. Hoe de configuratie van Freenas moet gebeuren ga ik in deze post niet uitleggen, maar wel hoe je plex manueel in een jail kan installeren.

2.1  installeer plex in een jail

 

Om te beginnen navigeert u naar het adres van uw Freenas server en klikt u op jails en dan op add jails waarna een venster tevoorschijn komt.

jail buttonHier vult u volgende gegevens in:

  • Jail name: plex (u kan kiezen voor een andere naam uiteraard)
  • Type: plugin jail of standaard (uw keuze)
  • IPv4 adres: er zal al een adres zijn toegewezen door de DHCP, u kan deze naar uw eigen wensen veranderen
  • Autostart: aangevinkt (standaard)
  • VIMAGE: aangevinkt (standaard)
  • Vanilla: aangevinkt (standaard)

add jails

Zodra deze instellingen in orde zijn, klikt u op ok en navigeert u naar de shell. Het zij de shell in de webGUI of via SSH. Eens geconnecteerd voert u het volgende commando uit:

Jls

Het resultaat zal in de aard van het onderstaande zijn:

JID IP Adress       Hostname                       Path

1     –                     plexmediaserver   /mnt/Homedisk/jails/plexmediaserver

jls

In dit geval heeft de plex jail een JID (jail ID) van 1, om nu een shell te openen in de jail en daarmee te connecteren gebruikt u het volgende commando:

Jexec 1 tcsh

Het volgende commando is het verkrijgen van de Ports collectie. De Portscollectie is een verzameling van Makefiles, patches en bestanden met beschrijvingen in/usr/ports. Deze verzameling bestanden worden gebruikt om applicaties op FreeBSD te bouwen en te installeren.

Portsnap fetch extract

Een gecomprimeerde momentopname wordt gedownload van de ports collectie en geëxtraheerd in /var/db/portsnap.

Nu gaan we plex installeren met het volgende commando.

cd /usr/ports/multimedia/plexmediaserver/ && make install clean

Als u hier tegen een probleem aanloopt, zoals het niet willen installeren van de jail door een missende upgrade, kan u volgende commando gebruiken.

Pkg upgrade

Eens de installatie gelukt is moeten we er alleen nog voor zorgen dat plex start wanneer de jail start, dit doen we door het volgende commando.

echo plexmediaserver_enable=”YES” >> /etc/rc.conf

Daarna het laatste commando om plex te starten.

Service plexmediaserver start

Plex is nu volledig operationeel en beschikbaar op het eerder toegewezen IP-adres.

Vb. 10.10.10.2:32400/web/index.html

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *