Dieses Tutorial bezieht sich auf fun_plug 0.5, welches veraltet ist und daher nicht mehr genutzt werden sollte! Dieses Tutorial ist daher ebenfalls veraltet! Bitte sehe hier nach den aktuellen Tutorials! Diese Anleitung ist gültig für das D-Link DNS-320, DNS-325 und DNS-345! Tutorials zu anderen Geräten sind hier zu finden. Auf dem NAS läuft ein kleines Linux, welches sich mittels einer Datei namens fun_plug erweitern lässt. Diese Datei wird bei jeden Start des NAS wieder aufgerufen und kann so zusätzliche Aufgaben erfüllen. Beispielsweise kann man so Dateien kopieren und Programme wie Webserver, SSH-Server und Rsync (für Backups) aufrufen.

Ich stelle nachfolgend meine persönlichen Erfahrungen beim Einsatz dieses fun_plugs sowie eine eingedeutsche Installationsanweisung bereit. Zudem weise ich darauf hin, dass ich nicht für eventuelle Schäden, Datenverluste oder andere Probleme haften werde. Das Verwenden dieses Artikels geschieht auf eigene Gefahr! Zunächst muss sichergestellt sein, dass das NAS über eine gültige Netzwerkkonfiguration ("Setup" -> “LAN”) mit Gateway & DNS-Server verfügt. Wird die IP-Adresse automatisch bezogen, ist das im Regelfall korrekt eingestellt. Nun muss man das fun_plug heruntergeladen wurden. Normalerweise bezieht man dazu die Datei fun_plug aus dem Repository  von fonz. Diese funktioniert aber nicht auf dem DNS-320, da dieses die Festplatten woanders einbindet. Ich habe diese Datei daher abgeändert und stelle diese bereit.

Für die Installation werden also zwei Dateien benötigt: fun_plug und fun_plug.tgz . Ich raten zum Lesen der README  mit einer ausführlichen Installationsanweisung.

Los gehts mit dem kopieren der beiden Dateien fun_plug und fun_plug.tgz auf das Volume_1 des NAS.

[caption id=“attachment_3780” align=“alignleft” width=“149” caption=“Telnet auf dem DNS-320”]![Telnet auf dem DNS-320] /upload/2010/12/3779-DNS-320-Telnet.png “Telnet auf dem DNS-320”Nach dem Reboot ist automatisch telnet aktiviert. Zunächst sollte man sich nun mit einem geeigneten Telnet-Programm (unter Linux einfach nur “telnet” mit korrektem Port, unter Windows verwende ich Putty  mit der Protokolleinstellung “telnet”) auf dem NAS einloggen. Bitte für den folgenden Schritt einfach mal das Bild links ansehen.

/ #

Wenn das obige erscheint, ist man eingeloggt und kann fortfahren. Wenn das nicht gleich erscheint, dann versuch mal 5784468 einzugeben. Wenn es dann noch nicht geht, hast du was falsch gemacht ;)

Als eine der ersten Aktionen wird nun /etc/shadow mittels pwconv erstellt. Das Passwort wird anschließend mittels “passwd” geändert:

1
2
pwconv
passwd

Wenn das neue Passwort zweimal eingegeben wurde, muss man den root-User noch aktivieren:

1
2
3
usermod -s /ffp/bin/sh root
mkdir -p /ffp/home/root/
usermod -d /ffp/home/root/ root

Nun kann man den Login nun direkt testen. Hierzu gibt man im Anschluss:

1
login

ein. Wenns nicht klappt, einfach die Prozedur ab “passwd” wiederholen.

Wenn alles geklappt hat, dann muss das Passwort in den internen Flash-Speicher gespeichert werden, damit die Änderungen an dem Passwort auch nach einem Reboot erhalten bleiben. Wenn du jemals das Passwort ändern solltest, musst du immer die store-passwd.sh aufrufen, um die Änderungen persistent zu speichern.

Beispielinstallation auf dem DNS-345

Die beim fun_plug.tgz mitgelieferte store-passwd.sh geht hier leider nicht, da das DNS-320/DNS-325/DNS-345 anders speichert. Daher auch hier ein Workaround:

1
2
wget http://wolf-u.li/u/172/ -O /ffp/sbin/store-passwd.sh
store-passwd.sh

Nun wird der SSH-Server aktiviert, da telnet bereits als sehr unsicher (v.a. aufgrund des unverschlüsselten Verkehrs) bekannt ist:

1
2
chmod a+x /ffp/start/sshd.sh
sh /ffp/start/sshd.sh start

Dies dauert einen Moment, während eine eindeutige Kennung für dein NAS berechnet wird.

SSH-Ausgabe auf dem DNS-345

Nun den Telnet-Client nicht schließen! Öffne gleichzeitig einen SSH-Client und versuche eine Verbindung zum NAS. Diese wird erfolgreich sein.

Nun kann der Telnet-Server deaktiviert werden:

1
chmod -x /ffp/start/telnetd.sh

Auf der Festplatte (Bei mir unter “/mnt/HD/HD_a2/”) ist ein Verzeichnis namens “ffp” angelegt worden. Darin befindet sich ein Unterverzeichnis “start”, in dem verschiedene Startdateien für diverse Dienste liegen. Typischerweise weisen davon nur wenige das Attribut X, also Executable. Nur diese werden auch beim Start des fun_plug ausgeführt. Ein paar Zeilen weiter oben habe ich “chmod +x sshd.sh” angeordnet. Diese Anweisung markiert eine Datei als ausführbar. Alle Dateien im Start-Ordner, die als executable markiert sind, werden vom fun_plug aufgerufen.

Weitere Software kann man nun einfach installieren:

1
2
3
4
5
mkdir /ffp/pkg/
cd /ffp/pkg/
wget http://wolf-u.li/u/173/ -O /ffp/pkg/updater.sh
chmod a+x /ffp/pkg/updater.sh
sh /ffp/pkg/updater.sh

Mit diesen Befehlen habe ich einen Ordner namens “pkg” im Ordner “ffp” erstellt. Zusätzlich wurde nun die Ordner “packages” (Fonz’ Repository) und “additional” (Uli’s Repository) angelegt, der alle kompilierten Pakete von Fonz und Uli enthält.

Nun kann man Pakete installieren. Entweder man installiert nun einzelne Pakete (Achtung abhängigkeiten beachten!):

1
funpkg -i paketname.tgz

Oder einfach alle, wozu ich rate. Dies geht mit den folgenden Befehlen:

1
2
3
4
funpkg -u /ffp/pkg/packages/*.tgz
funpkg -i /ffp/pkg/packages/*.tgz
funpkg -u /ffp/pkg/additional/*/*.tgz
funpkg -i /ffp/pkg/additional/*/*.tgz

Zusätzliche Pakete (z.B. mysql), welche im kompiliert habe, habe ich im Verzeichnis /ffp/pkg/additional abgelegt.

Ein Wort noch zur Paketverwaltung, das Programm funpkg bedient man wie folgt:

1
2
3
4
5
6
7
8
9
Copyright (c) 2008 Tobias Poschwatta

Install: funpkg -i
Reinstall: funpkg -I
Upgrade: funpkg -u
Remove: funpkg -r

Other options:
 -D  System root directory (default: /)

Bei Fragen einfach melden.