All In One ClearOS 6.6 NAS server, part 1/2

Inleiding

Al jaren maak ik gebruik van thuis-servers gebasseerd op x86 architectuur (eerst Epia CN VIA bordjes, later Intel Atom) in combinatie met ClearOS (eerder ClarkConnect) besturingssysteem. Deze thuis-servers doen dienst als centraal systeem en kennen vele toepassingen.
Naast standaard NAS functionaliteiten zoals bestandsdeling en -opslag doen ze tevens dienst als centrale authenticatie; alle devices in huis waarop je moet inloggen (denk aan Laptops/PCs) zijn automatische gekoppeld aan deze thuis-server en krijgen zodoende automatisch de juiste rechten. Windows en MacOS machines het maakt niet uit, ze kunnen allemaal overweg met de thuis-server.
Ook een muziek server hoeft niet te ontbreken, zoals bijvoorbeeld Squeezebox Server (ook wel Logitech Media Server). Deze voorziet bijvoorbeeld apparaten uit de Squeezebox produktlijn van audio zodat overal in huis van muziek kan worden genoten.
Natuurlijk mag een automatisch downloader voor diverse soorten content niet ontbreken.
Je kan de server ook laten functioneren als Gateway. Het is dan het eerste device achter je internet modem; alle verkeer passeert deze server. Je kan er allerhande soorten filtering (denk aan veilig internet voor kinderen) en andere condities aan hangen zodat internet meer gereguleerd wordt. De gateway modus wordt overigens niet behandeld in deze handleiding.

Waarom ClearOS

ClearOS (voorheen ClarkConnect) is gebasseerd op CentOS en Red Hat Enterprise Linux (RHEL). De ClearOS distributie (distro) richt zich met name op het MKB. Omdat een thuis situatie al snel lijkt op een klein bedrijf, is ClearOS een uitermate geschikte kandidaat als OS voor de thuis server. RHEL is een zeer stabiel OS, en zo ook ClearOS. Keerzijde is dat het niet altijd beschikt over de meest recente versies van applicaties. Maar de support is goed en er zijn middelen om hier zelf wat aan te doen (bijvoorbeeld PHP/MySQL/MariaDB upgraden).
De ondersteuning van ClearOS is uitstekend. Omdat dit de community editie betreft krijg je geen ondersteuning via de officiele kanalen echter, er is een actieve gebruikersgroep binnen de ClearFoundation. Vaak sta je in het forum in direct contact met de developers die je graag helpen met eventuele issues. ClearOS wordt tevens lang voorzien met de nodige updates zodat de server ook in de toekomst nog veilig te gebuiken is (End of Life september 2017).
Tenslotte is het beheer van het systeem grotendeels in een webomgeving te doen. Je hoeft geen toetsenbord/muis/monitor aan te sluiten op de server. Alle beheer kan met een webbrowser vanaf een pc in het netwerk. Dat beheer is overigens minimaal; installeer en vergeet.

De mogelijkheden

Voor een lijst met mogelijkeden verwijs ik graag naar de Wiki: http://en.wikipedia.org/wiki/ClearOS
De daarnaast meegeleverde software: anti-malware, anti-virus, anti-phishing, anti-spyware, anti-spam, bandwidth management, protocol filtering, content filter, web proxy, and access control. Deze kunnen makkelijk via een soort appstore/marketplace vanuit een web interface geïnstalleerd worden. Veel zijn gratis, een aantal moet je voor betalen. Deze handleiding maakt alleen gebruik van de gratis apps.
Het OS kan ook worden uitgebreid met andere, voor CentOS/RHEL 6 geschikte applicaties, zoals bijvoorbeeld:

  • Logitech Media Server/Squeezeboxserver
  • SABnzbd
  • Sickbeard/Sickrage
  • CouchPotato
  • Headphones
  • NZBGet
  • NZBDrone
  • Mylar
  • Etc.

Wat wel en wat niet

Deze handleiding zal niet de installatie van ClearOS zelf behandelen. Ze start waar de installatie van ClearOS 6.6 Community succesvol is afgerond.
De handleiding gaat uit van een nieuw en schoon geïnstalleerde ClearOS 6.6 64-bit (x86_64) omgeving zoals die hieronder te downloaden is.

ClearOS 6.6 64-bit downloaden

Dan volgt hieronder nog een disclaimert.

Bezoekers van deze site zijn zelf verantwoordelijk voor het downloaden en gebruiken van software en applicaties, het opvolgen van tips en enige andere beslissingen die zij nemen naar aanleiding van informatie op deze site. Ik aanvaard geen enkele aansprakelijkheid voor schade, verlies van gegevens of andere negatieve consequenties die ontstaan door gebruikmaking van informatie op deze site. Er kunnen geen rechten worden ontleend aan informatie op het weblog bakman.nl/tech.

Ik probeer zo veel mogelijk te verwijzen naar bronnen en rechthebbenden. Mocht ik ergens een bron niet vernoemt hebben, dan is dat niet opzettelijk. Laat in dat geval via een reactie onderaan de pagina weten dat de verwijzing mist.

Ik hoor ook graag over jouw bevindingen naar aanleiding van deze handleiding. Wellicht heb ik zaken over het hoofd gezien of kan het hier en daar makkelijker. Natuurlijk kan je ook je bedankjes en succes verhalen onderaan deze pagina kwijt in de vorm van een reactie. Ik hoor het graag!

# Succes!

Deze handleiding is in twee delen gesplitst; deel 1 behandelt de basis installatie met ondersteuning voor LAMP, PDC en NFS. Deel 2 behandelt media en NAS achtige zaken zoals SABnzbd, SickBeard en Spotweb.

All In One ClearOS 6.6 NAS server, deel 1 (dit document)
All In One ClearOS 6.6 NAS server, deel 2

Post-Installatie ClearOS 6.6 Community

De installatie procedure van ClearOS 6.6 wordt in deze handleiding niet besproken. Er is genoeg materiaal op internet te vinden waar dit stap voor stap wordt beschreven. Zie o.a. op de ClearOS website zelf.
Deze handleiding start op het moment dat ClearOS geïnstalleerd is op je server. Je gebruikt de webbrowser van een client pc en logt in op de Webconfig webapplicatie.
Nu volgen de post-installatie taken.

Na het succesvol inloggen als root user met bijpassend wachtwoord, volgt onderstaande start scherm.

2015-03-12 20_06_35-clearos66.home.lan - Install Wizard

Selecteer de eerste optie, Private Server Mode. Dit is voldoende voor deze installatie.

2015-03-12 20_07_01-clearos66.home.lan - Network Mode

In het nu volgende scherm kan je de ip instellingen aanpassen. Als de Link status op “Yes” staat, zijn er geen aanpassingen nodig.
Mijn router reserveert ip adressen voor de netwerkkaarten van mijn servers. Zodoende krijgen mijn servers altijd hetzelfde ip-adres. Mocht je graag een statisch ip adres willen zetten, doe dat dan via de Edit knop.

2015-03-12 20_07_52-clearos66.home.lan - Interfaces

Stel hier eventueel een alternatief DNS in. Voor een All In One thuis-server zal de standaard – namelijk je router – voldoen. Indien ook hier geen verassingen zijn, klik dan snel op Next.

2015-03-12 20_08_10-clearos66.home.lan - DNS

De DNS wordt opgezocht en gevalideerd. In het vakje “Network Status” wordt nu verbinding gezocht. Indien allen groen c.q. “Connected” dan is alles ok.

2015-03-12 20_08_27-clearos66.home.lan - DNS

Kies in het volgende scherm voor de gratis versie van ClearOS, ClearOS Community.

2015-03-12 20_08_43-clearos66.home.lan - Select Edition

Nu wordt gezocht naar eventuele updates van het systeem. Druk op Next om deze te installeren.

2015-03-12 20_09_34-clearos66.home.lan - Available Updates

De installatie van de updates zal beginnen. Klik Next wanneer de melding “Installation complete” verschijnt.

2015-03-12 20_09_46-clearos66.home.lan - Install Progress

Het systeem moet nu worden geregistreerd bij ClearCenter. Heb je nog geen account maak er dan eentje aan op Create New Account. Je meldt je systeem dan aan zodat de volgende zaken op je server werken:

  • Software Updates
  • Marketplace
  • Dynamic DNS

Voor niets gaat de zon op….

2015-03-12 20_10_51-clearos66.home.lan - System Registration

Stel nu het domein in. Dit kan voor een thuis-server die niet open staat om websites te hosten voor het internet, een domein naar keuze zijn. Let wel; het domein wat hier wordt gekozen is later voor alle clients van belang.

2015-03-12 20_14_06-clearos66.home.lan - Settings

Voor hostnames geldt, bedenk een handige en unieke naam.

2015-03-12 20_14_19-clearos66.home.lan - Settings

Stel de juiste tijdzone in en zorg dat de tijd automatisch wordt gesynchroniseerd met NTP servers.

2015-03-12 20_14_34-clearos66.home.lan - Date and Time

Kies bij het volgende scherm “Skip App Install Wizard“. We zullen alle Apps in deze handleiding op een andere manier installeren.

2015-03-12 20_14_53-clearos66.home.lan - Marketplace

En klaar! Je bent nu in het dashboard van ClearOS Community beland. De installatie van ClearOS zit er op. So far so good.

2015-03-12 20_15_07-clearos66.home.lan - Dashboard

De installatie van benodigde packages

In plaats van het gebruiken van de standaard Marketplace van ClearOS, installeer ik liefst via de command line interface (CLI). Als je precies weet welke apps je wel of niet wilt installeren, gaat het op deze manier een stuk sneller.
Natuurlijk staat het vrij om via de Marketplace in de webconfig van ClearOS applicaties één voor één te selecteren en te installeren.

Start PuTTY (of een andere CLI client) op een remote machine en log in als root op de ClearOS server.

ClearOS update/fixes

Updates en fixes van ClearOS zijn in de vorige stap geïnstalleerd. Het staat vrij om toch even te controleren of er inderdaad geen nieuwe updates zijn.

# yum update
Loaded plugins: clearcenter-marketplace, fastestmirror
Setting up Update Process
ClearCenter Marketplace: fetching repositories...
Loading mirror speeds from cached hostfile
 * clearos: ftp.nluug.nl
 * clearos-addons: ftp.nluug.nl
 * clearos-extras: ftp.nluug.nl
 * clearos-updates: ftp.nluug.nl
 * private-clearcenter-dyndns: download3.clearsdn.com:80
No Packages marked for Update

Inderdaad, geen updates.

Packages/Apps

Installeer de volgende packages voor de nodige basisfuncties.

  • app-openldap-directory
  • app-samba
  • app-flexshare
  • app-mysql
  • app-web-server
  • app-antivirus
  • app-file-scan
  • app-shell-extension-core

Daarnaast kunnen de volgende packages ook handig zijn. Ze verschaffen inzicht in het gebruik van de server en maken de webconfig inzichtelijker.

  • app-services
  • app-system-report
  • app-process-viewer
  • app-resource-report
  • app-network-report
  • app-network-visualiser
  • app-log-viewer
  • app-software-repository

Open PuTTY en log in als root gebruiker. Voer het volgende uit voor de basis:

# yum -y install \
app-openldap-directory \
app-samba \
app-flexshare \
app-mysql \
app-web-server \
app-antivirus \
app-file-scan \
app-shell-extension-core

of de volgende opdracht om ook de extra packages te installeren:

# yum -y install \
app-openldap-directory \
app-samba \
app-flexshare \
app-mysql \
app-web-server \
app-antivirus \
app-file-scan \
app-shell-extension-core \
app-services \
app-system-report \
app-process-viewer \
app-resource-report \
app-network-report \
app-network-visualiser \
app-log-viewer \
app-software-repository

Alle packages en dependencies – ca. 88 stuks – worden nu geïnstalleerd. Dit kan een paar minuten duren.

Wanneer installatie afgerond is (melding in PuTTY Complete!) is het slim de server eens te herstarten.

# shutdown -r now

De PuTTY sessie zal worden afgebroken. Je kan na enige minuten weer re-connecten.
Alle benodige packages zijn nu geïnstalleerd.

LDAP en PDC

Lightweight Directory Access Protocol (LDAP) is een netwerkprotocol dat beschrijft hoe gegevens uit directoryservices benaderd moeten worden over bijvoorbeeld TCP/IP. LDAP maakt gebruik van het LDAP Data Interchange Format (LDIF). (Uit https://nl.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol)

ClearOS slaat domein- en gebruikersggevens op in een OpenLDAP database, de Directory Server. Het aanmaken en configureren van deze database gaat het makkelijkst via de webconfig.
Open een webbrowser en ga naar de webconfig pagina van ClearOS, https://<ipadres>:81/
Login als root met het bijbehorende wachtwoord.

Configureren van LDAP

Open menu menu ‘Server‘ > ‘Directory Server‘. Vul in het dan volgende scherm een waarde in bij Base Domain. Zie hieronder het voorbeeld.

Klik hierna op ‘Initialize‘ om het LDAP domein vast te leggen. Na enige tijd worden alle LDAP parameters getoond. Zie hieronder.

De LDAP/Directory Server is nu in de basis geconfigureerd.

Gebruikers toevoegen aan LDAP

De LDAP directory server kan nu worden gevuld met gebruikersinformatie. Als voorbeeld wordt nu gebruiker ‘Jan Jansen’ toegevoegd.

Ga naar menu ‘System‘ > ‘Users‘ en voeg gebruikers toe door op de knop ‘Add‘ te drukken. Let op het volgende wanneer gebruikers worden aangemaakt: Mogen de gebruikers inloggen (webconfig of CLI)? Kies dan bij Login Shell voor ‘/bin/bash’. Zie hieronder.
Klik op ‘Add‘ om de nieuwe gebruiker op te slaan in LDAP.

Samba/PDC configureren

PDC staat voor Primary Domain Controller. Deze zorgt er voor dat een ieder die inlogt op het domein, de juiste rechten krijgt toegewezen. Samba is hiervoor de basis, een protocol welke communicatie met Windows computers mogelijk maakt.
(bron: http://www.clearfoundation.com/component/option,com_kunena/Itemid,232/catid,18/func,view/id,2339/)

Ga naar het menu ‘Server‘ > ‘Windows Networking‘ en vul de velden in.

2015-03-13 14_48_59-clearos66.home.lan - Windows Networking

Klik daarna op ‘Initialize‘ om de gegevens op te slaan. Na enige tijd wordt er een overzicht getoond van alle Samba instellingen. De server is nu een Primary Domain Controller (PDC) voor het netwerk. Zie hieronder.

2015-03-13 14_52_45-clearos66.home.lan - Windows Networking
LDAP, Samba en PDC zijn nu geconfigureerd.

Database en Webservice

Zowel database op basis van MySQL als webserver (Apache) zijn tijdens installatie van packages geïnstalleerd. Nu volgt de configuratie van beide.
(bron: http://www.server-world.info/en/note?os=CentOS_6&p=mysql)

MySQL configureren

Wijzig eerst een instelling in het configuratiebestand. Open het my.cnf bestand.

# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Voeg de volgende regel toe
character-set-server=utf8
[...]

Sla het bestand op en start de database server met de volgende opdracht:

# service mysqld start

De MySQL database zal nu voor het eerst worden gestart.

Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h clearos66.home.lan password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

De database service is nu succesvol gestart. Om de service automatisch tijdens boot te starten:

# chkconfig mysqld on

MySQL veiliger maken

Run het script “mysql_secure_installation" om MySQL stricter in te stellen. Het script doet het volgende:

  1. root wachtwoord aanmaken
  2. anonymous gebruiker verwijderen
  3. remote root login vergrendelen
  4. test database verwijderen

Voer het volgende commando als root:

# mysql_secure_installation

Voorbeeld:

# mysql_secure_installation


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <enter>
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] Y
New password: <wachtwoord>
Re-enter new password: <wachtwoord nogmaals>
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

De MySQL database is nu een stukje veiliger gemaakt! De configuratie van de database server is afgerond.

Apache webserver configureren

Eerst moet een standaard website worden aangemaakt.
Login op de Webconfig van ClearOS en ga naar ‘Server‘ > ‘Web Server‘. Je zit nu onderstaande scherm. Klik hier op ‘Configure Default Web Site‘.

ClearOS Web Server Default Web Site

In het dan volgende scherm moeten de velden ‘Web Site Hostname‘ en ‘Aliases‘ worden ingevuld. Bedenk daarbij dat onder deze url straks de default website in de browser te benaderen is. Overige opties kunnen blijven staan.

ClearOS Default Web Site settings

We hebben hier te maken met een website die in principe alleen intern, over het LAN, te benaderen is. We hoeven deze dus niet nog extra te beveiligen.

Klik uitiendelijk op de knop ‘Add‘ om de website te bewaren.
De default website is nu gedefinieerd.

ClearOS Web Server default website finish

Test de webserver

Maak nu een index.php bestand in de default directory van de webserver om de werking van de webserver te testen.

# vi /var/www/html/index.php

Kopieer en plak de volgende code:

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

Sla het bestand op.
Ga nu naar een webbrowser op een pc in het netwerk en open de website, http://<ipadres> of http://<hostname>.
In dit voorbeeld dus:

http://cos66.domain.local of
http://cos66

Alles alles goed is gegaan zul je de PHP informatie pagina te zien krijgen.
De web server en database server zijn nu klaar voor gebruik.

NFS

NFS staat voor Network File System en is bedoeld voor transport van bestanden over een netwerk. Er zijn andere netwerkbestandssytemen zoals Samba/CIFS maar NFS heeft dusdanig weinig overhead dat snelle overdracht gerealiseed kan worden. Ideaal voor een snelle fileserver. Voor meer informatie, zie NFS Wikipedia.

NFS server installeren

Installeer de benodigde paketten om een NFS server te bouwen.

# yum -y install nfs-utils

Voorbeeld:

[...]
Installed:
  nfs-utils.x86_64 1:1.2.3-54.el6

Dependency Installed:
  keyutils.x86_64 0:1.4-5.el6                 libevent.x86_64 0:1.4.13-4.el6
  libgssglue.x86_64 0:0.1-11.el6              libtirpc.x86_64 0:0.2.1-10.el6
  nfs-utils-lib.x86_64 0:1.1.5-9.el6          rpcbind.x86_64 0:0.2.0-11.el6

Complete!

Wijzig in het volgende bestand, regel 5, het domein waarin NFS actief moet zijn.

# vi /etc/idmapd.conf
[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = domain.local

Sla het bestand op. Open vervolgens het bestand:

vi /etc/exports

en deel de directory /home. Iedereen in het LAN heeft toegang tot deze directory, voorbeeld:

/home 192.168.1.0/24(rw,no_root_squash)

/home dient slechts als voorbeeld. Er kunnen vele andere directories aan dit bestand worden toegevoegd. Sla het bestand op.

Start nu alle services die bij NFS nodig zijn.

# service rpcbind start && service nfslock start && service nfs start

Voorbeeld:

# service rpcbind start && service nfslock start && service nfs start
Starting rpcbind:                                          [  OK  ]
Starting NFS statd:                                        [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

Zorg dat deze services starten bij booten van de machine.

# chkconfig rpcbind on && chkconfig nfslock on && chkconfig nfs on

Check of de service inderdaad op ‘on’ staan.

# chkconfig --list | grep "rpcbind\|nfslock\|nfs"
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

De NFS service is nu klaar voor gebruik.

Einde deel 1

Deel 1 van de All In One ClearOS NAS Server zit erop. Er is nu een server geconfigureerd waarbij clients (bijvoorbeeld windows PC’s) op het domein kunnen aanloggen. De login op deze clients is gebasseerd op gebruikers welke in ClearOS gedefinieerd zijn. De rechten van deze gebruikers worden ook centraal geregeld via ClearOS. Tevens is er een web server met MySQL database ondersteuning geïnstalleerd.

Deel 2 zal ingaan op meer NAS achtige zaken zoals het kunnen downloaden van bestanden via usenet. Veel succes!

Geef een antwoord

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