SSH - root Rechte einem anderen User übergeben?

Status
Für weitere Antworten geschlossen.

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Hallo Leute,

ich habe im Internet des öfteren gelesen, dass man in seiner DiskStation so schnell wie möglich einen neuen Benutzer anlegen soll, dafür aber den Administrator deaktivieren soll.

Nun habe ich ein Verständnisproblem.
Wenn ich den admin in der DiskStation deaktiviere, habe ich über SSH mit "root" immer noch Zugriff. Dabei ist das Passwort jenes, welches dem neuen Benutzer vergeben wurde.
Was ist Sinn und Zweck der Sache?

Ich möchte, dass ich die Rechte von root einem anderen User übertrage, sodass der neue User die Rechte von root hat. Dadurch kann ich root deaktivieren, da ich die selben Rechte mit dem neuen User habe.
Ist das sinnvoll?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ein Linux ohne User root ist ziemlich nutzlos :) Der User muss existieren, denn viele wichtige Prozesse laufen unter diesem User. Löscht du den, läuft nicht mehr sehr viel auf deiner DS
du kannst aber den root Login via ssh unterbinden und den ssh Zugriff nur normalen Usern erlauben.
Ganz ehrlich auch wenn es theoretisch vielleicht ginge den root zu entfernen (dem neuen UID 0 und GID 0 geben) kannst du dir unvorhersehbare Seiteneffekte einhandeln. Das würde ich tunlichst lassen, auch weil ich nicht viel Sinn darin sehe ;-)
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Vielen Dank für deine Antwort.

Also...
Bis jetzt habe ich einen neuen User X erstellt und ihm alle Rechte gegeben, die der admin im DSM auch hatte. Danach habe ich den admin im DSM deaktiviert.
Hiernach habe ich den SSH-Port von 22 auf einen anderen höher liegenden Wert geändert. Dem neuen User X habe ich den SSH-Zugang gewährt.
Mir ist jedoch aufgefallen, dass dieser nicht alle Rechte wie root hat, sprich wenn ich mich über SSH mit User X einlogge, ich den root nicht deaktivieren kann.

Jetzt habe ich folgendes Problem:
Wenn ich den root User den SSH-Zugang unterbinden kann, aber der User X keine Rechte hat anderen den Zugang zu gewähren/sperren, wie soll ich dann jemals den root wieder aktivieren den SSH-Zugang gewähren können?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Jetzt habe ich folgendes Problem:
Wenn ich den root User den SSH-Zugang unterbinden kann, aber der User X keine Rechte hat anderen den Zugang zu gewähren/sperren, wie soll ich dann jemals den root wieder aktivieren den SSH-Zugang gewähren können?
z.B. via telnet ;-) oder mit dem Konfigeditor für den DSM. Dann kannst du als admin User (wie auch immer der heisst) im DSM in der ssh Konfig den root Login wieder erlauben
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Gibt es eine andere alternative root über den neu angelegten User zu sperren?
Ich versuche nämlich folgendes:

zuerst: "cd /etc/ssh/"
danach in die sshd_config: "vi sshd_config"
und hier # vor "#PermitRootLogin yes" zu entfernen, jedoch erscheint immer die Meldung ""sshd_config" File is read only" oder "No write since last change :)quit! overrides)".
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
versuchst du das jetzt mit dem neuen root User wenn der Read-Only kommt? In dem Fall sieht das System den User wohl nicht als root. Der neue User MUSS UID 0 und GID 0 haben, sonst sieht das System den kaum als root. Vielleicht klappt es wenn du deinen User zum Mitglied der Gruppe root machst
Dazu könntest du in /etc/group
Code:
root:x:0:DEIN_USER
ups gerade nachgeschaut, wird nicht gehen
Code:
ls -al /etc/ssh/sshd_config 
-rw-r--r--    1 root     root          3801 Feb 12 08:19 /etc/ssh/sshd_config
weil die Gruppe keine Schreibrechte auf das File hat.
Habe das mit UID 0 und GID 0 mal eben bei mir probiert.
Zuerst in /etc/passwd
Code:
#vorher
tobster:x:1026:100::/var/services/homes/tobster:/sbin/nologin
#nachher
tobster:x:0:0::/var/services/homes/tobster:/bin/ash
und dann zum Beweis :)
Code:
ssh tobster@192.168.199.34
tobster@192.168.199.34's password: 
ds1513> who
USER       TTY      IDLE      TIME            HOST
tobster    pts/1    00:00     Mar 29 16:44:10 192.168.199.12
ds1513> whoami
root
und ich kann sshd_config schreiben :)
Aber wie gesagt finde ich es persönlich nicht sehr sinnvoll einen anderen User mit root Rechten auszustatten!
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Danke für die ausführliche Erklärung:)

Ich will den root deakvtivieren. Aber für manches Vorhaben brauch ich dann wiederum die Rechte von root.
Vom daher wollte ich den root deaktivieren. Kommt mir nicht sinnvoll vor, aber wenn ich den Namen root als Benutzername habe, muss nur noch mein Passwort erraten werden.
Bei einem anderen User mit einem Namen X wird es dann natürlich etwas sicherer, da hier auch erst der Name gefunden werden muss.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
der normale Weg als non-root auf der DS an root Rechte zu kommen wäre über su und dem root Passwort
Code:
su vi /etc/ssh/sshd_config
allerdings geht das leider auf der DS nicht, weil man dazu dem su Kommando das suid Bit setzen müsste. Da aber su nur ein Symlink auf busybox ist würde man damit das gesamte busybox (d.h. alle Kommandos) auf suid setzen. Und das will man ganz sicher nicht!
Trotzdem würde ich nicht an UID/GID rumspielen. Du kannst z.B. alternativ deinen ssh mit Zertifikatlogins absichern. Dann wären Bruteforce Attacken auf den root Login vom Tisch. An allen anderen Diensten ausser telnet und ssh kannst du dich eh nicht als root anmelden.
Das Problem wenn du einem anderen User UID/GID 0:0 gibst: dieser andere User kann sich an anderen Diensten anmelden z.B. FTP oder Mail. Dann hättest du aber das Problem, dass du Prozesse mit effektiven root Rechten hättest wo eigentlich keine vorgesehen sind. Ob das sicherer ist als nur root mit root-Rechten wage ich mal zu bezweifeln :)
 
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Hallo,

wenn ich mich nicht irre, sind root und admin verschiedene User.
root ist Chef des Betroiebssystems
admin ist Chef des DSM

root würde ich nicht ändern, ich kenne auch keine Empfehlungen dazu.
Den ssh Zugriff für root könnte man schon sperren....aber!
Auf der ds scheint "su - root" nicht zu funktionieren, so daß ein normaler User, der das Passwort kennt, trotzdem nicht root werden kann. ('su - admin" als User root funktioniert hingegen)
Darüberhinaus würde ich ssh auch nur im Internet freigeben, wenns gar nicvht anders geht.
 

hopeless

Benutzer
Mitglied seit
18. Feb 2013
Beiträge
1.066
Punkte für Reaktionen
0
Punkte
56
Danke für die ausführliche Erklärung:)

Ich will den root deakvtivieren. Aber für manches Vorhaben brauch ich dann wiederum die Rechte von root.
Vom daher wollte ich den root deaktivieren. Kommt mir nicht sinnvoll vor, aber wenn ich den Namen root als Benutzername habe, muss nur noch mein Passwort erraten werden.
Bei einem anderen User mit einem Namen X wird es dann natürlich etwas sicherer, da hier auch erst der Name gefunden werden muss.

Nicht nur ich halte Security by Obscurity für nicht sinnvoll:

http://de.wikipedia.org/wiki/Security_through_obscurity

sinnvoll wäre z.B. eher zu verhindern, dass ein User mit Rootrechten sich von außen an der DS anmelden kann.
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Hmm...
Das Beispiel auf der verlinkten Seite ist ein sehr gutes Beispiel.

Ich habe jetzt folgendes gemacht:
Zuerst habe ich mir einen neuen Benutzer mit Adminrechten angelegt, dem ich den SSH-Zugang gewährt habe. Hiernach habe ich den Zugang für root über SSH gesperrt, mich mit dem neuen Benutzer angemeldet und das ursprüngliche Adminkonto, sprich root, deaktiviert.
Ich hoffe, dass der Server hierdurch sicherer wird. Zwar kann ich mich mit dem neuen Benutzer auch über SSH anmelden, dieser verfügt aber nicht über alle Rechte wie root.

Wie sinnvoll das ist? keine Ahnung...
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Langsam verliere ich echt den Überblick.

Was ist den jetzt su und suid...?
Oder am besten, was ist denn die sicherste Methode die NAS nach außen zu schützen?

Bin noch ein Neuling und hoffe, dass ich euch nicht belästige.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
su ist ein Kommando um den User zu wechseln. suid ist ein "Recht" einer Datei im Dateisystem. Wenn das gesetzt ist heisst dies, dass die Datei immer unter dem Eigentümer ausgeführt wird, egal wer den Aufruf macht. Ein Kommando welches den Eigentümer root hat und suid gesetzt ist wird IMMER unter root ausgeführt https://de.wikipedia.org/wiki/Setuid
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Okay, ich glaube ich beginne es langsam zu verstehen.
Es ist wie mit dem Fahrzeugbrief und dem Fahrzeugschein.

Wenn der Benutzer nun suid-Rechte besitzet, heißt es, dass er im Prinzip die Rechte hat, die root hat.

Jetzt habe ich herausgefunden, dass beim Benutzerwechsel von User zu admin (root) kein Passwort erfordert. Welches Verfahren ist aber sicherer, root den Zugriff über SSH zu verbieten oder dem User. Im Prinzip läuft beides auf dasselbe hinaus, da man vom User zu root wechseln könnte?
Wo kommen diese Rechte vor?
Was ist der Sinn vom ganzen?
Ich weiß, dass man hierdurch das Betriebssystem verändern/modifizieren kann?

Wie sieht es aus, wenn ich von außen, sprich über das Internet, auf meine NAS zugreifen will?
Bräuchte ich hierfür bestimmte Rechte, um mich bei meiner NAS einzuwühlen?
Auf der Webseite von Synology wird QuickConnect erklärt, welches weder Portforwarding noch andere SSH-Rechte benötigt. Stimmt das oder müssen trotzdem bestimmte Veränderungen gemacht werden?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Jetzt habe ich herausgefunden, dass beim Benutzerwechsel von User zu admin (root) kein Passwort erfordert.
wenn das bei dir so ist dann hast du ein Problem. Der Wechsel des Users mit su erfordert immer das Passwort des Zielaccounts. Nur root kann ohne Passwort mittels su zu jedem User wechseln. Wenn bei dir keine PW-Abfrage kommt, dann bist du entweder bereits root wenn du den Wechsel machst oder dein root Account hat ein leeres PW
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Zitat aus folgendem Link: http://www.synology-wiki.de/index.php/Die_Kommandozeile

"Gibt man keinen Benutzernamen an, so wechselt man ins root-Benutzerkonto.
Man kann standardmäßig nur in die Benutzerkonten "root" und "admin" wechseln.
Jeder Benutzer außer root muss anschließend das Passwort des Benutzerkontos eingeben. Das Passwort des root-Kontos lautet standardmäßig "synopass"."

EDIT:
Mir ist jetzt auch aufgefallen, dass wenn ich den SSH-Zugang zum User gewähre, auch der SSH-Zugang für den root gewährt wird.
Da ist doch was falsch oder?

ursprünglicher Benutzer: admin - passwort - root(SSH)
neu erstellter Benutzer: XXX - passwort - xxx(SSH)

SSH für root ist deaktiviert. Das Konto "admin" wurde ebenfalls deaktiviert.
SSH für XXX aktiviert.

Wenn aber SSH für XXX aktiviert ist, habe ich immer noch SSH-Zugriff über root???
Für root müsste ich doch SSH über admin aktivieren???
 
Zuletzt bearbeitet:
Mitglied seit
10. Jan 2014
Beiträge
393
Punkte für Reaktionen
0
Punkte
0
Ich glaube, hier wird ganz schön was durcheinander geschmissen.
Nochmal: admin ist der Meister des DSM und das hat erstmal nix mit root und ssh zu tun

@armut: Du will ein sicheres System?
Dann mache ein "forwarding" für sowenig Ports wie irgend möglich, (am besten gar keine) und aktiviere die "automatische Blockierung" von IPs, die zu viele fehlerhafte Loginversuche erzeugen!
Wenn du eine Fritzbox hast, nutze deren VPN Funktion, um dich über das Internet in dein Netz einzuklinken und greife dann auf die DS zu.

Was über "su" im Wiki steht, ist (mittlerweile?) falsch...zumindest was die DS betrifft.


Ich habe mich hier mal als admin per ssh an der DS angemeldet. Im folgenden die Befehle:
Mit "id" schaue ich nach, wer ich bin.
Dann sieht man, dass ein "su - root" nicht funktioniert. Das liegt daran, dass ich "su" als admin gestartet habe und "su" nicht SETUID-root ist.
head -11 /etc/passwd zeigt mir die ersten 11 User (die restlichen gehen euch nix an :p ) und dort sieht man, dass root die UID 0 hat und admin hat die UID 1024.

Rich (BBCode):
ds> id
uid=1024(admin) gid=100(users) groups=25(smmsp),100(users),101(administrators)
ds> su - root
su: must be suid to work properly
ds> head -11 /etc/passwd
root:x:0:0:root:/root:/bin/ash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
postfix:x:125:125:Postfix User:/nonexist:/sbin/nologin
dovecot:x:143:143:Dovecot User:/nonexist:/sbin/nologin
spamfilter:x:783:1023:Spamassassin User:/var/spool/postfix:/sbin/nologin
nobody:x:1023:1023:nobody:/home:/sbin/nologin
admin:x:1024:100:System default user:/var/services/homes/admin:/bin/sh
guest:x:1025:100:Guest:/nonexist:/bin/sh
ds>

Jetzt das gleiche Spiel als root.
Da kommt bei "su - root" keine Fehlermeldung, da "su" selbst prüft, ob es mit der Berechtigung des Users root gestartet wurde.
In diesem Fall ist das so, und deshalb funktioniert es auch. (wenn's so auch nicht dem eigentlichen Sinn von "su" entspricht)
Zum Schluß noch ein "su - admin", um zu zeigen, wie es sinnvoll genutzt werden kann.
Rich (BBCode):
ds> id
uid=0(root) gid=0(root) groups=0(root)
ds> su - root


BusyBox v1.16.1 (2013-08-17 02:36:47 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ds> head -11 /etc/passwd
root:x:0:0:root:/root:/bin/ash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
postfix:x:125:125:Postfix User:/nonexist:/sbin/nologin
dovecot:x:143:143:Dovecot User:/nonexist:/sbin/nologin
spamfilter:x:783:1023:Spamassassin User:/var/spool/postfix:/sbin/nologin
nobody:x:1023:1023:nobody:/home:/sbin/nologin
admin:x:1024:100:System default user:/var/services/homes/admin:/bin/sh
guest:x:1025:100:Guest:/nonexist:/bin/sh
ds>
ds> su - admin


BusyBox v1.16.1 (2013-08-17 02:36:47 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ds> id
uid=1024(admin) gid=100(users) groups=25(smmsp),100(users),101(administrators)
ds>


SETUID funktioniert so, dass der Eigentümer eines Binärprogramms (Scripte gehen nicht!), diesem Programm das SETUID Bit setzen kann.
Dadurch wird das Programm dann immer mit der Berechtigung des Eigentümers ausgeführt, egal, wer das Programm startet.
Dieses System ist eine potentielle Sicherheitslücke, wenn sich der Eigentümer über die möglichen Folgen nicht im klaren ist.
Bestes Beispiel für vollkommene Blödheit war Oracle, die dem TCL-Interpreter mal das SETUID-root-Bit gesetzt hatten:
http://dl.packetstormsecurity.net/9905-exploits/oracle.8.0.5.intelligent.agent.txt
Der TCL-Interpreter ist dazu gedacht, Scripte auszuführen. Durch die "Leistung" von Oracle war jeder lokale User in der Lage, ein selbst geschriebenes TCL-Script als root auszuführen.

Da sich, wie hier bereits jemand anmerkte, busybox hinter dem "su" Befehl befindet, wäre es tödlich, busybox SETUID-root zu geben.
Auf der anderen Seite funktioniert "su" nicht ohne root Rechte. Hier würde nur helfen, "su" auszutauschen.
 

armut

Benutzer
Mitglied seit
20. Okt 2013
Beiträge
91
Punkte für Reaktionen
0
Punkte
0
Boah... Das musste ich mir erst paar mal durchlesen.
Vielen Dank für die umfangreiche Antwort. Auch vielen Dank @jahlives.

?ch muss mich mit der Materie intensiver befassen, denn ich mische einiges zusammen, was gar nicht zusammengeört. Vor allem root, user, su, suid und evtl. sudo richtig einlesen :)

Du hast VPN angesprochen. Undzwar ist mein Provider UnityMedia. Habe im ?nternet gelesen, dass diese nur ipv6 anbieten und dies Schwierigkeiten bei Außenzugriff verursacht. Ehrlich gesagt wollte ich auch gerne QuickConnect nutzen, da ich hier ei keine Ports freigeben muss soweit ich weiß.

Worin bestünde denn der Unterschied, außer dass ich bei einem VPN einen direkten Zugriff haben würde als bei QuickConnect, da dieser erst in Verbindung mit Synology-Server stehen?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat