NAS-Konfigurationsanleitung

Transcription

NAS-Konfigurationsanleitung
1
D-LINK DNS-320/3231 NAS
Grund-Konfiguration
SOFTWARE-INSTALLATION
Überblick
Wie in den Installtionshinweisen beschrieben, werden mit dem Script '/ffp/pkg/updater.sh' die
von Fonz bzw. Uli bereit gestellten Pakete als '.tgz'-Archive nach '/ffp/pkg' herunter geladen
(Unterordner 'packages' bzw. 'additional') bzw. die bereits herunter geladenen Pakete
akualisiert. Damit sind die Pakete jedoch noch nicht installiert.
Illustrativ ist das Studium der Datei 'http://www.inreto.de/dns323/fun-plug/0.5/packages/
MANIFEST.txt', in welcher aufgeführt ist, welche Dateien aus den Archiven entpackt werden.
Dies wird in der eigentlichen Installation geschehen.
Software-Pakete
Einen Überblick über die zur Verfügung stehenden Software-Pakete gibt 'http://www.
inreto.de/dns323/fun-plug/0.5/PACKAGES.html' bzw. 'http://ffp.wolf-u.li/PACKAGES.txt'.
Vor der Installation stellt sich die Frage, welche Pakete überhaupt installiert werden sollen.
Für einmal wird hier das „alles oder nichts“-Prinzip belohnt: Alle! Grund für diese sehr gross­
zügige Haltung ist die Tatsache, dass unter den Paketen Abhängigkeiten gewisse bestehen, die
nicht anders erkennbar sind, als dass das Programm nicht funktioniert. Bspw. bedingt das Pa­
ket Python (eine Programmiersprache) folgende weiteren Pakete: readline, ncurses , bzip2 ,
openssl , readline , sqlite , zlib. Diese wiederum mögen weitere Abhängigkeiten aufweisen,
sodass am einfachsten alle Pakete installiert werden sollen2.
Die Pakete belegen ca. 100-150 MB an Festplattenplatz, was angesichts der TB-grossen Fest­
platten vernachlässigbar ist. Die Installation besteht – wie erwähnt – nur darin, Dateien aus
den jeweiligen Archiven zu entpacken und ans richtige Ort im Dateisystem zu kopieren. Der
beschränkte RAM-Speicher spielt erst eine Rolle, wenn die Programme ausgeführt werden.
Hierzu müssen Sie ins RAM geladen werden. Da man jedoch auf diesem kleinen Server-Sys­
tem i.d.R. keine allzu „schweren“ Applikationen laufen lassen wird, wird auch der RAM-Spei­
cher ausreichen.
Installation3
Die Paketverwaltung heisst unter FFP funpkg und weist folgende Optionen auf:
root@dns320:~# funpkg
funpkg
Copyright (c) 2008 Tobias Poschwatta <[email protected]>
Install:
Reinstall:
Upgrade:
Remove:
funpkg
funpkg
funpkg
funpkg
-i
-I
-u
-r
<packages...>
<packages...>
<packages...>
<packages...>
1 Diese Beschreibung gilt mit Ausnahme der veränderten Pfade für die Festplatten ('/mnt/HD/HD_a2/' auf dem
DNS-320 i. Ggs. zu '/mnt/HD_a2/' auf dem DNS-323) unverändert für beide Geräte.
2 In grösseren Distributionen wie bspw. Ubuntu mit Tausenden von Paketen greift ein solcher Ansatz natürlich
zu kurz, resp. zu weit. Dort deklariert jedes Software-Paket seinen Abhängigkeiten, und die Paketverwaltung,
bspw. Synaptic, sorgt dafür, dass diese Abhängigkeiten allesamt aufgelöst werden.
3 vgl. a. http://nas-tweaks.net/82/installing-and-uninstalling-packages-and-activation-and-deactivation-ofdaemons-in-fonz-fun_plug/#Downloading_packages
/home/stefan/_data/_PSMUE_AKTUELL/ksz_2011s/unterricht/einf/6 dns-320/Konfiguration.odt
2
Other options:
-D <path> System root directory (default: /)
Es ist sehr wichtig, dass bei der Installation von neuer Software stets alle nachfolgenden
Schritte der Reihe nach ausgeführt werden!
Sicherung der Konfigurationsdateien
Ausser bei einer erstmaligen Installation sollten Konfigurationsdateien gesichert werden, bevor
Software neu installiert oder aufdatiert wird. Andernfalls würden bestehende Konfigurations­
dateien ohne Rückfrage überschrieben werden, und die darin enthaltenen Einstellungen wären
verloren.
Laden Sie mein Script unter http://forum.dsmg600.info/viewtopic.php?pid=41167#p41167
herunter, welches vor dem eigentlichen Update alle möglicherweise betroffenen Konfigura­
tionsdateien in einem Unterordner von '/ffp/etc/' sichert.
Update der bestehenden Software
Es ist von besonderer Wichtigkeit zuallererst, funpkg selber zu updaten. Danach werden alle
bestehenden Software-Pakete aufdatiert:
cd /ffp/pkg/
funpkg -u packages/funpkg*.tgz
funpkg -u packages/*.tgz
funpkg -u additional/*/*.tgz
Bei der ersten Durchführung werden somit alle Pakete aufdatiert, welche zur Grund­
installation von FFP gehören. Die weiteren werden nun im nächsten Schritt behandelt.
Der eigentlicher Installationsschritt
Installation
Nun können herunter geladene Pakete installiert werden:
cd /ffp/pkg/packages
funpkg -i <Paketname>.tgz
Sollen mehrere Pakete installiert werden, kann man die einzelnen Paketnamen hinter ein­
ander angeben. Nachdem das 'updater.sh'-Skript ausgeführt wurde, kann man folgender­
massen alle herunter geladenen Pakete installieren:
cd /ffp/pkg/
funpkg -i packages/*.tgz
funpkg -i additional/*/*.tgz
Ebenso natürlich für allfällige weitere Verzeichnisse mit Software-Paketen.
Upgrade
Sollen alle installierten Pakete aufdatiert werden, verwendet man
cd /ffp/pkg/
funpkg -u packages/*.tgz
funpkg -u additional/*/*.tgz
Nach der Installation (wichtig)!
Jetzt könnte noch schief gehen, dass bei einem Upgrade von OpenSSH das Start-Script
'/ffp/start/sshd.sh' wieder im Grundzustand installiert wurde. Im Grundzustand ist es als nichtausführbar markiert, weswegen bei einem Neustart der SSH-Server nicht starten würde, und
somit kein Zugriff via SSH möglich wäre.
Aus diesem Grund muss überprüft werden, dass ls -l /ffp/start/sshd.sh bei den Da­
teiberechtigungen folgende Ausgabe liefert: -rwxr-xr-x 1 root root
Nötigenfalls sind die „executable“-Rechte mittels chmod a+x /ffp/start/sshd.sh wieder
herzustellen.
/home/stefan/_data/_PSMUE_AKTUELL/ksz_2011s/unterricht/einf/6 dns-320/Konfiguration.odt
3
BENUTZER, PASSWÖRTER
Zusätzlicher Benutzer
Der Benutzer 'root' sollte prinzipiell sehr zurückhaltend eingesetzt werden. Was nicht mit
Root-Berechtigung ausgeführt werden kann, soll von einem nicht-privilegierten Benutzerkonto
aus erledigt werden. Unter Ubuntu ist das 'root'-Konto bspw. sogar deaktiviert, was auf einem
Desktop-System durchaus sinnvoll ist. Denn dort wird ja hauptsächlich mit Anwender-Softwa­
re gearbeitet. Auf einem Server-System wie dem NAS hingegen erledigt man häufig adminis­
trative Arbeiten, wozu meistens Root-Rechte benötigt werden. Trotzdem gehört es zum guten
Stil, sich möglichst nicht als 'root' anzumelden, sondern nötigenfalls mit sudo vorübergehend
Root-Rechte zu erlangen.
Führt man den Befehl root@dns320:~# useradd -m <USER> aus, kommt möglicherweise die
Fehlermeldung useradd: unknown GID 1000. Diese Fehlermeldung deutet darauf hin, dass mit
der „Group ID“ etwas nicht stimmt. In der Tat werden durch useradd folgende Einträge neu
erstellt:
/etc/passwd: <USER>:x:1001:1001::/home/<USER>:/ffp/bin/sh
/etc/group: <USER>:x:1001:
/etc/shadow: <USER>:!:15017:0:99999:7:::
Der Benutzer 'squeezecenter' wird vom Grundsystem angelegt und betrifft den UPnP AV
Medien-Server. Zu diesem Benutzer wird jedoch keine eigene Gruppe angelegt, wie der Ver­
gleich der beiden Dateien zeigt. Daher rührt die Fehlermeldung, welche somit den soeben
angelegten Benutzer nicht tangiert.
Home-Verzeichnis
Der soeben angelegte User benötigt noch ein eigenes Home-Verzeichnis für seine Dateien.
Dieses sollte auf keinen Fall unter '/home/' angelegt werden. Denn dieser Speicherbereich liegt
im fest eingebauten Grundsystem und hat eine Kapazität von einigen wenigen MB (vgl. die
Ausgabe von df -h). Stattdessen sollte das Home-Verzeichnis auf die Festplatte gelegt werden.
root@dns320:~# mkdir -p /mnt/HD/HD_a2/home/<USER>
root@dns320:~# chown -R <USER>:<USER> /mnt/HD/HD_a2/home/<USER>
root@dns320:~# usermod -d /mnt/HD/HD_a2/home/<USER> <USER>
Dabei wird das Verzeichnis erstellt und dem Benutzer sowie dessen Benutzergruppe zugeord­
net. Schliesslich wird es für als Home-Verzeichnis das Benutzerkonto registriert. Der enstpre­
chende Eintrag findet sich in '/etc/passwd'.
Auch für 'root'
Aus den genannten Gründen der Speicherkapazität ist es auch angeraten, mit dem Benutzer
'root' genaus zu verfahren.
Passwörter
Die „hash“W-Werte der Passwörter werden in der Datei '/etc/shadow' gespeichert. Standard­
mässig wird auf dem DNS-320 der reichlich veraltete DESW-Algorithmus verwendet, was sich
daran zeigt, dass die Passwortlänge auf maximal 8 Zeichen beschränkt ist. Besser sollte der
modernere MD5-Algorithmus verwendet werden, dessen Passwortlänge unbeschränkt ist.
Hierzu verwenden Sie chpasswd mit der Option '--md5':
root@dns320:~# chpasswd --md5
<USER>:<PASSWORD> [Enter]
root:<ROOT-PASSWORD> [Enter]
[Ctrl+D]
Hierbei werden Benutzername und Passwort getrennt durch Doppelpunkt eingegeben. Um die
Befehlseingabe zu beenden, verwenden Sie die Tastenkombination 'Ctrl+D'.
/home/stefan/_data/_PSMUE_AKTUELL/ksz_2011s/unterricht/einf/6 dns-320/Konfiguration.odt
4
Ein Vergleich der Einträge in '/etc/shadow' zeigt unter DES: <USER>:AI7iVMl5xMQcE, unter
MD5: <USER>:$1$fa9tS/4Q$2b2vo1FWCv1usbC/BvO8p0.
Zum Schluss müssen die Passwörter mittels store-passwd.sh persistent abgespeichert
werden.
Kurze Erläuterungen zu den Passwort-“hashes“
Passwörter werden nicht eigentlich verschlüsselt, sondern ge-“hashed“4. Der Unterschied be­
steht darin, dass ein verschlüsseltes Passwort mit dem geeigneten Schlüssel wieder ent­
schlüsselt werden könnte. Das ist bei „hashes“ prinzipiell nicht der Fall. Eine „hash“-Funktion
ist i.d.R. nicht umkehrbar. D.h. es ist durchaus denkbar, dass zwei verschiedene Passwörter
denselben „hash“-Wert liefern. Mit einer hinreichend grossen Anzahl möglicher „hash“-Werte
ist jedoch die Wahrscheinlichkeit, dass man auf einen solchen Fall trifft, äusserst gering.
Die kurze Passwortlänge unter DES ist kein so grosses Problem, wie man auf den ersten
Blick annehmen könnte. Denn es wird nicht allein das Passwort ge-“hashed“. Stattdessen wird
eine zufällig gewählte Ergänzung, das sog. „salt“, zum Passwort hinzu genommen. Deshalb
liefert dasselbe Passwort unterschiedliche „hash“-Werte. – Probieren Sie das selber aus!
root@dns320:~# chpasswd
<USER>:<PASSWORD> [Enter]
[Ctrl+D]
# ohne --md5!
# das ursprüngliche Passwort
In '/etc/shadow' findet man nun bspw. <USER>:6AjJ4aWI23eOI, mithin also einen ganz anderen
Eintrag als den obigen für dasselbe Passwort.
Dasselbe gilt für MD5. Probieren Sie das ebenfalls aus! Man findet bspw.
<USER>:$1$jK2Px/o/$5KVISZTeELnylMjSb.hx4.. Dabei zeigt das einleitende $1$ übrigens an,
dass der „hash“-Wert mit dem MD5-Algorithmus berechnet wurde. Eine weiterführende
Diskussion wird im Modul Kryptographie geführt werden.
Shell
Neu angelegte Benutzer erhalten standardmässig '/bin/sh' als Shell zugeteilt, wie man
'/etc/passwd' entnimmt. Schaut man sich diese genauer an, ...
root@dns320:~# ls -l /bin/sh
lrwxrwxrwx 1 root root 7 May 17
2010 /bin/sh -> busybox
findet man, dass es sich in der Tat um BusyBox handelt.
BusyBox
BusyBox vereint in einer einigen kleinen Datei die meisten ist ein Computerprogramm, Dienst­
programme, die man auf einem GNU/Linux-System erwartet. Wegen seiner geringen Grösse
wird BusyBox gewöhnlich in „embedded“ Linux-Systemen genutzt. In der Tat benötigt
'/bin/busybox' ca. 310 KB Plattenspeicher:
root@dns320:~# ls -l /bin/busybox
-rwxr-xr-x 1 root root 310204 Nov 17 03:47 /bin/busybox
BusyBox v1.12.1 implementiert zurzeit 225 Befehle, darunter bspw.
chmod, chown, cp, dd, echo, egrep, fdisk, grep, ifconfig, kill, ln, ls, mkdir,
more, mount, mv, ping, ps, pwd, rm, rmdir, su, telnet, top, traceroute,
umount, vi, watch, wc, wget, which, who, whoami
Man beachte insbesondere, dass more anstatt des gewohnten less verwendet wird, und dass
als Editor einzig vi zuf Verfügung steht. Die vollständige Liste wird beim Aufruf von busybox
angezeigt. Es bleibt anzumerken, dass Busybox die Befehle nicht mit allen Optionen imple­
mentiert. Stattdessen finden sich nur die wichtigsten, wie sie typischerweise in einem „embed­
ded system“ zur Anwendung kommen. Klarerweise ist ein solches System nicht darauf ausge­
legt, dass ein Benutzer effektiv damit arbeitet. Stattdessen geht es dort vor allem darum, dass
Scripts abgearbeitet werden können.
4 von engl. „to hash“ = zerhacken; vgl. „hash browns“
/home/stefan/_data/_PSMUE_AKTUELL/ksz_2011s/unterricht/einf/6 dns-320/Konfiguration.odt
5
Wahl der Shell
Aufgrund ihrer Ausrichtung ist Busybox keine besonders komfortable Shell. Die gewohnte
BASH ist viel besser geeignet, wenn ein Benutzer damit arbeiten soll. Mithin wird man für die
Benutzer auf dem DNS-320 diese Shell wählen, nachdem sie durch Fonz' FunPlug bereit ge­
stellt wird. Man führt für alle Benutzer folgenden Befehl aus:
root@dns320:~# chsh -s /ffp/bin/bash <USER>
Danach findet man folgenden Eintrag in '/etc/passwd':
<USER>:x:1001:1001::/home/<USER>:/ffp/bin/bash
/home/stefan/_data/_PSMUE_AKTUELL/ksz_2011s/unterricht/einf/6 dns-320/Konfiguration.odt