Tutorial

Der Linux-Server und seine Einsatzmöglichkeiten

27.06.2015 von David Wolski
Einen Linux-Server im heimischen Netzwerk zu betreiben, ist dank günstiger Mini-PCs kein aufwendiges Unterfangen. Die Leistung reicht je nach Hardware für eine ganze Reihe nützlicher und interessanter Server-Dienste.

Natürlich sind Arbeits-PCs und Notebooks mit einigermaßen aktueller Hardware leistungsfähig genug, nebenbei noch eine Server-Rolle mit ein paar Programmen aus dem Freeware- und Open-Source-Bereich zu erfüllen. Auch Windows leistet, etwas guten Willen seitens des Anwenders vorausgesetzt, ein paar Server-Dienste im Netzwerk. Prädestiniert ist Windows für Server-Aufgaben allerdings nicht. Zudem muss die Maschine stets eingeschaltet sein, soll sparsam sein, sich aus der Ferne administrieren lassen, und die verwendeten Software-Komponenten müssen sich schnell aktualisieren lassen: Das sind keine Disziplinen, in welchen Windows glänzt.


Linux-Server oder fertiges NAS?

Eine charmante, günstige Lösung sind heute Mini-PCs beziehungsweise Mini-Server, die unter Linux laufen. Als Server-Betriebssystem ist Linux die erste Wahl, da es als Unix-System auf Stabilität ausgelegt ist, auf sehr sparsamer Hardware mit ARM-Chips läuft und eine aktiv entwickelte Distribution durch häufige Updates sicher bleibt. Der Preis ist sozialverträglich oder gar null, da sich auch ein ausrangiertes Notebook oder Netbook als kleiner Server eignen kann. Der eigentliche Aufwand steckt in der Lernkurve für Einsteiger, ein Linux-System auf eigene Faust einzurichten. Aber warum überhaupt ein eigener Server im Netzwerk? Es gibt inzwischen auch fertige NAS-Systeme, die sich per Apps um einige Dienste erweitern lassen. Allerdings bleiben die Linuxbasierten NAS-Systeme verglichen mit einem frei konfigurierbaren Linux doch relativ geschlossen und unflexibel.

Ein weiterer Grund, ein Server-ähnliches System selbst aufzubauen, ist auch einfach die Lust am Selbermachen. Genau für solche experimentierfreudigen Anwender folgen jetzt einige praktische Szenarien, die ein Mini-Server mit Linux gut und ohne großen Aufwand meistert. Die kurzen Anleitungen orientieren sich an Debian/Ubuntu sowie Raspbian für den Raspberry Pi und setzen das installierte Linux-System und einige Grundkenntnisse in der Administration per Kommandozeile voraus.


Mit Samba ins Windows-Netz

Aufwand: Niedrig für eine einfache Freigabe, sehr hoch bei anspruchsvollen Szenarien.

Hardware-Anforderungen: Gering – läuft auch auf leistungsschwachen Systemen, dann aber entsprechend langsam. Windows-Freigaben stehen über das Netzwerkprotokoll SMB (Server Message Block) zur Verfügung. Mit Samba lässt sich SMB auch problemlos unter Linux nutzen. Damit Windows-Anwender im Netzwerk auf den Server per SMB zugreifen können, um dort das Home-Verzeichnis als Dateiablage zu verwenden, sind einige Vorarbeiten nötig, denn das Linux-System muss diese Freigaben als Samba-Server anbieten. Installieren Sie unter Debian, Ubuntu und Raspbian nach dem obligatorischen Befehl sudo apt-get update den Samba-Serverdienst mit diesem Kommando:

sudo apt-get install samba samba-common-bin

Seine Konfiguration legt Samba in der Datei „/etc/samba/smb.conf“ ab. Damit die Home-Verzeichnisse der Benutzer, wie etwa das Verzeichnis „/home/pi“, als passwortgeschützte Windows-Freigabe zur Verfügung stehen, ist nur eine kleinere Anpassung nötig. Öffnen Sie die Konfiguration mit

sudo nano /etc/samba/smb.conf

und gehen Sie im Abschnitt „Authentication“ zur dieser Zeile:

# security = user

Dort entfernen Sie das Kommentarzeichen „#“ vom Zeilenanfang, um die Option zu aktivieren. Weiter unten in der Datei im Abschnitt „[homes]“ setzen Sie die Zeile „read only = yes“ auf „read only = no“. Nun schalten Sie den gewünschten Benutzer noch für die Verwendung von Samba frei, auf dem Raspberry Pi beispielsweise mit diesem Kommando

sudo smbpasswd -a pi

Danach geben Sie zwei Mal das zukünftige Passwort für die Freigabe des Benutzers „pi“ ein. Die Samba-Konfiguration und den Dienst aktivieren Sie mit diesem Kommando:

sudo service samba reload

Von einem Windows-Rechner aus kommen Sie jetzt im Windows-Explorer mit der Adresse „\\[IP-Adresse]\[Benutzername]“ zum Server und können das Home-Verzeichnis des Benutzers, etwa „pi“ auf dem Raspberry Pi, mit dem vergebenen Passwort öffnen.

Während eine SSH-Verbindung mit der Socks-Option zum Server steht, werden die Browser-Anfragen über SSH umgeleitet, und der Proxy- Port steht auf dem „localhost“ zur Verfügung.

Dokuwiki: Infos im Intranet

Aufwand: Mittel. Verlangt einen laufenden Webserver mit PHP.

Hardware-Anforderungen: Bis zu einigen hundert Seiten hat Dokuwiki nur bescheidene Anforderungen.

Wer im Team arbeitet und Vorgaben oder allgemeine Infos wie Telefonlisten dokumentieren will, ist mit einem Wiki im Intranet gut bedient. Für kleine Teams oder für das Hausnetz eignet sich das PHP-Projekt Dokuwiki. Es verlangt einen Webserver wie Apache und PHP. Die Texte verwaltet Dokuwiki einfach in Form von Textdateien. Eine Versionsverwaltung gibt es aber trotzdem, zudem ein Benutzermanagement und eine Bildverwaltung.

Installieren Sie, falls noch nicht geschehen, zunächst Apache und PHP mit den benötigten PHP-Modulen auf dem Server. Unter Debian/ Ubuntu/Raspbian genügt dafür dieser Befehl:

sudo apt-get install apache2 php5 libapache2-mod-php5 php5-curl

Danach laden Sie Dokuwiki mit wget zunächst ins Home-Verzeichnis:

wget http://download.dokuwiki.org /src/dokuwiki/dokuwiki-stable.tgz

Unter Debian-Distributionen liegt das Webverzeichnis von Apache unter „/var/www“, und genau dahin entpackt dann der Befehl

sudo tar xzvf dokuwiki-stable.tgz -C /var/www

das Archiv (unter aktuellem Ubuntu ist „/var/ www/html“ das richtige Ziel). Das dort erstellte Unterverzeichnis mit Versionsangabe im Namen benennen Sie dann mit

sudo mv /var/www/dokuwiki-* /var/www/dokuwiki

nach „dokuwiki“ um und setzen die Zugriffsrechte für Apache über das Kommando

sudo chown -R www-data:www-data /var/www/dokuwiki

Jetzt können Sie das Wiki im Webbrowser weiter einrichten, das Administratorkonto erstellen, ferner den Wiki-Namen fest- und eine Zugangskontrolle anlegen. Verwenden Sie dazu im Browser die Adresse „http://[IP-Adresse]/ dokuwiki/install.php?l=de“, und folgen Sie dort den wenigen weiteren Schritten. Danach ist das Wiki einsatzbereit und kann mit Inhalten gefüllt werden.

Netz-Zwerg: Der Raspberry Pi als Mini-Server

Netz-Zwerg: Der Raspberry Pi als Mini-Server

Ein Mini-PC auf einer Platine muss bei einem Verkaufspreis von 35 Euro Kompromisse eingehen, selbst wenn sich wie beim Raspberry Pi eine gemeinnützige Stiftung um Entwicklung und Vermarktung kümmert. Auf dem Raspberry Pi macht sich dies mit einer vergleichsweise schlechten Input/Output-Leistung bemerkbar, da der permanente Speicher nicht als Flash-Chip auf der Platine sitzt, sondern auf einer vergleichsweise langsamen SD-Karte untergebracht ist. Gut schlägt sich dagegen die 10/100-Ethernet-Schnittstelle der Modelle B und B+. Obwohl Ethernet intern über den USB-Hub angeschlossen ist, erreicht der Raspberry Pi hier 90 bis 94 MBit/s, solange die CPU- und I/O-Auslastung niedrig bleiben. Als Server für PHP-Ungetüme wie Owncloud ist der Raspberry Pi nicht geeignet, da hier zu viel Rechenleistung und zu viele Datenträgerzugriffe für die schwächelnde Hardware anfallen.

Socks-Proxy: Unterwegs sicher ins Web

Aufwand: Sehr niedrig. Der SSH-Dienst gehört auf einem Linux-Server sowieso zur Grundausstattung. Socks-Proxy in Firefox: Während eine SSH-Verbindung mit der Socks-Option zum Server steht, werden die Browser-Anfragen über SSH umgeleitet, und der Proxy-Port steht auf dem „localhost“ zur Verfügung.

Hardware-Anforderungen: Niedrig – gut geeignet für einen Raspberry Pi. Das Protokoll SSH dient zur Anmeldung auf dem Server-System und zur Fernwartung aus dem eigenen Netzwerk. Ein SSH-Dienst sollte deshalb von Anfang an gleich bei der ersten Einrichtung installiert werden. Das gelingt in Debian/Ubuntu/Raspbian mit dem Kommando

sudo apt-get install openssh-server

Danach ist der Dienst auch gleich aktiv.

Sehr nützlich ist SSH auch als VPN-Ersatz, wenn auf dem Router eine Portweiterleitung auf dem SSH-Port 22 zum Server im lokalen Netzwerk geöffnet wird. Dann sind auch Anmeldungen über dieses verschlüsselte Protokoll aus dem Internet heraus möglich. Diese SSH-Verbindung kann dann unterwegs auch als Proxy-Server dienen, um den Netzwerkverkehr eines Browsers sicher verschlüsselt über den SSH-Server zu Hause zu schicken. Der Browser geht dann über den heimischen Anschluss ins Internet, und der eigentliche Verkehr bleibt so in unsicheren WLANs verborgen.

Für Windows benötigen Sie dazu den Terminal-Client Putty. In Putty gehen Sie zum Aufbau eines Tunnels nach der Konfiguration der Server-Adresse unter „Session“ auf „Connection > SSH > Tunnels“ und tragen unter „Source Port“ eine Portnummer für den Tunnel ein, etwa „8080“. Markieren Sie außerdem die Option „Dynamic“, und klicken Sie dann auf „Add“. Sie erhalten jetzt einen Eintrag unter „Forwarded Ports“.

Im Webbrowser, in unserem Beispiel Firefox, gehen Sie unter „Einstellungen > Erweitert > Netzwerk > Einstellungen“ auf „Manuelle Proxy-Konfiguration“ und geben unter „SOCKSHost“ den „localhost“ ein, als Port den in Putty eingerichteten Sourceport, hier „8080“. Sobald die SSH-Verbindung in Putty zum Server steht, geht der Netzwerkverkehr in Firefox verschlüsselt zum Server und erst von dort ins Web.

Aufwand: Niedrig, auch für Einsteiger machbar. Eine Konfiguration weiterer Filterregeln ist anspruchsvoller.
Hardware-Anforderungen: Mittel – ein Raspberry Pi (erste Generation) reicht nur für zwei bis drei Clients.

Privoxy filtert Werbe- Banner in Browsern und einigen Apps. Adresse und Ports des Servers müssen in den WLAN-Einstellungen angegeben werden.


Werbung auf Tablets und Smartphones zu filtern, ist nicht so einfach wie auf dem Desktop. Werbefinanzierte Apps holen ihre Banner direkt per HTTP vom Content-Netzwerk des Anbieters. Und für einige Browser wie Safari unter iOS gibt es keine Werbefilter als Plug-in. Über einen Umweg geht es bei einer lokalen Verbindung des Tablets und Smartphones aber doch, nämlich mit Hilfe eines filternden Proxy-Servers. Unter Linux hat sich hier das Programm Privoxy bewährt. Da es zudem kein cachender Proxy-Dienst ist, der erhebliche Datenmengen verwalten muss, läuft Privoxy auch auf einem Raspberry Pi der ersten Generation anständig.

Unter Debian, Ubuntu und Raspbian installieren Sie den Proxy-Dienst mit

sudo apt-get install privoxy

in der Kommandozeile. Die mitgelieferte Konfigurationsdatei des Diensts brauchen Sie anschließend nur in einem Detail anzupassen, damit der Proxy Verbindungen von Teilnehmern im lokalen Netzwerk annehmen kann. Öffnen Sie in der Kommandozeile des Linux-Systems mit dem Befehl

sudo nano /etc/privoxy/config

die Konfigurationsdatei von Privoxy. Die Datei ist zwar sehr umfangreich, aber größtenteils eine englischsprachige Dokumentation aller Optionen. Um Privoxy in Betrieb zu nehmen, brauchen Sie im Abschnitt 4.1 nur die Zeile

listen-address localhost:8118

nach

listen-address [IP-Adresse]:8118

zu ändern, wobei der Platzhalter „[IP-Adresse]“ für die die tatsächliche IP-Adresse des Servers im LAN steht, also etwa „listen-address 192.168.1.100:8118“. Danach starten Sie den Privoxy-Dienst mit

sudo service privoxy restart

neu und können jetzt auf den anderen Geräten im Netzwerk die IP-Adresse des Servers und Port 8118 als Proxy-Server angeben.

Qbittorrent-Client mit Weboberfläche

Aufwand: Mittel, erfordert die Einrichtung eines Cron-Jobs.
Hardware-Anforderungen: Mittel bis hoch, je nach Anzahl und Größe gleichzeitiger Downloads.

Das Programm Qbittorrent lässt sich dazu komfortabel über das Netzwerk mit einer Browser-Oberfläche bedienen.

Über Bittorrent werden nicht nur Inhalte verteilt, die das Urheberrecht verletzten. Auch Linux-Distributionen nutzen das Filesharing-Protokoll, da damit auch enorm große Downloads ohne Belastung eines einzigen Anbieter-Servers möglich sind. Außerdem überprüft Bittorrent die Checksumme heruntergeladener Dateien, was bei großen ISO-Dateien von Linux-Distributionen sehr nützlich ist. Downloads per Bittorrent können eine langwierige Sache sein, und ein Bittorrent-Programm ist deshalb gut auf einem sparsamen Server aufgehoben. Dazu ist das Programm Qbittorrent eine gute Wahl, da es auf dem Server im Hintergrund läuft und von anderen PCs im Netzwerk recht komfortabel im Browser bedient wird. Einen installierten Apache setzt Qbittorrent nicht voraus.

Unter Debian/Ubuntu/Raspian installieren Sie Qbittorrent in der Kommandozeile:

sudo apt-get qbittorrent-nox

Sie rufen das Programm mit qbittorrent-nox auf und müssen beim allerersten Mal die Begrüßungsmeldung einmalig mit „y“ bestätigen. Auf dem Server ist die Weboberfläche von Qbittorrent jetzt über die Adresse „[IPAdresse]: 8080“ erreichbar. Das voreingestellte Standardpasswort für den Benutzer „admin“ lautet „adminadmin“.

Damit Qbittorrent in Zukunft automatisch beim Systemstart ausgeführt wird, ist ein Eintrag im Taskplaner (Cron) nötig. Rufen Sie ohne sudo oder root-Rechte den Editor

crontab -e

auf, und tragen Sie die Zeile

@reboot /usr/bin/screen -d -m /usr/bin/qbittorrent-nox

ein. Diese Autostart-Möglichkeit mit der Variable „@reboot“ in der Cron-Tabelle funktioniert in allen verbreiteten Linux-Distributionen.


Mini-DLNA-Server für Bilder, Videos und Musik

Aufwand: Mittel, die Einstellungen werden per Konfigurationsdatei getroffen.

Hardware-Anforderungen: Bei Video-Streaming mittel bis hoch, je nach Auflösung.

Mit DLNA steht ein Standard zur Übertragung von Medien im lokalen Netzwerk zur Verfügung, den viele Geräte verstehen. Ein kleiner Server dafür ist mit Readymedia (Mini DLNA) unter Debian/Ubuntu/Raspbian schnell eingerichtet. Auf einem Raspberry Pi gilt es zu beachten, dass die Platine nicht zum Streaming von Videos im Full-HD-Format (1080 p) ausreicht. Installieren Sie das Programm mit

sudo apt-get install minidlna

und öffnen Sie dann die Datei „/etc/minidlna.conf“ im Texteditor Nano:

sudo nano /etc/minidlna.conf

Beginnen Sie mit der Definition der Verzeichnisse der Mediadateien für das Netzwerk. Dazu verwenden Sie die vorgegebene Zeile „media_ dir=[Pfad]“ nach folgendem Muster:

media_dir=A,/home/user/Musik
media_dir=P,/home/user/Bilder
media_dir=V,/home/user/Videos

Passen Sie diese Pfade zu den tatsächlichen Ordnern in Ihrem Home-Verzeichnis an. Das vorangestellte „A“ steht dabei für Audio, „P“ für Pictures und „V“ für Videos. Springen Sie dann in das untere Drittel der Konfigurationsdatei zu „#friendly_name=“. Entfernen Sie das Kommentarzeichen #, und geben Sie dem Server einen Namen für das lokale Netzwerk:

friendly_name=DLNA-Server

Empfehlenswert ist in einer Minimalkonfiguration auch dieser Eintrag:

inotify=yes

Nach einigen Sekunden ist der DLNAServer im Netzwerk per UPnP verfügbar und der Client, hier ein Android- Tablet, hat ihn bereits gefunden.

Damit berücksichtigt der Server selbständig im laufenden Betrieb, wenn es neue Mediendateien in den Ordnern gibt. Mit diesen wenigen Zeilen, die zwar nicht alle Fähigkeiten des Programms ausschöpfen, aber zum Einstieg die wichtigsten Optionen enthalten, ist Readmedia/ Mini DLNA einsatzbereit. Damit die Konfiguration übernommen wird, ist noch ein Neustart des laufenden Mini-DLNA-Servers mit sudo service minidlna restart erforderlich.

Mit Monitorix den Server im Blick

Aufwand: mittel
Hardware-Anforderungen: Niedrig – die Berechnung der Statistiken dauert selbst auf dem Raspberry Pi nur Sekunden.

Das Perl-Tool Monitorix zeigt Leistungsdaten zu einem Linux-System im Webbrowser und liefert dafür auch seinen eigenen Webserver.

Wenn ein Server in der Ecke schnurrt, sollte man hin und wieder einen Blick auf die Auslastung des Systems werfen. Dazu gibt es Monitoring-Programme, die relevante Leistungsdaten protokollieren und im Browser präsentieren. Für kleine Systeme ist Monitorix geeignet, zumal es auch auf Platinen wie dem Raspberry Pi gut läuft. Monitorix setzt keinen installierten Apache-Webserver voraus und bringt seinen eigenen Webserver mit. Dieser ist aber optional und lässt sich auch ausschalten, falls es doch schon einen Webserver gibt. Zur Installation auf Debian/Ubuntu/Raspbian sind auf der Kommandozeile mit dem Befehl

sudo apt-get install libdbi-perl libhttp-server-simple-perl lib mailtools-perl libmime-lite-perl librrds-perl libconfig-generalperl libwww-perl libxml-simpleperl rrdtool

zunächst einige Abhängigkeiten zu erfüllen. Bei der Abfrage der Daten für den eingerichteten Maildienst können Sie die Vorgaben übernehmen. Dann laden Sie Monitorix von www.monitorix.org/downloads.html herunter – am besten mit wget direkt auf den Zielrechner:

wget http://www.monitorix.org/monitorix_3.7.0-izzy1_all.deb

Überprüfen Sie aber auf der Webseite, wie der Dateiname der aktuellen Monitorix-Version lautet. Nun installiert der Befehl

sudo dpkg -i monitorix*

das heruntergeladene Paket. Monitorix läuft mit seinem Webserver auf Port 8080 und kann im lokalen Netz im Browser über die Adresse

[IP-Adresse]:8080/monitorix

abgefragt werden.

(PC-Welt/ad)