Synogear: Diagnose-Tools auf der Synology-NAS nutzen
Zu Diagnosezwecken kann es manchmal nötig sein, bestimmte Befehle auf der Synology auszuführen.
Diese muss man allerdings erst installieren. Dieser Artikel zeigt dir, wie du die Tools installierst und wieder entfernst.
Motivation
Neulich hab ich auf meiner Synology-NAS ungewöhnliche Festplattenaktivität beobachtet und wollte prüfen, wer alles gerade Aktivität verzeichnet. Im Ressourcen-Monitor unter "Verbundene Benutzer" kann ich in diesem Fall nichts erkennen, da die NAS nur von intern benutzt wird, d. h. der Übeltäter ist zwar in der Liste, ich weiß aber nicht wer.
lsof
to the rescue! Normalerweise ist die Sache einfach: Mit lsof
kann man sich alle geöffneten Dateien anzeigen lassen. Ein Blick in diese
Liste hätte meine Frage beantwortet.
Allerdings funktioniert das auf einer Synology-NAS nicht so einfach. Während jedes Linux-System mit lsof
out-of-the-box kommt,
bekommt man auf der Synology-NAS nur eine Fehlermeldung, dass es den Befehl nicht gibt:
admin@iris:~$ lsof
-sh: lsof: command not found
Diagnose-Paket installieren
Glücklicherweise kann man lsof
(und viele weitere Befehle) einfach nachinstallieren bzw. aktivieren.
Zuerst loggt man sich auf seiner NAS per SSH ein.
Wichtig: Die Diagnose-Tools können nur als root
benutzt werden.
Weder der Default-admin
(den Synology inzwischen empfiehlt, zu deaktivieren), noch ein anderer Administrator-Account funktionieren.
D. h. nach dem Login muss man mit sudo -i
auf eine Root-Shell wechseln.
Öffnet man die Root-Konsole zum ersten Mal, sieht man zusätzlich den obigen Hinweis à la "Mit großer Macht kommt große Verantwortung".
thehacker@iris:~$ sudo -i
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
root@iris:~#
Danach kann man mit dem Befehl synogear install
die Diagnose-Tools installieren:
root@iris:~# synogear install
download DiagnosisTool 3.0.1-3008 successfully
Die NAS installiert darauf hin ein Paket, was man fortan auch im Menü der Web-Oberfläche als "Diagnosis Tool" sieht. Im Gegensatz zu regulären Paketen ist hier weder der Paket-Name, noch seine UI übersetzt. Man kann das Tool zum Mitschneiden von Traffic benutzen. Für diesen Artikel ist das Paket selber aber nicht relevant.
Für uns interessant ist, dass nach der Installation des Pakets nun eine ganze Menge Befehle auf der Shell verfügbar sind.
Welche Befehle, kann man sich mit synogear list
einfach anzeigen lassen:
root@iris:~# synogear list
All tools:
addr2line eu-readelf ld pkill strings
addr2name eu-size ld.bfd pmap strip
ar eu-stack ldd ps sysctl
arping eu-strings log-analyzer.sh pstree sysstat
as eu-strip lsof pwdx tcpdump_wrapper
autojump eu-unstrip ltrace ranlib tcpspray
capsh file mpstat rarpd tcpspray6
c++filt fio name2addr rdisc tcptraceroute6
cifsiostat fix_idmap.sh ncat rdisc6 telnet
clockdiff free ndisc6 readelf tload
dig gcore nethogs rltraceroute6 tmux
domain_test.sh gdb nm sa1 top
elfedit gdbserver nmap sa2 tracepath
eu-addr2line getcap nping sadc traceroute6
eu-ar getpcaps nslookup sadf tracert6
eu-elfcmp gprof objcopy sar uptime
eu-elfcompress iftop objdump setcap vmstat
eu-elflint iostat perf-check.py sid2ugid.sh w
eu-findtextrel iotop pgrep size watch
eu-make-debug-archive iperf pidof slabtop zblacklist
eu-nm iperf3 pidstat sockstat zmap
eu-objdump kill ping speedtest-cli.py ztee
eu-ranlib killall ping6 strace
Von jetzt an funktioniert auch der lsof
-Befehl:
root@iris:~# lsof | head -n 10
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 9,0 4096 2 /
init 1 root rtd DIR 9,0 4096 2 /
init 1 root txt REG 9,0 313168 1143 /usr/sbin/init
init 1 root mem REG 9,0 51736 17731 /usr/lib/libnss_files-2.20-2014.11.so
init 1 root mem REG 9,0 1714384 17353 /usr/lib/libc-2.20-2014.11.so
init 1 root mem REG 9,0 97800 20603 /usr/lib/libpthread-2.20-2014.11.so
init 1 root mem REG 9,0 31688 16995 /usr/lib/librt-2.20-2014.11.so
init 1 root mem REG 9,0 39760 17161 /usr/lib/libnih-dbus.so.1.0.0
init 1 root mem REG 9,0 105896 20172 /usr/lib/libnih.so.1.0.0
Nachdem man fertig ist und die Shell mit exit
verlassen will, fällt auf, dass man immer
noch auf der Root-Shell ist. Man muss exit
ein zweites Mal eingeben, um die Root-Shell zu
verlassen und danach noch ein drittes Mal, um die Verbindung von der NAS zu trennen.
Das ist deshalb so, weil synogear install
uns in eine separate Shell bringt, die die
Diagnose-Befehle zur Verfügung hält. Sobald man diese verlässt, funktionieren die Befehle nicht mehr.
Wir können dies auch bestätigen, indem wir uns die Prozessliste als Baum ansehen. Im Auszug sehen wir:
8659 ? Ss 0:00 /usr/bin/sshd
7624 ? Ss 0:00 \_ sshd: thehacker [priv]
7633 ? S 0:00 \_ sshd: thehacker@pts/41
7634 pts/41 Ss 0:00 \_ -sh
7655 pts/41 S 0:00 \_ sudo -i
7662 pts/41 S 0:00 \_ -ash
8613 pts/41 S 0:00 \_ /bin/sh /usr/syno/bin/synogear install
8637 pts/41 S 0:00 \_ /bin/sh
10847 pts/41 R+ 0:00 \_ ps axf
Diagnose-Paket aktivieren
Braucht man die Diagnose-Tools ein weiteres Mal, so muss man erneut synogear install
eingeben.
Das Paket ("Diagnosis Tool") bleibt aber permanent auf der Web-Oberfläche sichtbar.
Mit synogear check
kann man dies prüfen:
root@iris:~# lsof
-ash: lsof: command not found
root@iris:~# synogear check
Tools are installed but not loaded yet. You can run this command to load it:
synogear install
root@iris:~# synogear install
root@iris:~# lsof | head -n 1
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Die Information "Tools are installed but not loaded yet." bedeutet also, dass das Paket grundsätzlich installiert ist, wir uns aber nicht auf der speziellen Shell befinden, die die Diagnose-Befehle anbietet.
Diagnose-Paket deinstallieren
Braucht man die Diagnose-Befehle gar nicht mehr, kann man sie mit synogear remove
komplett entfernen.
Dann verschwindet auch das "Diagnosis Tool"-Paket von der Web-Oberfläche.
Einer erneuten Installation mit synogear install
steht aber nichts im Weg.
Kommentare zu diesem Artikel
Schreib einen Kommentar zum Artikel
Vielen Dank für deinen Kommentar! :-)
Da alle Kommentare von Hand bearbeitet werden,
gedulde dich bitte, bis der Kommentar freigeschaltet wird.
Formular nicht richtig ausgefüllt.
Oops... da ist was schiefgelaufen :-(
Dein Kommentar konnte nicht gespeichert werden.
Bitte probier es später nochmal.