ClearOS 7 NAS Part 1

I have build a tutorial in my native, Dutch language for building your own private NAS-like, mediaserver. I’ve choosen this route instead of the well known Synology or QNAP one. I found them too restricted, I prefer having full control. That was done for ClearOS 6. Now the Release Canditate of ClearOS 7 is out. Let’s build a new machine which can do the same (and more) for your NAS needs. This time – by popular demand – I’m doing it in English. Let’s start.

Post Installation Wizard

After installation on your hardware (bare metal or VM), the post install wizard of ClearOS starts. Every page has a Previous and Next button on top. Fill in all the details (see screenshots below) and click Next. It will be over in a minute. Click for a larger image on the specific screenshot.

You’re done! The installation is finished. Let’s start building this NAS.

Install Packages

Let’s try and isntall a bunch of packges we need. Open a PuTTY session from your Windows machine to the new server’s ip address or hostname. Logon as root and type (or copy/paste) the following command and press Enter:

# yum -y install \
app-openldap-directory \
app-samba \
app-flexshare \
app-mariadb \
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

This will download and install around 200 MB of packages. Sit back, relax and watch the show.

[...]
Transaction Summary
==========================================================================
Install 13 Packages (+81 Dependent packages)

Total download size: 164 M
Installed size: 408 M
[...]

Just to be safe, restart your server.

# shutdown -r now

Your PuTTY session will disconnect.

LDAP and PDC

LDAP setup

Logon to the ClearOS webinterface https://<ipaddress>:81 and go to ServerDirectoryDirectory Server in the left menu. In the right pane enter the base domain details you want the LDAP to use i.e. “home.lan” or “<yourname>.lan”. Click the Initialize button when ready.

ClearOS 7 LDAP Base Domain

Initializing LDAP
Initializing LDAP settings

After a few seconds your LDAP has initialized it’s database. All LDAP details are shown.

LDAP details
LDAP details

LDAP users and groups

Now it’s time to fill the LDAP with users their information.
Got the menu SystemAccountsUsers and click the Add button on the User Manager page to add a new user.

Keep adding new users untill you had enough. If you want the users to access bash with PuTTY or within scripts, choose ‘/usr/bin/bash’ at Login Shell.
Note: Also add a user called ‘nzbuser

Add user info

PDC setup

For PDC to work for the users we just created, we need to setup Samba the right way. Go to ServerFileWindows Networking (Samba) in the left menu.

Windows Networking
Windows Networking

Enter the server machine name and the domain you want your Windows clients to use. Also enter the password of the administrator of the domain. Remember this account ‘winadmin‘ and it’s password. You need it when you add Windows clients to the domain controller.

Windows Networking setup
Windows Networking setup

When done hit the Initialize button and let the magic happen.

It's magic
It’s magic

After a few minutes/seconds the initializing finishes and you’ll see the details of your PDC setup.

LDAP and PDC are now ready.

Database and Webservices

Database tweaks

First change some of the configuration of the MariaDB database. Logon as root with PuTTY and type:

# vi /etc/my.cnf

Add a new line, see below, line 11:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#
character-set-server=utf8
#
...

Save the file and start the database for the first time.

# service mariadb start

The database should now sucessfully start. When checking it’s status, it shows:

# service mariadb status
Redirecting to /bin/systemctl status mariadb.service
mariadb.service - MariaDB database server
 Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
 Active: active (running) since Fri 2015-10-02 15:42:14 CEST; 1min 52s ago
 Process: 24230 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
 Process: 24202 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 24229 (mysqld_safe)
 CGroup: /system.slice/mariadb.service
 ├─24229 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
 └─24399 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=...

We need to enable the database to start automatically with every boot of the machine, so:

# chkconfig mariadb on

Improve security MariaDB

Run the script “mysql_secure_installation" to make MariaDB a saver place. The script will:

  1. make a root password
  2. disable anonymous user logon
  3. lock down remote root logon
  4. delete the test database

Go to your PuTTY session and enter:

# mysql_secure_installation

Example:

# 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 MariaDB 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 MariaDB
root user without the proper authorisation.

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


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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 MariaDB
installation should now be secure.

Thanks for using MariaDB!

Webserver setup

Logon to the ClearOS webinterface https://<ipaddress>:81 and go to ServerWebWeb Server in the left menu. Click the big green button telling you to Configure Security Certificates. You just need to.

When done click the Create Certificate button. Done.
What… wait… you are now suddenly somewhere else in the menu structure. Don’t panic, just go back to the Web Server menu item. Click on the Configure Default Web Site button.

Enter a hostname and alias for your default web site and click Add.

Default Web Site details

Done. Let’s test the default website.
Start a session in PuTTY, logon as root. Create a simple php page:

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

Take the following code

<?php 

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

?>

paste it in your vi editor and save the file.
Open a web browser on your client machine and enter the ip or hostname of your server. You should see the PHP version page.

http://<ipaddress> or <http://hostname>

You should now see the default webpage.

Note: If you see the default congratulations from ClearOS (with it’s logo), you can rename or remove the /var/www/html/index.html file. Or, instead, add “index.php” to the DirectoryIndex part of the file /etc/httpd/conf/httpd.conf.

Things get beefed up in the next chapter…

Upgrade php

Defaul ClearOS 6.6 comes with PHP version 5.3.3-40. If you followed the ClearOS all-in-one server install, this is the version you end up with. It’s old. I needed to upgrade PHP to version 5.4.x doing a project. This is how I did it.

Import Tim Burgess his repository

# rpm --import ftp://timburgess.net/RPM-GPG-KEY-TimB.txt
# cd /tmp
# wget ftp://timburgess.net/repo/clearos/6/os/x86_64/timb-release-1-1.noarch.rpm
# rpm -Kv timb-release-1-1.noarch.rpm
# rpm -Uvh timb-release-1-1.noarch.rpm

Install t1lib, ‘PostScript Type 1 font rasterizer’ dependence

yum --enablerepo=clearos-core -y install t1lib

Example:

[...]
Dependencies Resolved

=========================================================================================================
 Package             Arch                 Version                       Repository                  Size
=========================================================================================================
Installing:
 t1lib               x86_64               5.1.2-6.el6_2.1               clearos-core               159 k

Transaction Summary
=========================================================================================================
Install       1 Package(s)

Total download size: 159 k
Installed size: 386 k

[...]

Installed:
  t1lib.x86_64 0:5.1.2-6.el6_2.1

Complete!

Now upgrade PHP to 5.4.19

# yum --enablerepo=timb -y update php

Example

Dependencies Resolved

=========================================================================================================
 Package                    Arch                 Version                        Repository          Size
=========================================================================================================
Updating:
 php                        x86_64               5.4.19-1.clearos               timb               2.7 M
Updating for dependencies:
 php-cli                    x86_64               5.4.19-1.clearos               timb               2.6 M
 php-common                 x86_64               5.4.19-1.clearos               timb               923 k
 php-gd                     x86_64               5.4.19-1.clearos               timb               141 k
 php-ldap                   x86_64               5.4.19-1.clearos               timb                57 k
 php-mbstring               x86_64               5.4.19-1.clearos               timb               943 k
 php-mysql                  x86_64               5.4.19-1.clearos               timb               134 k
 php-pdo                    x86_64               5.4.19-1.clearos               timb               118 k
 php-process                x86_64               5.4.19-1.clearos               timb                59 k
 php-soap                   x86_64               5.4.19-1.clearos               timb               219 k
 php-xml                    x86_64               5.4.19-1.clearos               timb               169 k

Transaction Summary
=========================================================================================================
Upgrade      11 Package(s)

Total download size: 8.0 M
Downloading Packages:

[...]

Complete!

Now check you installed PHP version:

# php -v
PHP 5.4.19 (cli) (built: Sep  2 2013 22:09:58)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

You might need to restart Apache web server to see results in your web project.

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Sources:
https://www.clearos.com/support/documentation/clearos/content:en_us:kb_howtos_adding_tim_s_repo

Install Composer, ClearOS6

# yum --enablerepo=timb -y install php-mcrypt
[...]
Dependencies Resolved

=========================================================================================================
 Package                 Arch                Version                         Repository             Size
=========================================================================================================
Installing:
 php-mcrypt              x86_64              5.4.19-1.clearos                timb                   49 k
Installing for dependencies:
 libmcrypt               x86_64              2.5.8-9.el6                     contribs               96 k

Transaction Summary
=========================================================================================================
Install       2 Package(s)

Total download size: 145 k
Installed size: 366 k

[...]

Complete!
# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
# composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (8c81ec0d0e9f864f0ec77831fc712ee7bcdd119b) 2015-06-03 11:27:17

Usage:
 command [options] [arguments]

Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message

[...]

Within a web project install the necessary dependencies.
Make sure the lock file is present in the directory where you run the composer command.

# ls -al *.lock
-rw-r--r-- 1 apache allusers 231553 Jun  4 21:37 composer.lock
# composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
  - Installing symfony/http-foundation (v2.6.9)
    Downloading: 100%

  - Installing symfony/event-dispatcher (v2.7.0)
    Downloading: 100%

  - Installing guzzle/guzzle (v3.9.3)
    Downloading: 100%
[...]
Generating autoload files
Generating optimized class loader
Compiling common classes

Ready

Adding Dropbox to your ClearOS server

If you’re like me, the ClearOS server needs to do the Dropbox syncing, not every client pc in the house separately. The whole idea is to have things centralized, isn’t it? Of course you can access the synced data from every client in the house.
In this short tutorial you’ll learn how to install Dropbox on your ClearOS All-in-One NAS and configure a sync to the users their home directory.

Installation

First start PuTTY and logon as root user to your ClearOS server.
Enter the following command:

# yum install -y app-dropbox

You’ll see something like this:

Dependencies Resolved

=====================================================================================
 Package                           Arch        Version            Repository    Size
=====================================================================================
Installing:
 app-dropbox                       noarch      1:1.6.7-1.v6       clearos      9.1 k
Installing for dependencies:
 app-dropbox-core                  noarch      1:1.6.7-1.v6       clearos       11 k
 app-user-dropbox                  noarch      1:1.6.0-1.v6       clearos       12 k
 app-user-dropbox-core             noarch      1:1.6.0-1.v6       clearos      5.2 k
 app-user-dropbox-plugin-core      noarch      1:1.0.0-1.v6       clearos      5.0 k
 dropbox                           x86_64      2.10.28-1.v6       clearos       24 M

Transaction Summary
=====================================================================================
Install 6 Package(s)

Total download size: 24 M
Installed size: 39 M
[...]
Installed:
  app-dropbox.noarch 1:1.6.7-1.v6

Dependency Installed:
  app-dropbox-core.noarch 1:1.6.7-1.v6
  app-user-dropbox.noarch 1:1.6.0-1.v6
  app-user-dropbox-core.noarch 1:1.6.0-1.v6
  app-user-dropbox-plugin-core.noarch 1:1.0.0-1.v6
  dropbox.x86_64 0:2.10.28-1.v6

Complete!

That’s it for the installation part!
Now that Dropbox is installed, you’re ready to configure it.

Configuration

You need to choose which of the users are allowed to sync their Dropboxes to their home directory on the server.
Logon in the Webconfig as user root (or any other admin account). Go to the ‘Cloud’ menu and choose item ‘Dropbox‘. You will see your users being listed, see below.

2015_05_26_10_54_56_Dropbox

Now click on the button ‘Edit Members‘ to set which users are able to use Dropbox. You’ll see, again, the list of users on tour server. Choose which user can use Dropbox by putting a check in the corresponding box. Click the ‘Update‘ button when done.

2015_05_26_10_59_36_Members

Now ask your users to logon into the COS webconfig to make them configure their sync. Or you can do it yourself provided you have their credentials.
Logout the webconfig as admin user and logon as one of the Dropbox enabled normal user.

Click on the left menu item ‘My Account’ > ‘Accounts’ > ‘Dropbox‘.

2015_05_26_11_07_37_User_Profile

The Dropbox user-app will ask for the Dropbox account info. Click the ‘I already have a Dropbox account‘ button.

2015-05-26 11_08_57-Dropbox

In the next step you are asked to make sure you want to syncronize. Click the button ‘Synchronize Now‘ when you are sure.

2015-05-26 11_10_04-Dropbox

After a few seconds the button ‘Complete setup by authenticating with Dropbox‘ appears. This might be the longest button-name ever made :P

2015-05-26 11_12_22-Dropbox

When you click the button your browser will open a new window/tab which leads to the Dropbox webpage. When logging in with the user’s Dropbox account you are telling Dropbox the COS server is save to use. After you’ve done this the Dropbox App starts syncing. Depending on the size of the Dropbox share and your internet connection, it can take a while.

2015-05-26 12_20_00-Dropbox

Note: The spinning wheel in the picture above, indicating the sync is busy, is not accurate. In fact, it just might be a stupid animated GIF which never ends! Better open up a PuTTY session and monitor the directory size or do a top command like this to see CPU% being used:

# top -p `pgrep dropbox | tr "\\n" "," | sed 's/,$//'`

check Dropbox folder size:

# du -sh /homer/user/Dropbox

Now you are finished creating a sync between the COS server and your Dropbox account.
You can access the Dropbox folder on your Windows PC like you used to, it’s located under ‘This PC’ (Win8.x) or ‘Computer’ (Win7) as a netwerk share with your username.

Have fun syncing!

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

Welkom bij deel 2 van de All In One ClearOS NAS server. In dit deel worden media gerelateerde zaken geïnstalleerd. Naast een muziekserver wordt er ook aandacht besteed aan de installatie van software die het automatisch downloaden van films en series mogelijk maakt. Let wel, het is niet toegestaan auteursrechtelijk beschermde content te downloaden.

Logitech Media Server

Logitech Media Server (LMS) f.k.a. Squeezebox Server f.k.a. SqueezeCenter f.k.a. SlimServer is een applicatie die muziek beheert in een bibliotheek en deze kan laten afspelen op Squeezebox produkten. Overal in je huis muziek, centraal opgeslagen op je server.
Voor meer informatie, ga naar http://wiki.slimdevices.com/

LMS repository

Eerst moet er een nieuwe repository worden geïnstalleerd. Van hier uit kan LMS worden geïnstalleerd en bijgehouden (updaten). De meeste recente versie van LMS staat hier:
http://downloads.slimdevices.com/

Zoek naar de RedHat Package Manager versie (bestandsnaam eindigt met ‘rpm’) en kopieer de link. Download de rpm naar de /tmp directory.

# wget -P /tmp http://downloads.slimdevices.com/LogitechMediaServer_v7.7.5/logitechmediaserver-7.7.5-1.noarch.rpm

Dependencies

Installeer nu de dependency ‘perl-Time-HiRes’. Deze Perl module zorgt ervoor dat Perl om kan gaan met timers in het OS. Installeer ook de Free Lossless Audio Codec decoder, FLAC.

# yum -y install perl-Time-HiRes flac

Installatie

Installeer nu LMS.

# yum -y localinstall /tmp/logitechmediaserver*.noarch.rpm

Voorbeeld:

Dependencies Resolved

=====================================================================================
 Package Arch Version Repository Size
=====================================================================================
Installing:
 logitechmediaserver noarch 7.7.5-1 /logitechmediaserver-7.7.5-1.noarch 270 M

Transaction Summary
=====================================================================================
Install 1 Package(s)

Total size: 270 M
Installed size: 270 M

[...]

Installed:
 logitechmediaserver.noarch 0:7.7.5-1

Complete!

Maak de volgende aanpassing:

# cd /usr/lib64/perl5/vendor_perl/
# ln -s /usr/lib/perl5/vendor_perl/Slim Slim

LMS kan nu worden gestart met de opdracht:

# service squeezeboxserver start

Om LMS bij iedere boot van de server automatisch op te laten starten:

# chkconfig squeezeboxserver on

LMS is nu geïnstalleerd. Zoals het bericht aan het einde van de installatie ook al aangeeft, kan je met een webbrowser nu naar http://x.x.x.x:9000/ (gebruik hier je eigen server adres of hostname) gaan om LMS verder te configureren.

Configuratie van LMS wordt niet behandeld in deze handleiding.

SABnzbd

SABnzbd behoeft weinig inleiding. De usenet downloader is gemaakt met Python. Geef het een nzb bestand en hij download, checked, repareert en pakt uit. Volledig geautomatiseerd.

Repo en dependencies

Kopieer het volgende commando om de SABnzbd repo aan te maken. Deze wordt standaard enabled (enabled=1). Het gevolg is dat toekomstige updates voor SABnzbd automatisch worden geïnstalleerd. Wil je dit niet, pas dit dan aan.

Kopieer en plak onderstaande in een PuTTY sessie.

# cat << _EOF > /etc/yum.repos.d/sabnzbd.repo
[SABnzbd]
name=SABnzbd for RHEL 6 and clones - $basearch - Base
baseurl=https://dl.dropboxusercontent.com/u/14500830/SABnzbd/RHEL-CentOS/6/
failovermethod=priority
enabled=1
gpgcheck=0
_EOF

SABnzbd heeft unrar nodig om bestanden uit te pakken. Standaard is unrar niet geïnstalleerd op ClearOS 6.6. We gaan dat eerst doen.
Download de meeste recente rpm van unrar. Deze is te vinden op http://pkgs.repoforge.org/unrar.

# wget -P /tmp/ http://pkgs.repoforge.org/unrar/unrar-5.0.3-1.el6.rf.x86_64.rpm

Installeer vervolgens dit bestand:

# rpm -Uvh /tmp/unrar-5.0.3-1.el6.rf.x86_64.rpm

Installatie

Nu alle voorbereidingen getroffen zijn, kan SABnzbd als volgt worden geïnstalleerd.

# yum -y --enablerepo=clearos-core,clearos-epel install SABnzbd

Voorbeeld:

Dependencies Resolved
[...]
=====================================================================================
 Package               Arch       Version                     Repository        Size
=====================================================================================
Installing:
 SABnzbd               noarch     0.7.20-1.el6                SABnzbd          2.4 M
Installing for dependencies:
 nc                    x86_64     1.84-24.el6                 clearos           56 k
 par2cmdline           x86_64     0.4.tbb.20100203-3.el6      clearos-epel     123 k
 pyOpenSSL             x86_64     0.10-2.el6                  clearos          211 k
 python-cheetah        x86_64     2.4.1-1.el6                 clearos-core     364 k
 python-markdown       noarch     2.0.1-3.1.el6               clearos-core     117 k
 python-pygments       noarch     1.1.1-1.el6                 clearos-core     561 k
 python-setuptools     noarch     0.6.10-3.el6                clearos-core     335 k
 python-yenc           x86_64     0.4.0-1.el6                 SABnzbd           25 k
 tbb                   x86_64     2.2-3.20090809.el6          clearos-core      74 k
 unzip                 x86_64     6.0-1.el6                   clearos          148 k

Transaction Summary
=====================================================================================
Install      11 Package(s)
[...]
Complete!

SABnzbd is nu geïnstalleerd in de volgende directory /usr/share/SABnzbd/

# ls -lh /usr/share/SABnzbd/
total 280K
drwxr-xr-x  5 root root 4.0K Mar 16 16:36 cherrypy
drwxr-xr-x  2 root root 4.0K Mar 16 16:36 email
drwxr-xr-x  2 root root 4.0K Mar 16 16:36 gntp
drwxr-xr-x  2 root root 4.0K Mar 16 16:36 icons
drwxr-xr-x  8 root root 4.0K Mar 16 16:36 interfaces
drwxr-xr-x 13 root root 4.0K Mar 16 16:36 locale
drwxr-xr-x  5 root root 4.0K Mar 16 16:36 po
drwxr-xr-x  3 root root 4.0K Mar 16 16:36 sabnzbd
-rwxr-xr-x  1 root root  67K Nov 24 12:17 SABnzbd.py
-rw-r--r--  2 root root  49K Nov 24 12:17 SABnzbd.pyc
-rw-r--r--  2 root root  49K Nov 24 12:17 SABnzbd.pyo
-rwxr-xr-x  1 root root  66K Nov 21 20:41 SABnzbd.py.orig
drwxr-xr-x  2 root root 4.0K Mar 16 16:36 tools
drwxr-xr-x  2 root root 4.0K Mar 16 16:36 util

SABnzbd gebruiker


Notitie: In deze handleiding wordt één gebruikers-account gebruikt als het gaat om downloaden. Zowel SABnzbd, Sickbeard/SickRage, Couchpotato, als Headphones draaien onder de gebruiker “nzbuser”. Deze gebruiker kan in het systeem niet inloggen, het is enkel voor gebruik van applicaties. Dit heeft als voordeel dat alles wat gedownload wordt automatisch nzbuser als eigenaar heeft. Alle download applicaties hebben dus juiste rechten over de bestanden.


Maak eerst een gebruikersaccount aan waaronder SABnzbd zal gaan draaien. Wanneer je een gebruiker aanmaakt in de Webconfig van ClearOS zal deze een standaard opvolgnummertje krijgen. Dit userid is >=1000. Ik geef de voorkeur naar scheiding tussen echte gebruikers en dit soort machine accounts. Daarom maak ik de gebruiker ‘nzbuser‘ aan met userid 1100, groupid 63000 (allusers).

# useradd -u 1100 -g 63000 -s /bin/bash nzbuser

Check of de user juist is aangemaakt

# getent passwd | grep nzbuser
nzbuser:x:1100:63000::/home/nzbuser:/bin/bash

Nu de gebruiker nzbuser is aangemaakt, moet SAB handmatig gestart worden om de directory-structuur en bestanden in de /home/nzbuser neer te kunnen zetten. Dit hoeft maar één keer te gebeuren.

Start SAB met de daarvoor bestemde gebruiker (hier nzbuser):

sudo -u nzbuser python /usr/share/SABnzbd/SABnzbd.py -s <ip-adres>:8080

Voorbeeld:

2015-03-29 20:24:54,564::INFO::[panic:247] Lauching browser with http://x.x.x.x:8080/sabnzbd
2015-03-29 20:24:55,307::INFO::[SABnzbd:1604] Starting SABnzbd.py-0.7.20
2015-03-29 20:24:55,313::INFO::[dirscanner:277] Dirscanner starting up
2015-03-29 20:24:55,315::INFO::[urlgrabber:77] URLGrabber starting up

Open nu een webbrowser en open de url van SABnzbd, http://<ip-adres>:8080


Notitie:
Start nu de SABnzbd configuratie wizard. De instellingen van SABnzbd is voor iedereen anders. Daarom wordt deze hier niet beschreven.


Wanneer de wizard is afgerond kan de browser worden gesloten. Stop tevens SABnzbd in PuTTY door Ctrl + c in te toetsen. De directorystructuur van de SABnzbd user is nu gemaakt.

Configuratie

SABnzbd heeft twee configuratie bestanden nodig om goed te kunnen draaien. Het gaat om de volgende bestanden:

  • /etc/init.d/SABnzbd – Dit bestand zorgt er voor dat SABnzbd op de juiste manier gestart en gestopt kan worden.
  • /etc/sysconfig/SABnzbd – Hierin staan parameters genoemd welke van belang zijn om hierboven genoemde bestand te voorzien van de juiste waarden.

Beide bestanden zijn gedurende het installatie proces al aangemaakt. Ze moeten alleen nog worden aangepast.

SABnzbd als daemon

SABnzbd is op dit moment geïnstalleerd en kan gestart worden met het volgende commando:

# sudo -u nzbuser python /usr/share/SABnzbd/SABnzbd.py -s <ip-adres>:8080

Om SABnzbd op deze manier te starten is omslachtig. Je kan SABnzbd beter als daemon later draaien, op de achtergrond. Je hebt er dan geen omkijken naar; SABnzbd start automatisch bij het opstarten van de server.
De volgende stappen zijn noodzakelijk wanneer je SABnzbd als daemon wilt laten draaien.

Wijzig het volgende bestand naar eigen smaak

# vi /etc/sysconfig/SABnzbd

Voorbeeld:

# SABnzbd service configuration

# run SABnzbd as
sabuser=nzbuser

# modify if SABnzbd config file is somewhere else for some reason
config="/home/${sabuser}/.sabnzbd/sabnzbd.ini"

# API key (can be found in the above config file)
apikey= xxxxxxxxxxxxxxxxxx

# gui address, eg: ${protocol}://${host}:${port}/sabznbd/
protocol=http
host=x.x.x.x
port=8080

# leave blank if no username/password is required to access the gui
username=
password=

# use nice, ionice, taskset to start SABnzbd
nicecmd="ionice -c2 -n4"
# example: nicecmd="nice -n 19 ionice -c3"

Sla het bestand op.
Maak voor het makkelijk starten en stoppen van de SABnzbd daemon de servicenaam met kleine letters:

# mv /etc/init.d/SABnzbd /etc/init.d/sabnzbd

Nu kan SAB worden gestart als service/daemon.

# service sabnzbd start
Starting SABnzbd:                                          [  OK  ]

Om tenslotte SABnzbd automatisch te starten bij opstarten van de server:

# chkconfig sabnzbd on

Extra instellingen

Verhuis logging naar de /var/log directory. De /var/log directory is binnen Linux de centrale plek waar applicaties al hu nlog weg schrijven. SABnzbd schrijft hier standaard niet naar toe. Doe het volgende om dit te wijzigen.
Maak eerst de directory aan:

# service sabnzbd stop
# mkdir /var/log/sabnzbd

Kopieer nu bestaande logging naar de nieuwe locatie:

# cp /home/nzbuser/.sabnzbd/logs/* /var/log/sabnzbd

Zet de juiste rechten voor gebruiker ‘nzbuser’:

# chown -R nzbuser:allusers /var/log/sabnzbd/

Open nu het configuratiebestand en wijzig de regel ‘log_dir’

# su nzbuser
$ vi ~/.sabnzbd/sabnzbd.ini

Wijzig in

log_dir = /var/log/sabnzbd

Sla het bestand op.
Ga terug naar de root user en start nu SABnzbd opnieuw. Logging zal nu centraal worden opgeslagen in de nieuwe locatie.

Issues

SABnzbd start niet automatisch op bij booten van de server.
Zorg dat SAB later in het bootproces opstart. In ieder geval nadat OpenLDAP is opgestart. OpenLDAP start immers alle gebruikers, zo ook ‘nzbuser’.

Sickbeard

Sickbeard of Sick Beard is een usenet downloader specifiek voor tv series. Net als SABnzbd gebouwd op Python. Geef op welke series je wilt volgen en Sickbeard doet de rest. Ideaal in combinatie met SABnzbd. Meer informatie over Sickbeard en forks van Sickbeard bijv, Sickrage, kan je in de volgende links vinden:

Sick Beard – Internet PVR for your TV Shows
Sick Beard op GitHub
SickRage, fork van Sickbeard

Installatie Git

Installeer eerst Git om Sickbeard te kunnen installeren.

# yum -y --enablerepo=clearos-core install git
[...]
Dependencies Resolved

=====================================================================================
 Package           Arch          Version                   Repository           Size
=====================================================================================
Installing:
 git               x86_64        1.7.1-3.el6_4.1           clearos-core        4.6 M
Installing for dependencies:
 perl-Error        noarch        1:0.17015-4.el6           clearos-core         28 k
 perl-Git          noarch        1.7.1-3.el6_4.1           clearos-core         27 k
 rsync             x86_64        3.0.6-12.el6              clearos             334 k

Transaction Summary
=====================================================================================
Install       4 Package(s)

[...]

Complete!

Installatie Sickbeard

Installeer/download nu Sickbeard met de volgende opdracht:

# git clone https://github.com/midgetspy/Sick-Beard.git /tmp/sickbeard

Sickbeard wordt nu middels Git geïnstalleerd in de /tmp/ directory.

Initialized empty Git repository in /tmp/sickbeard/.git/
remote: Counting objects: 25089, done.
remote: Total 25089 (delta 0), reused 0 (delta 0), pack-reused 25089
Receiving objects: 100% (25089/25089), 11.73 MiB | 1.46 MiB/s, done.
Resolving deltas: 100% (16502/16502), done.

Verplaats Sickbeard nu naar een meer logische plaats in de directory-structuur. Dit kan bijvoorbeeld je /home directory zijn. Mijn voorkeur gaat uit naar /usr/share. Daar staat ook SABnzbd geïnstalleerd.

# mv /tmp/sickbeard /usr/share/

Note: Je kan ook in één keer met Git in de juiste directory installeren. Hieronder het voorbeeld om Sickrage, een fork van Sickbeard, in één stap te installeren naar /usr/share.

# git clone https://github.com/echel0n/SickRage.git /usr/share/sickrage

Sickbeard/SickRage is nu geïnstalleerd. Ga Sickbeard nu configureren.

Configuratie

Kopieer het Fedora opstart-script naar de systeem opstart directory en geef het execute rechten.

# cp /usr/share/sickbeard/init.fedora /etc/init.d/sickbeard
# chmod +x /etc/init.d/sickbeard
vi /etc/init.d/sickbeard

Zorg dat de regels 26 t/m 30 er als volgt uit zien

## Edit user configuation in /etc/sysconfig/sickbeard to change
## the defaults
username=${SB_USER}
homedir=${SB_HOME}
datadir=${SB_DATA}
pidfile=${SB_PIDFILE}
nice=${SB_NICE}

Sla het gewijzigde bestand op.
Maak een nieuw bestand aan met naam /etc/sysconfig/sickbeard

# vi /etc/sysconfig/sickbeard

Kopieer de volgende inhoud in dit bestand en pas aan waar nodig.

# Sickbeard service configuration

# run Sickbeard as
SB_USER=nzbuser
SB_HOME=/usr/share/sickbeard
SB_DATA=/home/nzbuser/.sickbeard
SB_PIDFILE=/var/run/sickbeard/sickbeard.pid

# gui address, eg: \${protocol}://\${host}:\${port}/sickbeard/
protocol=http
host=x.x.x.x       #example host=mymachine
port=8081          #example port=8081

# leave blank if no username/password is required to access the gui
username=
password=

# use nice, ionice, taskset to start Sickbeard
# nicecmd=
SB_NICE="ionice -c2 -n4"
# example: nicecmd="nice -n 19 ionice -c3"

Start de Sickbeard service

# service sickbeard start
Starting sickbeard:                                        [  OK  ]

Om de Sickbeard daemon automatisch te starten bij het booten van de server:

# chkconfig sickbeard on

Bezoek met een web browser de Sickbeard beheerpagina, http://x.x.x.x:8081 om Sickbeard verder in te stellen.

Het instellen van Sickbeard wordt niet in deze handleiding besproken.

Post installatie stappen

Log verplaatsen
Het Sickbeard log verplaatsen naar de /var/log directory. Dit gaat op exact dezelfde manier als bij Sabnzbd.
Stop Sickbeard en maak de directory aan:

# service sickbeard stop
# mkdir /var/log/sickbeard

Kopieer nu bestaande logging naar de nieuwe locatie:

# cp /home/nzbuser/.sickbeard/Logs/* /var/log/sickbeard

Zet de juiste rechten voor gebruiker ‘nzbuser’:

# chown -R nzbuser:allusers /var/log/sickbeard/

Open nu het configuratiebestand en wijzig de regel ‘log_dir’

# su nzbuser
$ vi ~/.sickbeard/config.ini

Wijzig in de waarde log_dir naar:

log_dir = /var/log/sickbeard

Sla het gewijzigde bestand op, verlaat de nzbuser user sessie en start Sickbeard opnieuw op met service sickbeard start.

Issues

Wanneer de status van de deamon wordt opgevraagd en het resultaat is:

# service sickbeard status
sickbeard dead but subsys locked

Dan kan dit gecorrigeerd worden door de volgende aanpassing. Open het opstartscript:

# vi /etc/init.d/sickbeard

En voeg de volgende tekst toe tussen regel nr. 64 en de regel “# See how we are called”. Wijzig ook de status regel (regel 34 hieronder).

[...]
# Create more informative status output
status() {
    # run checks to determine if the service is running or use generic status

    /usr/bin/nc -z $host $port &> /dev/null
    retval=$?

    if [ $retval -eq 0 ];then
        pid=`ps -fu $username | grep -v grep | grep SickBeard.py | awk '{print $2}'`
        echo "$prog (pid $pid) is running..."
        return $retval
    else
        echo "$prog is stopped"
        return $retval
    fi

}

status_q() {
    status >/dev/null 2>&1
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
# wijzig ook de regel hieronder
        status
        ;;
  restart|force-reload)
        stop
        start
        ;;
[...]

Bewaar het bestand. Nu ziet de status query er bekend uit:

# service sickbeard start
Starting sickbeard:                                        [  OK  ]
# service sickbeard status
sickbeard (pid 5022) is running...

CouchPotato

Het installeren van CouchPotato (CP) gaat net als bij Sickbeard via Git. Installeer de applicatie op dezelfde manier. De rest van de configuratie is grotendeels hetzelfde als bij Sickbeard.

Installatie

Installeer CP in /usr/share

# cd /usr/share

Download CP van Git source

# git clone https://github.com/RuudBurger/CouchPotatoServer.git

Voorbeeld:

# git clone https://github.com/RuudBurger/CouchPotatoServer.git
Initialized empty Git repository in /usr/share/CouchPotatoServer/.git/
remote: Counting objects: 42906, done.
remote: Total 42906 (delta 0), reused 0 (delta 0), pack-reused 42906
Receiving objects: 100% (42906/42906), 20.77 MiB | 2.19 MiB/s, done.
Resolving deltas: 100% (23557/23557), done.

Kopieer het Fedora opstart-script naar de systeem opstart directory, hernoem het en geef het execute rechten.

# cd && cp /usr/share/CouchPotatoServer/init/fedora /etc/init.d/

# mv /etc/init.d/fedora /etc/init.d/couchpotato

# chmod +x /etc/init.d/couchpotato

Configuratie

Wijzig het opstart-script

vi /etc/init.d/couchpotato

Zorg dat de regels 26 t/m 29 er als volgt uit zien

## Edit user configuation in /etc/sysconfig/couchpotato to change
## the defaults
username=${CP_USER}
homedir=${CP_HOME}
datadir=${CP_DATA}
pidfile=${CP_PIDFILE}

Sla het gewijzigde bestand op.

Maak nu een nieuw service configuratiebestand en vul deze met inhoud specifiek voor jou configuratie. Kopieer en plak onderstaande in PuTTY. Let op: Pas de regel met “host=” aan!

cat << _EOF > /etc/sysconfig/couchpotato
# CouchPotato service configuration

# run CouchPotato as
CP_USER=nzbuser
CP_HOME=/usr/share/CouchPotatoServer
CP_DATA=/home/nzbuser/.couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid

# gui address, eg: \${protocol}://\${host}:\${port}/couchpotato/
protocol=http
host=192.168.x.x   #vervang door eigen ip adres, example host=mymachine
port=5050          #example port=5050
_EOF

Start de CP service

# service couchpotato start
Starting couchpotato:                                 [  OK  ]

Om de Couchpotato daemon automatisch te starten bij het booten van de server:

# chkconfig couchpotato on

Bezoek met een web browser de CP beheerpagina, http://192.168.x.x:5050 (vervang door eigen ip adres) om CP verder in te stellen.

Het instellen van CouchPotato wordt niet in deze handleiding besproken.

Headphones

Wat CouchPotato is voor films, is Headphones voor muziek. In combinatie met SABnzbd of NZBGet zoekt en download hij muziek zodra het op usenet beschikbaar is.

De installatie van Headphones is ook hier weer gelijk aan die van Sickbeard en CouchPotato.

Installatie

Voor onderstaande twee commando’s uit om Headphones van Git te downloaden naar de directory /usr/share.

# cd /usr/share
# git clone https://github.com/rembo10/headphones.git headphones

Klaar alweer. Headphones staat nu Geïnstalleerd in directory /usr/share/headphones. Op naar de configuratie.

Configuratie

Maak een nieuw opstartscript (de inhoud is op basis van Sickbeard). Kopieer en plak onderstaande in PuTTY.

# vi /etc/init.d/headphones
#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          Headphones
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts Headphones
# Description:       starts Headphones
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source headphones configuration
if [ -f /etc/sysconfig/headphones ]; then
        . /etc/sysconfig/headphones
fi

prog=headphones
lockfile=/var/lock/subsys/$prog

## Edit user configuation in /etc/sysconfig/headphones to change
## the defaults
username=${HP_USER}
homedir=${HP_HOME}
datadir=${HP_DATA}
pidfile=${HP_PIDFILE}
nice=${HP_NICE}
##

pidpath=`dirname ${pidfile}`
options=" --daemon --nolaunch --pidfile=${pidfile} --datadir=${datadir}"

# create PID directory if not exist and ensure the headphones user can write to it
if [ ! -d $pidpath ]; then
        mkdir -p $pidpath
        chown $username $pidpath
fi

if [ ! -d $datadir ]; then
        mkdir -p $datadir
        chown $username $datadir
fi

start() {
        # Start daemon.
        echo -n $"Starting $prog: "
        daemon --user=${username} --pidfile=${pidfile} ${nice} python ${homedir}/Headphones.py ${options}
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $lockfile
        return $RETVAL
}

stop() {
        echo -n $"Shutting down $prog: "
        killproc -p ${pidfile} python
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $lockfile
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $prog
        ;;
  restart|force-reload)
        stop
        start
        ;;
  try-restart|condrestart)
        if status $prog > /dev/null; then
            stop
            start
        fi
        ;;
  reload)
        exit 3
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
        exit 2
esac

Sla het bestand op, voeg daarna execute rechten toe.

# chmod +x /etc/init.d/headphones

Maak een service configuratiebestand voor Headphones. Kopieer en plak onderstaande in PuTTY.

cat << _EOF > /etc/sysconfig/headphones
# Headphones service configuration

# run Headphones as
HP_USER=nzbuser
HP_HOME=/usr/share/headphones
HP_DATA=/home/nzbuser/.headphones
HP_PIDFILE=/var/run/headphones/headphones.pid

# gui address, eg: \${protocol}://\${host}:\${port}/couchpotato/
protocol=http
host=192.168.x.x   #vervang door eigen ip adres, example host=mymachine port=8181 #example port=8181
_EOF

Nu kan de Headphones service worden gestart

# service headphones start
Starting headphones:                                 [  OK  ]

Om de Headphones daemon automatisch te starten bij het booten van de server:

# chkconfig headphones on

Bezoek met een web browser de Headphones beheerpagina, http://192.168.x.x:8181 (vervang door eigen ip adres) om Headphones verder in te stellen.
Het instellen van Headphones wordt niet in deze handleiding besproken.

Post installatie stappen

Log verplaatsen

Verplaats het Headphones log naar de centrale plek op de server, /var/log.

# mkdir /var/log/headphones

# chown -R nzbuser:allusers /var/log/headphones

Log nu in op de beheeromgeving van Headphones en ga naar ‘Settings’ > ‘Log directory’ om naar de zojuist aangemaakte directory te verwijzen. Sla op en herstart Headphones om de nieuwe log locatie actief te maken.
Verwijder nu de oude log directory:

# rm -fr /home/nzbuser/.headphones/logs

Spotweb

Spotweb is een website. Een website die een overzicht toont van posts op nieuws-servers (usenet). Je kan deze Spotweb website zelf lokaal hosten. Zodoende kan het, binnen je eigen LAN, een bron zijn voor je usenet zoekacties. Het overzicht van posts moet regelmatig ge-update worden.

Spotweb is een web-app welke je vanuit de GitHub direct kan downloaden. Git heb je in de vorige stap al gïnstalleerd, dus je kan direct aan de slag door Spotweb te downloaden.

Website hosten

Websites binnen ClearOS kunnen worden aangemaakt met behulp van Flexshares. Ga in de Webconfig naar ‘Server‘ > ‘Flexshare‘ en klik op ‘Add‘ om een nieuwe website toe te voegen. Noem deze website 'spotweb'. Zie hieronder.

Add spotweb Flexshare

Wanneer de flexshare is aangemaakt ga dan naar het kopje ‘Web‘ en klik op ‘Edit‘ (zie hieronder).

Edit spotweb Flexshare

Kies vervolgens de juiste opties zoals hieronder. Sluit af met ‘Update‘.

Details spotweb Flexshare

De Spotweb website is nu geconfigureerd. Spotweb zelf kan nu naar de directory '/var/flexshare/shares/spotweb' gekopieerd worden.

Download eerst naar tijdelijke map /tmp.

# git clone https://github.com/spotweb/spotweb.git /tmp/spotweb

Voorbeeld:

Initialized empty Git repository in /tmp/spotweb/.git/
remote: Counting objects: 30534, done.
remote: Total 30534 (delta 0), reused 0 (delta 0), pack-reused 30534
Receiving objects: 100% (30534/30534), 15.45 MiB | 1.43 MiB/s, done.
Resolving deltas: 100% (16466/16466), done.

Eenmaal gedownload, kopieer de inhoud van deze directory naar de locatie waar ClearOS de website verwacht, /var/flexshare/shares/spotweb/.

# cp -r /tmp/spotweb/. /var/flexshare/shares/spotweb/

Zet als laatste de juiste rechten op de cache directory.

# chmod 777 /var/flexshare/shares/spotweb/cache/

Nu Spotweb nog even opruimen uit de /tmp/ directory.

# rm -fr /tmp/spotweb/

MySQL instellingen

Maak nu een nieuwe database en database gebruiker aan die Spotweb kan gebruiken. Log in op de database als ‘root’.

# mysql -u root -p
Enter password:

Maak spotweb database en gebruikersaccount aan.

mysql> CREATE DATABASE spotweb;

mysql> CREATE USER 'spotweb'@'localhost' IDENTIFIED BY 'jouw_password';

mysql> GRANT ALL PRIVILEGES ON spotweb.* TO spotweb @'localhost' IDENTIFIED BY 'jouw_password';

mysql> quit
Bye
#

Dat is het. Open nu een webbrowser en gaan naar de url
http://<ipadress of hostname>/flexshare/spotweb/install.php
om daar Spotweb verder te configureren.

Configuratie van Spotweb zelf valt buiten deze handleiding.

Klaar!

Dit is het einde van de handleiding.  Je hebt nu zelf een NAS server gebouwd, gebasseerd op ClearOS 6.6. De server is klaar voor gebruik. Windows clients kunnen nu aanloggen op het domein van de server. Mac OSX clients kunnen aanmelden middels de Open Directory tool in OSX. Zorg dan dat je de LDAP (zoals bijv. ldaps://hostname.domain.lan) gebruikt om tegen te praten.

Mocht het zo zijn dat er nog andere leuke of nuttige uitbreidingen op deze handleiding zich aandienen, dan zal ik deze op de website plaatsen.

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!

Opslagcapiciteit vergroten met LVM

Ik moet de capiciteit van een van mijn Logical Volumes (LV) vergroten. Het betreft het “main-root” filesystem, gemount aan "/". Deze begint flink vol te raken. Zie hieronder, 86% vol.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/main-root       4.8G  3.9G  683M  86% /
tmpfs                       3.9G     0  3.9G   0% /dev/shm
/dev/md0                    477M   70M  382M  16% /boot
/dev/mapper/backup-backup0  493G   70M  467G   1% /store/backup0
/dev/mapper/data-data0      1.8T  709G  1.1T  41% /store/data0
/dev/mapper/main-var         20G  348M   19G   2% /var
/dev/mapper/main-logs       7.8G   18M  7.4G   1% /var/logs

Gelukkig heb ik bij het aanmaken van partities een deel van het filesyteem ongemoeid gelaten, niet geformateerd en niet toegewezen aan een Volume Groep (VG).
Zie hieronder voor een overzicht van Physical Volumes (PV)

# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  data   lvm2 a--  931.02g     0
  /dev/sdb2  data   lvm2 a--  931.02g     0
  /dev/sdc1  backup lvm2 a--  500.00g     0
  /dev/sdd2  main   lvm2 a--   50.00g 15.00g
  /dev/sdd3         lvm2 ---   40.00g 40.00g

Ook te zien bij de VG’s.

# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  backup   1   1   0 wz--n- 500.00g     0
  data     2   1   0 wz--n-   1.82t     0
  main     1   4   0 wz--n-  50.00g 15.00g

De vrij toe te wijzen ruimte betreft 15GB. 10GB van deze ruimte ga ik toewijzen aan LV “main-root”.
Het Logival Volume is als volgt:

# lvs
  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  [...]
  root    main   -wi-ao----   5.00g
  [...]

Met het commando lvextend kan de LV worden vergroot.

# lvextend -L+10G /dev/main/root
  Size of logical volume main/root changed from 5.00 GiB (1280 extents) to 15.00 GiB (3840 extents).
  Logical volume root successfully resized

Nu is 10GB van de vrije ruimte vrij gemaakt voor het filesyteem /. Zie:

# lvs
  LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  backup0 backup -wi-ao---- 500.00g
  data0   data   -wi-ao----   1.82t
  logs    main   -wi-ao----   8.00g
  root    main   -wi-ao----  15.00g
  [...]

5.00g is nu 15.00g ofwel, 5GB wordt 15GB.
Deze 10GB extra ruimte moet nu aan het bestaande 5GB filesystem worden toegevoegd. Dat gebeurt met het commando resize2fs.

# resize2fs /dev/main/root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/main/root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/main/root to 3932160 (4k) blocks.
The filesystem on /dev/main/root is now 3932160 blocks long.

Na enkele seconden is de resize klaar. Uit controle blijkt dat we nu 10GB meer ruimte hebben op het “main-root” filesystem; 28% vrije ruimte tegen 86% eerst.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/main-root        15G  3.9G   11G  28% /
tmpfs                       3.9G     0  3.9G   0% /dev/shm
/dev/md0                    477M   70M  382M  16% /boot
/dev/mapper/backup-backup0  493G   70M  467G   1% /store/backup0
/dev/mapper/data-data0      1.8T  709G  1.1T  41% /store/data0
/dev/mapper/main-var         20G  348M   19G   2% /var
/dev/mapper/main-logs       7.8G   18M  7.4G   1% /var/logs

BAD PASSWORD: it is based on a dictionary word

Het kan zijn dat CentOS begint te zeuren over het feit dat een gekozen wachtwoord niet veilig genoeg is. Zie hieronder voor de melding.

# passwd
Changing password for user root.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:

Gezien ik graag zelf bepaal of een wachtwoord veilig is of niet, wil ik deze check omzijlen. Dit doe je door het bestand /etc/pam.d/system-auth aan te passen.
Maak een backup van het origineel, voor het geval dat…

# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

Open het bestand:

# vi /etc/pam.d/system-auth

Zoek naar de volgende regels:

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

en wijzig deze in:

#password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass

Sla het bestand op en probeer je wachtwoord nog eens te wijzigen. Nu lukt het wel!

Slaapstand harde schijven ESXi

Een S.M.A.R.T. daemon ingebouwd in ESXi 5.1 en later voorkomt dat harde schijven in slaapmodus (spindown) zullen gaan. Iedere 30 minuten scant de daemon de hd’s of deze nog gezond zijn. Het volgende commando deactiveert de SMART daemon. Login in de ESXi machine en voer uit:

/etc/init.d/smartd stop

Om ook te deactiveren na een herstart van de ESXi machine, voer het uit:

chkconfig smartd off

Een raid array onderbreken of stoppen

Het aanmaken van een raid array kan, afhankelijk van de partitiegrootte, een hele tijd duren. Mocht je iets vergeten zijn om in te stellen of wil je het proces om een andere reden onderbreken/afbreken, dan kan je de volgende commando’s gebruiken (mijn raid device is hier /dev/md0):

Toon welke block devices worden gebruikt in de raid device:

mdadm --detail /dev/md0

Stop de raid device:

mdadm --stop /dev/md0

Voor alle block devices waaruit je raid device is opgebouwd, doe:

mdadm --zero-superblock /dev/sdb1

Verwijder uiteindelijk je raid device:

mdadm --remove /dev/md0

Nu kan je je raid device herdefiniëren.