Raspberry Pi als Datei- und Drucker-Server

Aus LinuxUser 12/2013

Raspberry Pi als Datei- und Drucker-Server

© binkski, 123RF

Zentrallager

Dank seines geringen Stromverbrauchs eignet sich der RasPi optimal für den Einsatz als rund um die Uhr laufender Home-Server. Dabei lässt er sich innerhalb kürzester Zeit sehr flexibel an die eigenen Wünsche anpassen.

Selbst Privathaushalte sind heutzutage vernetzt: Über das lokale Wireless-Netz tauschen nicht nur die Desktop-PCs von Familien- oder WG-Mitgliedern untereinander Daten aus, sondern auch Tablets und Smartphones interagieren darüber. Da mutet es eher anachronistisch an, wenn man einen gemeinsamen Drucker nur nutzen kann, indem man einen USB-Stick mit den benötigten Dokumenten füllt und zum Drucker bringt. Selbst in Privatwohnungen haben sich deswegen inzwischen Print-Server durchgesetzt.

Doch mit welcher Lösung setzt man dies alles schnell, kostengünstig und im Bedarfsfall trotzdem flexibel auf? Dafür stellt der Raspberry Pi eine gute Lösung dar: Seine Anschaffungskosten kann man vernachlässigen, die Stromaufnahme bleibt gering. Die gewünschten Datei- und Druckdienste konfigurieren Sie mit wenig Zeitaufwand und einer handvoll Konsolenkommandos.

Grundlage

Laden Sie die neueste Version von Raspbian von http://www.raspberrypi.org/downloads herunter und flashen diese auf eine SD-Karte. Für die allerersten Konfigurationsschritte sollten Sie der Einfachheit halber den RasPi an einen Monitor anschließen. Beim ersten Booten von der frisch beschriebenen SD-Karte landen Sie in einem Dialog, der ein paar grundlegende Einstellungen anbietet. Sie können ihn zu einem späteren Zeitpunkt jederzeit erneut über den Konsolenbefehl sudo raspi-config aufrufen.

Bei jeder Raspbian-Neukonfiguration empfiehlt es sich, das Root-Passwort über den Menüpunkt change_pass zu ändern sowie den Speicherplatz der SD-Karte mittels des Punkts expand_rootfs komplett auszunutzen. Da Sie einen Server aufsetzen, ist jedoch auch der Punkt Boot Behaviour wichtig: Setzen Sie hier Boot straight to desktop nicht auf No setzt, verbraten Sie unnötig Ressourcen. Bei der Auswahl ssh rät es sich darüber hinaus an, Enable SSH-Server auszuwählen, damit Sie den RasPi von nun an “headless” nutzen können, also ohne Monitor.

Damit Sie wissen, unter welcher IP-Adresse der RasPi im LAN zu erreichen ist, geben Sie noch ifconfig ein und notieren die Angabe hinter inet addr:. Fahren Sie nun das Gerät herunter und platzieren Sie es an seinem künftigen Platz – beispielsweise neben dem Router, an den es dann mittels Netzwerkkabel angeschlossen wird. Ansonsten benötigt der RasPi nur noch ein Stromkabel zur Spannungsversorgung. Nach dem Einschalten des Raspberrys setzen Sie sich an einen Client im Netz und melden sich von dort aus auf dem Minicomputer ein:

$ ssh pi@192.168.2.129)

Die IP-Adresse in obigen Beispiel ersetzen Sie durch jene, die Sie eben als Ausgabe von ifconfig notiert haben. Falls Sie das Standard-Passwort des Benutzers pi geändert haben sollten, verwenden Sie dieses statt der Raspian-Vorgabe raspberry bei der Anmeldung.

Denken Sie auch daran, im Router des LANs einzustellen, dass dessen DHCP-Server dem RasPi von nun an immer dieselbe IP-Adresse zuteilen soll. Im den folgenden Beispielen gehen wir davon aus, dass die IP 192.168.2.129 lautet. Ersetzen Sie diese immer jeweils durch die in Ihrem LAN gültige.

Externer Speicher

Theoretisch könnten Sie für den File-Server ausschließlich den Platz auf der SD-Karte verwenden, von der auch das System bootet. Der dürfte allerdings in den meisten Fällen nicht ausreichen, insbesondere, wenn Sie auch Videos, Musik oder Backups ablegen möchten. Dieses Problem lösen Sie mit einem permanent angeschlossenen USB-Stick beziehungsweise einer externen USB-Festplatte.

Dazu formatieren Sie das externe Speichermedium mit einem von Linux unterstütztem Dateisystem wie Ext4. Nach dem Anstöpseln des Massenspeichers an den USB-Port des Raspberry Pi rufen Sie auf der Konsole dmesg auf. Dies liefert den aktuellen Message Buffer des Kernels zurück. Gegen Ende der Ausgabe finden Sie eine Zeichenkette des Strickmusters sda: sda1 (siehe Abbildung 1). Sie zeigt an, unter welchem Kürzel (in unserem Beispiel sda1) das Betriebssystem die Partition auf dem USB-Stick anspricht.

Abbildung 1: Das Kommando <code srcset=

dmesg hilft beim Finden des USB-Sticks.” width=”300″ height=”95″ /> Abbildung 1: Das Kommando dmesg hilft beim Finden des USB-Sticks.

Rufen Sie nun sudo mkdir /mnt/ExternalStorage auf sowie anschließend sudo nano /etc/fstab auf. In der Datei fstab tragen Sie die nun die zusätzliche Zeile aus Listing 1 ein, wobei Sie sda1 durch die Angabe ersetzen ist, die Sie vorhin nach der Eingabe von dmesg erhielten.

Listing 1

/dev/sda1   /mnt/ExternalStorage   ext4   defaults   0   0

Auf die Weise bindet Raspbian den externen Massenspeicher bei jedem Systemstart automatisch im Dateibaum unter /mnt/ExternalStorage/, sodass Sie bei den folgenden Konfigurationsschritten von der Existenz dieses Verzeichnisses ausgehen können. Damit später alle Dienste und Nutzer diesen Speicherbereich problemlos beschreiben und lesen können, führen Sie noch folgenden Befehl aus:

$ sudo chmod -R ugoa+rwx /mnt/ExternalStorage

Falls Sie statt eines USB-Sticks eine externe Festplatte verwenden, sollten Sie dafür sorgen, dass diese nicht zu viel Strom verbraucht – der RasPi selbst benötigt nur sehr wenig Energie. Hierbei hilft das Programm Hdparm. Tragen Sie hierzu in die Datei /etc/hdparm.conf die Zeile sudo hdparm -S 12 /dev/sda ein (und ersetzen Sie dabei gegebenenfalls /dev/sda durch den passenden Gerätenamen). Dieser bewirkt, dass nach 60 Sekunden ohne Zugriffe die Festplatte automatisch einen stromsparenden Spindown vornimmt. Die Zahl hinter dem Parameter -S ergibt, mit fünf multipliziert, die Anzahl Sekunden, die vergehen müssen, um dies auszulösen (in diesem Fall also 12 mal 5 gleich 60).

Nun gilt es noch Dienste für alle Übertragungsprotokolle zu installieren, welche die Nutzern im LAN verwenden. Handelt es sich um ein gemischtes Netzwerk aus Windows-, Linux- und Mac-OS-Rechnern handelt, bietet sich aus Kompatibilitätsgründen Samba an. Dazu installieren Sie zunächst einmal den Dienst und editieren anschließend dessen Konfigurationsdatei (Listing 2).

Listing 2

$ sudo apt-get install samba samba-common-bin
...
$ sudo nano /etc/samba/smb.conf

Verwenden die Rechner, die auf den RasPi zugreifen sollen, einen bestimmten Workgroup-Namen, passen Sie die Zeile workgroup = WORKGROUP entsprechend an. Für den Fall, dass Sie nicht generell jedem im LAN Zugriff auf den File-Server gestatten möchten, lässt sich die Authentifizierung ganz einfach aktivieren. Dazu suchen Sie die Zeile mit der Angabe security = user und löschen das Doppelkreuz, mit der diese auskommentiert wurde. Scrollen Sie nun an das Ende der Datei und fügen Sie die Zeilen aus Listing 3 an.

Listing 3

[public]
 comment = Public
 path = /mnt/ExternalStorage/
 valid users = @users
 force group = users
 create mask = 0660
 directory mask = 0771
 read only = no

Nun speichern Sie die Datei und starten anschließend den Dienst mit sudo /etc/init.d/samba restart neu, damit die Änderungen wirksam werden. Ein Benutzerkonto legen Sie nun zunächst einmal für die Shell an. Falls sich also beispielsweise die anderen Rechner mittels des Benutzernamens fileserver authentifizieren sollen, geben Sie sudo useradd fileserver -m -G users an und ändern das Shell-Passwort via sudo passwd fileserver an.

Mittels sudo smbpasswd -a fileserver teilen Sie dann dem Benutzer noch ein Samba-Passwort zu, mit dem nun der eigentliche Zugriff auf den Dienst erfolgt. Andere Rechner können jetzt in ihren jeweiligen Dateimanagern das LAN nach Netzlaufwerken durchsuchen und den Speicher des RasPi einbinden.

Alternativ lässt sich für Dateiübertragungen auch SFTP nutzen. Da Sie den SSH-Server bereits aktiviert haben, erfordert dies keine zusätzlichen Konfigurationsschritte: Die aktuelle Raspian-Version erlaubt bereits in der Grundkonfiguration SFTP-Übertragungen.

Backup

Um den RasPi-Server auch für Backups der Arbeitsdaten zu nutzen bietet sich Rsync an: Dieses Programm synchronisiert Daten zwischen zwei Netzwerkstandorten derart, dass es nur die Dateien mit einem neueren Zeitstempel überträgt – also diejenigen, die sich seit dem letzten Sync-Vorgang geändert haben. Da es sich um ein Shell-Kommando handelt, können Sie es bei Bedarf in einen Cron-Job einbinden. Installieren Sie Rsync auf dem RasPi und rufen Sie im Editor die Konfigurationsdatei für den Rsync-Daemon auf (Listing 4).

Listing 4

$ sudo apt-get install rsync
...
$ sudo nano /etc/rsyncd.conf

In der Regel enthält rsyncd.conf noch keinerlei Text. Sie fügen nun die Angaben aus Listing 5 ein. Diese bewirken, dass jeder aus dem IP-Bereich des heimischen LANs Synchronisationsvorgänge auf dem USB-Stick am RasPi vornehmen darf. Haben Sie in Ihrem Router einen anderen IP-Adressbereich als 192.168.2.0 für das LAN eingestellt, müssen Sie diese Angabe entsprechend anpassen. Folgender Befehl lädt anschließend alle Dateien und Unterverzeichnisse aus ~/workspace/* auf den RasPi hoch, die seitdem letzten Backup verändert wurden:

rsync -avz ~/workspace/* rsync://192.168.2.129/public

Listing 5

use chroot = true
hosts allow = 192.168.2.0/24
transfer logging = true
log file = /var/log/rsyncd.log
log format = %h %o %f %l %b
[public]
comment = Public
path = /mnt/ExternalStorage/
read only = no
list = yes
uid = nobody
gid = nogroup

Sollen nur bestimmte Anwender Backups vornehmen dürfen? Dann ergänzen sie die Datei rsyncd.conf noch um die Zeilen auth users=Backup (nur der User Backup darf Rsync benutzen) und secrets file=/etc/rsyncd.scrt (das Passwort für diesen Benutzer steht in der Datei /etc/rsyncd.scrt). Letztere müssen Sie dann nur noch anlegen und dort eine Zeile in der Form Backup:Passwort eintragen.

Printserver

An den zweiten USB-Port des Raspberry Pi schließen Sie nun einen Drucker an, damit alle LAN-Geräte ihre Ausdrucke über diesen absetzen können. Nach der Installation des Common Unix Print Servers Cups (Listing 6, Zeile 1) geben Sie diesen erst einmal für das Netzwerk frei (Zeile 2). Durch den Zusatz --remote-admin lässt sich der Print-Server auch vom PC aus via Webbrowser verwalten. Zunächst müssen Sie dazu noch dem Standard-Benutzer pi den Druckerzugriff gestatten (Zeile 3).

Listing 6

$ sudo apt-get install cups
$ sudo cupsctl --share-printers --remote-printers --remote-admin
$ sudo usermod -a -G lpadmin pi

Anschließend geben Sie im Webbrowser auf einem PC die Adresse des RasPi ein, in unserem Beispiel https://192.168.2.129:631/admin. Nun erscheint die Konfigurationsoberfläche von Cups (Abbildung 2). Hier wählen Sie Drucker hinzufügen und geben anschließend das entsprechende Druckermodell an. Bei der Authentifizierungsabfrage tragen Sie die Benutzerdaten des Pi-Benutzers ein. Nun erscheint unter Lokale Drucker der via USB an den Raspberry Pi angeschlossene Drucker (Abbildung 3). Wählen Sie diesen aus und klicken Sie auf Weiter.

Abbildung 2: Den Druckerdienst Cups verwalten Sie via Webbrowser auch aus der Ferne.

Abbildung 2: Den Druckerdienst Cups verwalten Sie via Webbrowser auch aus der Ferne.

Abbildung 3: Den an den RasPi angeschlossene Drucker finden Sie unter dem Punkt <code srcset=

Lokale Drucker.” width=”300″ height=”149″ /> Abbildung 3: Den an den RasPi angeschlossene Drucker finden Sie unter dem Punkt Lokale Drucker.

Im folgenden Konfigurationsschritt geben Sie die URI für den Drucker an. Diese hängt von dessen Hersteller und Modell ab. Über den auf der Seite angegebenen Hilfe-Link Netzwerk Drucker finden Sie die richtige URI heraus. Nach einem Klick auf Weiter müssen Sie noch einen Namen für den Drucker vergeben sowie eine Beschreibung für dessen Standort eintippen. Dann wählen Sie das Kästchen Diesen Drucker freigeben aus und klicken schließlich auf Weiter. Nun wählen Sie noch einmal den konkret verwendeten Druckertyp aus, damit auch intern der richtige Treiber Anwendung findet. Ein Mausklick auf Drucker hinzufügen schließt die Konfiguration ab.

Möchten Sie den Drucker auch von einem Windows-Rechner aus benutzen, gilt es die die Samba-Konfiguration entsprechend anzupassen. Dazu öffnen Sie erneut die Datei /etc/samba/smb.conf, löschen die auskommentierenden Strichpunkte vor den Zeilen printing = cups sowie printcap name = cups und starten Samba mit sudo /etc/init.d/samba restart neu. Auf Windows-Systemen lässt sich der Drucker nun wie ein normaler Netzwerkdrucker hinzufügen.

Ausblick

Nun verfügen Sie über einen eigenen Datei- und Druckserver. Falls Sie irgendeinen Dienst nicht benötigen, sollten Sie diesen abschalten, um Ressourcen zu sparen und potenzielle Angriffstore zu schließen. Umgekehrt können Sie bei Bedarf weiter Server-Dienst hinzufügen. Da es sich bei Raspbian um ein vollwertiges Debian-Derivat handelt, stehen Ihnen hier alle Möglichkeiten offen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 12/2013 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben