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