Abstract:
Eine kurze Anleitung für die Aktivierung des SSH-Services auf der Buffalo-NAS.
Konfiguration:
Linkstation LS441DE mit installierter Firmware 1.84 (aktuell mit Stand: 31.07.2018)
- ACP Commander GUI (Siehe Link im Abschnitt Links)
Howto:
Frühere Versionen der Firmware haben noch einen Telnet-Server beinhaltet. Mit diesem ging die Aktivierung deutlich einfacher, da man mit dem ACP-Commander zuerst den Telnet-Server startete und dann über Telnet den SSH-Server konfigurieren konnte. EDIT: Der Telnetserver ist im busybox-Binary versteckt. Mehr dazu nachher. Mit dem ACP-Commander kann man nur zeilenweise Kommandos abgeben und bekommt Feedback. Also ist erst einmal nichts mit vi, nano oder joe - der gute alte sed kommt wieder zum Einsatz.
Starten des ACP-Commanders:
Nach dem Download der GUI kann das Programm gestartet werden: Entweder man nimmt das Package für die jeweilige Plattform oder die plattformunabhängige JAR.
Das Programm sucht eigenstänidig nach Linkstations im lokalen Netzwerk. Nachteil: Wenn keine gefunden wird, kann auch keine IP manuell eingegeben werden.
Mit dem Passwort des admin-Users kann man sich dann verbinden und Kommandos absetzen. Die Shell ist allerdings nicht interaktiv und daher kann man keinen Editor starten.
Linux liefert allerdings mit sed einen Kommandozeilentexteditor mit, der Dateien in solchen Umgebungen manipulieren kann.
Die Befehle:
First things first: Setzen des root-Passworts. Dafür entweder den ACP-Commander verwenden (set root pw) oder folgenden Befehl eingeben:
(echo newrootpass;echo newrootpass)|passwd
Anschließend den SSH-Server konfigurieren.
Skript auf ausführen setzen:
chmod 0755 /etc/init.d/sshd.sh
Port 22 einstellen. Wenn man einen anderen Port will, kann das zweite "22" durch eine andere Zahl ersetzt werden
sed -i 's/#Port 22/Port 22/g' /etc/sshd_config
Protokoll 2 der Sicherheit wegen
sed -i 's/#Protocol 2/Protocol 2/g' /etc/sshd_config
Root-Login zulassen. Kann auch auf "no" gestellt werden. Dann kann man sich mit einem andere in der Web-GUI erstellten User anmelden.
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/sshd_config
Strictmode ist ebenfalls wichtig für die Sicherheit
sed -i 's/#StrictModes yes/StrictModes yes/g' /etc/sshd_config
SFTP-Einstellungen
sed -i 's/\/usr\/lib\/sftp-server/\/usr\/local\/libexec\/sftp-server/g' /etc/sshd_config
Laut init.Skript wird der SSH-Server allerdings nur gestartet, wenn die Variable SUPPORT-SFTP in der Datei /etc/nas_feature auf 1 gesetzt ist. Das legt die Lösung nahe, die Variable in der Datei auf 1 zu setzen. Allerdings generiert die Firmware diese Datei bei jedem Start neu. Aus diesem Grund muss die entsprechende Zeile im Init-Skript abgeändert werden:
sed -i 's/"${SUPPORT_SFTP}" = "0"/"${SUPPORT_SFTP}" = "1"/g' /etc/init.d/sshd.sh
Ob die Änderung erfolgreich war, kann versucht werden, den SSH-Server zu starten:
/etc/init.d/sshd start
Sollte der Test erfolgreich sein, kann die NAS neu gestartet werden:
reboot
Installieren der Addons:
von der Website Buffalo-Central kann eine Datei mit ein paar zusätzlichen Binaries wie w, su oder joe geladen werden.
wget http://downloads.nas-central.org/Uploads/OldUploads/LS_Pro_temporary/Binaries/addons.tar
Auf der Linkstation LS441D wird zumindest eine zusätzlich library benötigt:
wget http://downloads.nas-central.org/Users/kaiten/libproc-3.2.6_arm9.tgz
tar -C / -xzvf libproc-3.2.6_arm9.tgz
Gratulation, die Linkstation wurde gerootet.
Telnet-Server
Den Punkt habe ich übersprungen, da ich den Telnet-Server telnetd nicht auf Anhieb gefunden habe.
Unter http://buffalo.nas-central.org/wiki/Open_Stock_Firmware wird beschrieben, dass der telnet-Daemon sich mit
/usr/sbin/telnetd
starten lässt. Das hat bei mir aber nicht funktioniert. Wenn ich allerdings
busybox telnetd
ausführe, läuft auf dem Port 23 der Telnet-Server.
Debian auf der Linkstation:
In einigen Berichten ist von der Installation von Optware oder der Installation eines Debian-Systems die Rede. Da dort allerdings die LS421D benutzt wurde, habe ich an dem Punkt mit dem SSH-Server aufgehört. Vielleicht habe ich bald die Zeit und die Muße, Debian auf der LS441D zu installieren.