Home > Technik > Non-Admin SSH-Login bei der QNAP TS-209 Pro II

Non-Admin SSH-Login bei der QNAP TS-209 Pro II

11. Juli 2010 Kommentare

Secure Shell oder SSH bezeichnet sowohl ein Netzwerkprotokoll als auch entsprechende Programme, mit deren Hilfe man auf eine sichere Art und Weise eine verschlüsselte Netzwerkverbindung mit einem entfernten Computer herstellen kann. Die meisten QNAP-Geräte unterstützen diese Verbindungsmöglichkeit vom Werk aus. Bei der werksseitigen Installation vom SSH-Daemon auf den QNAP-Geräten ist es nur dem admin erlaubt sich zu verbinden, was ich persönlich für äußerst ungeschickt halte.

Da der root/admin jedoch alles auf dem System machen darf, sollte man, gerade wenn das System aus dem Internet erreichbar ist, sehr komplexe und sichere Passwörter wählen, um das System abzusichern. Eine andere Möglichkeit ist jedoch das deaktivieren des Root-Logins / Admin-Logins. Hierzu sollte man wie folgt vorgehen:

1. Austauschen des SSH-Daemons

Der installierte SSH-Daemon scheint von QNAP so modifiziert worden zu sein, dass er nur ein Login als admin zulässt. Um hier flexible zu sein muss Open-SSH installiert werden. Hierzu bedient man sich des ipkg-Systems, um das erforderliche Paket inkl. evtl. Abhängigkeiten zu installieren (vorher als admin via ssh anmelden).

admin@NAS ~] ipkg list | grep openssh

openssh - 5.1p1-1 - a FREE version of the SSH protocol suite ...
openssh-sftp-server - 5.1p1-1 - sftp-server only from a FREE ver...

[admin@NAS ~] ipkg install

Der neue SSH-Daemon wird im Verzeichnis /opt/sbin/ installiert und steht nun zur Verfügung. Um das System nun dazu zu bringen, den neuen Daemon zu benutzen wechseln wir in das Verzeichnis /usr/sbin/ und tauschen hier das Ursprungsbinary gegen das von Open-SSH aus (bzw. wir legen einen symbolischen Link an):

[admin@NAS sbin]# cd /usr/sbin/
[admin@NAS sbin]# ll sshd
-rwxr-xr-x    1 admin    administ   275.5k Nov 12 21:27 sshd*
[admin@NAS sbin]# mv sshd BACKUP.sshd.orig
[admin@NAS sbin]# ln -s /opt/sbin/sshd sshd
[admin@NAS sbin]# ll sshd
lrwxrwxrwx    1 admin    administ       14 Nov 27 14:44 sshd -> /opt/sbin/sshd*

Ab sofort sollte der neue SSH-Daemon von der NAS benutzt werden. Nun müssen wir die notwendigen Anpassungen am Konfigurationsfile vornehmen.

2. Anpassungen an der sshd_config

Das Konfigurationsfile für den SSH-Daemon finden wir im Verzeichnis /etc/ssh/

[admin@NAS sbin]# cd /etc/ssh
[admin@NAS ssh]# ll sshd_config
-rw-r--r--    1 admin    administ     3.0k Nov 27 22:45 sshd_config

Hier muß die Zeile abgeändert werden in der angegeben ist, dass nur der admin sich verbinden kann (was wir ja genau nicht wollen) und weiterhin sollten wir generell den Root-Zugang abschalten….also ändern wir wie folgt:

aus

"#PermitRootLogin yes"

machen wir

"PermitRootLogin no"

und aus der Zeile

"AllowUsers admin"

machen wir

"AllowUsers user1 user2 user3"

ACHTUNG! Es muss beachten werden, dass die User auch in der passwd existieren, d.h. es müssen gültige Benutzernamen sein! Weiterhin ist es sinnvoll entsprechende User-Home-Verzeichnisse anzulegen!

3. sshd_config auch nach Restart

Da die QNAP-Systeme nach einem Neustart den Ursprungszustand wieder herzustellen versuchen, müssen wir uns die sshd_config an eine Stelle kopieren, die nicht bei einem Restart des Systems refreshed wird. Hierzu bieten sich natürlich die Stellen im System an, die wir auch für die Freigaben benutzen. Hierzu legen wir uns z.B. ein root-verzeichnis unter /share/MD0_DATA/ an und benutzen dieses für unsere abgeänderte sshd_config:

[admin@NAS ssh]# cd /share/MD0_DATA/
[admin@NAS MD0_DATA]# mkdir root
[admin@NAS ssh]# cd root
[admin@NAS ssh]# cp /etc/ssh/sshd_config .

Nun müssen wir dem System nur noch klar machen, dass es sich immer unsere abgeänderte sshd_config nehmen soll. Hierzu benutzen wir die autorun.sh-Funktionalität:

[admin@NAS MD0_DATA]#  cd /
[admin@NAS /]# mount -t ext2 /dev/mtdblock5 /tmp/config
[admin@NAS /]# vi /tmp/config/autorun.sh

Hier tragen wir nun folgende Zeile ein:

 "cp /share/MD0_DATA/root/sshd_config /etc/ssh/sshd_config"

und machen die Datei ausführbar:

chmod +x /tmp/config/autorun.sh

anschliessend können wir den Mount-Befehl wieder aufheben.

unmount [admin@NAS /]# umount /dev/mtdblock5

FERTIG!

Nach einem Systemneustart sollte ihr euch nun nur noch als user1, user2 oder user3 direkt via SSH anmelden können. Sobald ihr mal Root-Rechte auf dem System benötigt, könnt ihr mit „login admin“ den Benutzer wechseln.

KategorienTechnik Tags: , , ,
  1. Thomas Jensen
    12. April 2012, 23:47 | #1

    Super Anleitung, hat auf meinem TS-119 hervorragend funktioniert!
    Man beachte nur, dass per Default der TS-119 kein su-Kommando hat, also vorher prüfen und ggf. per „ipkg install coreutils“ nachinstallieren.

  2. Thomas Jensen
    13. April 2012, 10:47 | #2

    Noch eine Ergänzung: Der OpenSSH-Server erwartet im Gegensatz zum eingebauten SSH-Server, dass die User Home Directories nicht gruppen-schreibbar sind. So werden sie per Default aber angelegt. In der Folge akzeptiert der neue OpenSSH-Server die hinterlegten Keys nicht mehr: „Server refused our key“.
    Es sollten also folgende Rechte gesetzt sein: (a) Schreibrechte auf dem echten User Home nur für den User selbst (Pflicht), (b) 700 auf .ssh (empfohlen) und (c) 600 auf authorized_keys (empfohlen).
    Das hatte mich kurz verwirrt, als der neue Server aktiv war und plötzlich die Keys nicht mehr funktionierten, die bisher benutzt worden waren.

  3. Thorben
    24. Dezember 2014, 16:23 | #3

    Habe einen QNAP TS239 Pro II. Die Anleitung erscheint mir sehr hilfreich, allerdings schlägt der Mount-Befehl
    „[admin@NAS /]# mount -t ext2 /dev/mtdblock5 /tmp/config“
    bei mir fehl. Bekomme als Fehlermeldung: „mount: /dev/mtdblock5 is not a valid block device“. Kann die „autorun.sh“ auch sonst nirgendwo finden und weiß daher nicht, wo ich die entsprechende Zeile eintragen muss.

    Außerdem wäre es gut, anfangs zu erwähnen, dass „Optware“ über das Paketzentrum installiert werden muss bevor ipkg für die Installation von openssh benutzt werden kann.

    Würde mich über ein bisschen Hilfe hier freuen. Danke!

  4. 28. Dezember 2014, 22:31 | #4

    Hallo Torben,

    ich habe hier auch noch eine TS259 Pro II in Betrieb und habe das mal hier getestet. Hier klappt der Mount-Befehl so auch nicht mehr, aber das liegt daran, dass das bei einigen Devices geändert wurde (TS-439, TS-509, TS-639, TS-809, TS-809U (x86). Hier muss der Mount-Befehl nicht mehr auf /dev/mtdblock5 angewendet werden, sondern auf /dev/sdx6

    Also: mount -t ext2 /dev/sdx6 /tmp/config

    Bezüglich Optware hast Du natürlich Recht … aber ich hatte das irgendwie vorausgesetzt :)

    Ich hoffe es klappt nun bei Dir … ansonsten, kannst Du Dich auch gerne noch mal melden.

  5. Wald
    11. Januar 2015, 19:01 | #5

    Hallo Torben,

    Super Beschreibung, hat alles soweit geklappt.
    wir haben TS-421U.
    habe aber noch ein Problem
    über die WEB-Oberfläche kann ich mich einloggen.
    über putty/ssh nicht: Fehlermeldung „Access denied“
    was habe ich übersehen ?

  6. Franz
    2. Juli 2016, 15:21 | #6

    Hallo,
    ich hab grad openSSH nach deiner Beschreibung installiert (allerdings mit opkg statt ipkg, weil Optware von Qnap nicht mehr unterstützt wird), funktioniert einwandfrei.

    Das Umleiten der sshd_config konnte ich mir auf meiner TS-251 sparen: Die Quelle, von der bei Systemstart die sshd_config nach /etc/ssh kopiert wird, ist offenbar „/root/.ssh/sshd_config“. Ich in diese Datei meine Änderungen eingetragen und nach Neustart sind sie in „/etc/ssh/sshd_config“.

  1. Bisher keine Trackbacks

*