Iomega Home Media Network Hard Drive
Beginnen will ich zunächst mit einer Abschrift des Beitrags Iomega HMNHD von md83 aus dem Kathi-Forum. Mit der Zeit werde ich dann meine eigenen Erfahrungen und Hinweise mit einarbeiten.
Bei der Iomega HMNHD (HMNHD = Home Media Network Hard Drive) handelt es sich um ein NAS, welches speziell für den „Consumer-Markt“ vorgesehen ist. Eigentlich wollte ich an der Kiste nicht basteln, aber das dauerhafte Laufen der HDD stört und das Fehlen einfachster Dienste wie NFS oder LDAP Authentifizierung verhindert die Nutzung in heterogenen Netzwerken. Die Platte soll einen Spindown machen, wenn es nichts mehr zu tun gibt. Daten sollen auch über NFS exportiert und Benutzer über LDAP authentifiziert werden können.
Nach langem Suchen im Internet habe ich endlich eine Seite gefunden, die beim Basteln hilft: NAS-Central Iomega Wiki
Noch zu bearbeiten:
Technische Parameter
Hardware
- CPU zzgl. Peripherie, SoC: Oxford Semiconductor OXE810(D)SE
- ARM926EJ-S mit 367 MHz
- SATA II Interface
- Lüfter Controller
- AES Ver- und Entschlüsselung in Hartware
- 10/100/1000 Ethernet Controller mit TSO
- USB 1.1 und 2.0 Host Controller
- 64 MB DDR2 SDRAM Hynix HY5PS121621C
- 1x 1000BASE-T Ethernet Transceiver IC+ IP1001
- 1x USB 2.0 Device
- 1x interne HDD Seagate Barracuda 7200.11 mit 1000 GB
- 1x interner 12V Lüfter 30mm Evercool EC3010L12EA (neue Seite)
- Mainboard:
- meines hat den OXE810SE, die nicht notwendige Dual-SATA-Variante DSE wurde wohl auch verbaut (siehe hier)
- kein vorbereiteter serieller Port erkennbar und damit leider nicht nachrüstbar
Iomega Wiki
- Serielle Schnittstelle anzapfen ( nur mit Lötarbeiten möglich )
sonstige Hackinfos
- SATA Boot (von OXE820 !!!)
Software
- U-Boot 1.1.2
- Kernel 2.6.24.4
- Debian 5.0.3 (Lenny)
U-Boot und Kernel liegen in einer Raw-Partition, genauer in der 3. primären Partition, welche wiederum direkt am Anfang der Festplatte genau 24.097 Blöcke umfasst.
Sicherheitslöcher
Berechenbare Session IDs
CVE-2009-2367: Das proprietäre Programm 'cgi-bin/makecgi-pro
' im Iomega StorCenter Pro generiert berechenbare Session IDs. Dies ermöglicht es einem Angreifer per Brut-force Attacke auf den Parameter 'session_id
' eine aktive Session zu übernehmen und die zugehörigen Privilegien zu erlangen. Mit sehr hoher Wahrscheinlichkeit wird im Iomage HMNHD die selbe Software genutzt wie auch im Iomega StorCenter Pro und des Szenario ist übertragbar.
Vergleichsprodukte
- WD MyBook WE (WDMBWE)
- MyBook World WDH1NC10000 (Dominic Radermacher)
Firmware erneuern
Gleich nach dem ersten Start-Up habe ich meine Firmware auf die Version 2.064 erneuert. Mittlerweile ist die Version 2.104 erschienen. Diese kann nach vorheriger Anmeldung (also auch Registrierung) bei Iomega hier heruntergeladen werden. Zu beachten ist, dass hierfür unbedingt die Version 2.063 installiert sein muss. Das steht alles bei Iomega zum Nachlesen. Der Upgrade erfolgt wie beschrieben über das Webinterface und ist in wenigen Minuten vollzogen.
Verfügbare Firmware Versionen:
Die GPL Quellen sind ebenfalls verfügbar (auch wenn etwas älter), ohne Registrierung:
Wiederherstellung
Sollte durch eine der folgenden Schritte die Iomega HMNHD unbrauchbar geworden sein, so muss man die verbaute SATA Festplatte ausbauen und den Inhalt der Partitionen von Hand wieder regenerieren.
Verfügbare Firmware Versionen:
Folgende Anleitungen werden für die Regenerierung benötigt:
Gerät rooten
Das Gerät kann nur über Webinterface bedient und konfiguriert werden. Aus den Open Source Quellen von Iomega ist ersichtlich, dass die erste serielle Schnittstelle mit einem getty-Login bedient wird. Auszug aus der /etc/inittab
:
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
Die Ausstattung der Hardware lässt aber keinen Zugriff auf die erste serielle Schnittstelle zu. Der erste Zugriff auf das Gerät muss über das Netzwerk erfolgen.
Aber Achtung:
Alle weiteren hier gezeigten oder verlinkten Hinweise führen zwangsläufig zum Verlust der Garantie. Ich lehne jegliche Verantwortung zu etwaigen Schäden, inkl. Sach- und Personenschäden, ab. Ich animiere mit dieser Seite ausdrücklich niemanden zum Verändern und Manipulieren seiner garantierten Gerätefunktionen. Jeder einzelne, also auch Sie, handelt selbst verantwortlich.
Telnetzugang
Dank des NAS-Central Iomega Wiki kann die Aktivierung von Telnet ganz bequem über das Webinterface ohne Ausbau der HDD erfolgen:
- neuste Version des Firmware Moduls home-media-telnet-2.063 herunterladen (ZIP Archiv) - es ist hier verfügbar — Achtung: ich hatte bereits auf die Firmware 2.064 gewechselt und so habe ich die im NAS-Central Iomega Wiki etwas weiter unten stehenden Hinweise für das aktuellere Firmware Modul enable_telnet.tgz.encrypted von hier beherzigt und dieses genutzt - das Entpacken entfällt dann
- entpacken des ZIP Archiv - ja es ist vermeintlich sehr sehr klein - es beinhaltet auch nur Änderungen an ein paar Konfigurationsdateien
- im Webinterface der Iomega HMNHD anmelden und die ausgepackten Datei im Firmware Updater benutzen
- die Iomega HMNHD wird dadurch einige Dateien verändern und dann neu starten - danach besitzt die Iomega HMNHD einen vollwertigen Telnet-Zugang
Das Passwort für root und den durch das Update neu angelegten Benutzer nascentral ist ioadmin123. Die Anmeldung über Telnet muss mit dem Benutzernamen nascentral erfolgen, da es root nicht gestattet ist, sich über Telnet anzumelden. Danach kann man mit 'su
' zu root werden.
Unmittelbar nach der ersten Anmeldung muss das Passwort geändert werden.
Mein Erfolg:
telnet iomega-hmnhd.domain.earth Trying 10.0.0.10... Connected to iomega-hmnhd.domain.earth. Escape character is '^]'. Debian GNU/Linux 5.0 iomega-hmnhd login: nascentral Password: ← ioadmin123 Linux iomega-hmnhd 2.6.24.4 #1 Mon Jun 1 11:21:53 MDT 2009 armv5tejl The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. nascentral@iomega-hmnhd:~$ su - Password: ← ioadmin123 root@iomega-hmnhd:~# _
Software nachinstallieren
Es empfiehlt sich den Midnight Commander noch nach zu installieren, um nun komfortabler zu basteln. Wer mag, kann auch einen in Bedienung bekannteren Editor als den 'vi
' installieren, z.B. 'nano
'.
Optware
Ein möglicher Weg wäre die Nutzung von Optware, einem Paketsystem der NSLU2-Linux Commune. Die Anleitung für die Iomega HMNHD findet sich im NAS-Central Iomega Wiki. Da es sich aber bei der Iomega HMNHD um eine vollwertige Debian Installation auf Festplatte mit reichlich Reserven im Root-Dateisystem handelt, habe ich mich für die Nutzung der Debian-Pakete entschieden.
Debian Pakete
Im NAS-Central Iomega Wiki findet man die wichtigsten Hinweise für die (Re-)Aktivierung des 'apt-get
' Systems von Debian. Wohl aufgrund meiner zuvor installierten Firmwareversion 2.064 und dem neueren Script zur Telnet Aktivierung habe ich dort benannte Probleme nicht erhalten. Es reichten folgende Schritte für die Installation des Midnight Commander aus.
apt-get arbeitsfähig bekommen (als root):
mkdir /var/lib/apt/lists mkdir /var/lib/apt/lists/partial mkdir /var/cache/apt/archives mkdir /var/cache/apt/archives/partial mkdir /var/lib/dpkg/updates mkdir /var/lib/dpkg/alternatives mkdir /var/lib/dpkg/info touch /var/lib/dpkg/status touch /var/lib/dpkg/available touch /var/lib/dpkg/diversions
Debian Repositories synchronisieren und aktualisieren (als root):
apt-get update apt-get upgrade apt-get install libc6 apt-get install debconf apt-get dist-upgrade
Midnight Commander installieren (als root):
apt-get install mc
Hinweise zur Paketinstallation
Bei der Installation einiger systemnaher Pakete wird es zu folgender Meldung kommen:
Configuration file `<directory>/<filename>' ==> File on system created by you or by a script. ==> File also in package provided by package maintainer. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : background this process to examine the situation The default action is to keep your current version. *** <filename> (Y/I/N/O/D/Z) [default=N] ? _
Hier sollte immer die Voreinstellung 'N' gewählt werden. Im Zweifel kann mit 'D' der Unterschied ermittelt werden und von Fall zu Fall entsprechend entschieden werden.
Beachte: Bei der Frage nach den Unterschieden in der Datei /etc/debian_version
sollte unbedingt die neue Version der Debian Distribution übernommen werden. Zum Zeitpunkt dieser Beschreibung hier war es der Wechsel von Version 5.0.3
(original von Iomega) auf 5.0.8
. Also mit 'D' prüfen und dann mit 'Y' übernehmen
SSH Zugang
Es empfiehlt sich, den Telnetzugang umgehend durch einen SSH Zugang zu ersetzen. Telnet überträgt Passwörter immer im Klartext über das Netzwerk. Mit geeigneten Hilfsmitteln wäre dieses bei einer etwaigen Nutzung eines WLAN allein nur durch „Zuhören“ zu erspähen. Im NAS-Central Iomega Wiki findet sich dazu diese kurze Anleitung, vorausgesetzt man hat sich für die Nutzung der Debian Pakete entschieden.
Installation als Root:
apt-get update apt-get install dropbear
Wahrscheinlich aufgrund der in Hardware gegossenen AES Unterstützung erfolgt die Generierung des RSA und besonders des DSS Host Schlüsselpaars ausgesprochen flott. Das habe ich auf flachbrüstigen Systemen auch schon wesentlich langsamer erlebt.
Um den gewohnten Benutzer nascentral auch für den SSH Zugang nutzen zu können, muss kontrolliert werden, dass in der Datei '/etc/shadow
' des Passwort für diesen Benutzer nicht leer ist! Das würde so aussehen:
/etc/shadow (zweites Feld ist leer)
nascentral::14517:0:99999:7:::
An diese Stelle muss unbedingt der Inhalt des zweiten Felds aus der '/etc/passwd
' kopiert werden (also das verschlüsselte Passwort aus der passwd
Datei). Grund hierfür ist, dass der SSH Daemon, Dropbear, ausschließlich nur gegen shadow
-Passwörter authentifiziert. Telnet hingegen nutzt nur die klassische passwd
Datei.
Nun funktioniert alles so wie hier:
ssh nascentral@iomega-hmnhd.domain.earth nascentral@iomega-hmnhd's password: ← ioadmin123 Linux iomega-hmnhd 2.6.24.4 #1 Mon Jun 1 11:21:53 MDT 2009 armv5tejl The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. nascentral@iomega-hmnhd:~$ su - Password: ← ioadmin123 root@iomega-hmnhd:~# _
PAM Nutzung ausgeschlossen
Leider bringt das Debian Paket von 'dropbear
' keine Unterstützung für Das unter Linux übliche Authentifizierungssystem PAM mit sich. Sollte man also (so wie ich) vorhaben, im weiteren Verlauf eine Authentifizierung über LDAP zu aktivieren, dann muss man den OpenSSH Server nutzen. Dieser bringt zwar im Gegensatz zu 'dropbear
' erheblich mehr Abhängigkeiten zu anderen „schwergewichtigen“ Bibliotheken mit sich, entspricht aber eher gängigen Standards wie PAM.
Installation als Root:
apt-get update apt-get install openssh-server
Achtung: Wenn zuvor 'dropbear
' installiert wurde, muss dieser natürlich noch vor der Installation des OpenSSH Server deinstalliert werden, als Root mit: apt-get purge dropbear
Telnet Zugang deaktivieren
Die Deaktivierung des Telnetzugangs kann nun im Anschluss erfolgen …
Systemerweiterungen
NFS Server
Für den Betrieb eines NFS Servers benötigt man entsprechende Unterstützung im Linux Kernel. Für den mit der originalen Firmware von Iomega ausgelieferten Linux Kernel wurde aber eine Konfiguration ohne NFS Unterstützung benutzt. Nach der Beschreibung aus dem NAS-Central Iomega Wiki muss der Kernel und die zugehörigen Kernel-Module ausgetauscht werden.
Aber Achtung:
Das hier beschriebene Vorgehen kann das Gerät in einen absolut unbrauchbaren Zustand versetzen. Sie handeln auf eigenes Risiko!
hier erst ein kurzer Mitschnitt — Details folgen:
su - cd /tmp wget http://downloads.iomega.nas-central.org/Users/Mijzelf/HMNHD/nfsd/uImage-nfs wget http://downloads.iomega.nas-central.org/Users/Mijzelf/HMNHD/nfsd/modules-nfs.tgz cd /lib/modules tar xvzf /tmp/modules-nfs.tgz rm 2.6.24.4-nfs/build rm 2.6.24.4-nfs/source dd if=/tmp/uImage-nfs of=/dev/sda bs=512 seek=300 reboot
su - apt-get install nfs-kernel-server nfs-common portmap
RSYNC Daemon
apt-get install rsync
Den Rsync Daemon auf die Nutzung durch den Internet Daemon einstellen, wobei folgende Zeile in /etc/default/rsync
geändert wird:
RSYNC_ENABLE=inetd
Nun den Internet Daemon für den RSYNC Dienst einrichten, wobei ich hier nur die Konfiguration des klassischen OpenBSD inetd
und nicht des moderneren xinetd
beschreibe. In der Datei /etc/inetd.conf
folgende Zeile ergänzen:
rsync stream tcp nowait root /usr/bin/rsync rsync --daemon
Alle gewünschten RSYNC Datenobjekte in der Datei /etc/rsyncd.conf
konfigurieren, so wie zum Beispiel für den vollen Zugriff auf das im HMNHD schon vorbereitete Backup Verzeichnis /nethdd/backup
:
uid = root gid = root read only = true transfer logging = false log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid [backup] comment = backup files path = /nethdd/backup read only = no list = yes
Nun erfolgt ein notwendiger Neustart des Internet Daemons, damit dieser seine neue Konfiguration nutzen und somit den RSYNC Dienst anbieten kann:
/etc/init.d/openbsd-inetd restart
LDAP Authenifizierung
noch mehr schreiben, hier nur die schlimmsten Infos:
sudo apt-get install libnss-ldap sudo apt-get purge nscd
Debian Bug report logs - #511750
Ubuntu Bug report logs - #387576
ln -sf /lib/nss_ldap.so /usr/lib/libnss_ldap.so ln -sf nss_ldap.so.1 /lib/libnss_ldap.so.2
http://wiki.debian.org/LDAP/PAM http://www.rjsystems.nl/en/2100-openldap-client.php
Links zu GPL Quellen
Iomega hat bisher nie den 2-stage Bootloader (U-Boot) als Quelle veröffentlicht. Es gibt aber einige Projekte, die sich damit auseinandergesetzt haben: