Forum: PC Hard- und Software Root login Rapsberry Pi


von J0h4nn35 (Gast)


Lesenswert?

Hallo

Ich bin neu beim Raspberry Pi und möchte ihn gerne rooten, also mich per 
SSH als Root anmelden. Wenn ich das richtig verstanden habe, gibt es die 
sshd Konfigurationsdatei. Reicht es, wenn ich PermitRootLogin auf yes 
setze? Ich möchte mich auf keinen Fall aussperren. Deshalb frage ich 
lieber vorher.

von Thomas (kosmos)


Lesenswert?

Man sollte nur einzelne Befehle per root durchführen und nicht dauerhaft 
als root arbeiten.

von c-hater (Gast)


Lesenswert?

Thomas O. schrieb:

> Man sollte nur einzelne Befehle per root durchführen und nicht dauerhaft
> als root arbeiten.

Das ist reine Pseudo-Sicherheit. Genauso Schlangenöl wie Viren-Scanner 
und ähnliches. Sprich: effektiv Schwachsinn.

von Jochen (Gast)


Lesenswert?

c-hater schrieb:
> effektiv Schwachsinn.

Und wieder etwas, was der Rest der Welt anders sieht als Du. Man müssen 
die alle dumm sein.

von Marcus (Gast)


Lesenswert?

ssh root@<ip-adresse-raspberry-pi>
Mit diesem Befehl kannst du dich als roof einloggen.
Ich logge mich aber auch mit einem normalen User ein und wechsle bei 
Bedarf auf der Kommandozeile auf roof.

von Marcus (Gast)


Lesenswert?

Sorry
root@ip-adresse

von Bauform B. (bauformb)


Lesenswert?

Thomas O. schrieb:
> Man sollte nur einzelne Befehle per root durchführen und nicht
> dauerhaft als root arbeiten.

ist das ein neuer Arbeitsschutzparagraph? Sowas wie Zwangspausen? Nach 
wieviel Befehlen muss ich mich denn jeweils neu anmelden?

von Uwe D. (monkye)


Lesenswert?

Bauform B. schrieb:
> Thomas O. schrieb:
>> Man sollte nur einzelne Befehle per root durchführen und nicht
>> dauerhaft als root arbeiten.
>
> ist das ein neuer Arbeitsschutzparagraph? Sowas wie Zwangspausen? Nach
> wieviel Befehlen muss ich mich denn jeweils neu anmelden?

Unwissenheit, Ignoranz und Selbstüberschätzung sind Grundlage für 
erfolgreiche Angriffe auf Computersysteme. Aber ja, muss jeder selber 
wissen…

von Np R. (samweis)


Lesenswert?

J0h4nn35 schrieb:
> Reicht es, wenn ich PermitRootLogin auf yes
> setze?

Ja, reicht.

Aber warum willst Du Dich direkt als root und mit Passwort einloggen?
Natürlich wird so ein Raspi selten als NAS für Staatsgeheimnisse 
eingesetzt, und vielleicht hat er ja nicht einmal Internet-Zugang.
Aber "eigentlich" macht man das eine Nummer sicherer, selbst dann, wenn 
man es "eigentlich" nicht braucht. (Zumindest weiß man dann, wie's 
geht.)

Z.B.: Einloggen als user (gerne mit ssh Key) und dann Wechsel nach root.
Oder, wenn man denn unbedingt direkt als root einloggen will:

PermitRootLogin prohibit-password

PubkeyAuthentication yes #ist Standard

und den eigenen ssh public key auf dem raspi in
1
/root/.ssh/authorized_keys
.

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Np R. schrieb:
> Aber warum willst Du Dich direkt als root und mit Passwort einloggen?

Gegen den direkten Root-Login spricht aus Sicherheitssicht nichts, 
sofern man a) dafür Sorge trägt, dass der adäquat abgesichert ist (lies: 
mit einem Schlüsselpaar, dessen privater Teil seinerseits mit einer 
ordentlichen Passphrase gesichert ist) und b) sich beim Hantieren mit 
dieser UID auf Sachen beschränkt, für die die damit einhergehenden 
Rechte notwendig sind (i.e. keinen normalen Userkram wie Downloader und 
Bastelsachen und so als Root ausführt).

Je nach Sichtweise könnte es gar der sicherere Weg sein, wenn man nur 
den direkten Login von Root mittels Schlüssel erlaubt, und lokal auf der 
Maschine sowohl das Passwort für Root unbrauchbar macht, als auch die 
unsägliche Defaultkonfiguration (beim RaspberryOS) von ›sudo‹ so fixt, 
dass kein User überhaupt irgendwie irgendwas mit Rootrechten ausführen 
kann. Immerhin kommen die meisten Angreifer zunächst über einen weniger 
privilegierten Account auf die Kiste.

von Anti Glasses Gang (Gast)


Lesenswert?

Np R. schrieb:
> und den eigenen ssh public key auf dem raspi in
> root.ssh/authorized_keys.

ssh-copy-id; ich weiß noch immer nicht, wieso so viele immer die Keys 
händisch übertragen wollen...

sudo bringt nicht wirklich Sicherheit mit sich und ist für viele auch 
verwirrend. Klassiker wie "sudo echo 32 > /sys/class/gpio/export" füllen 
Foren. Ich sehe alle paar Wochen einen PR mit so einem Aufruf.

von Thomas (kosmos)


Lesenswert?

wenn die Kiste so konfiguriert ist das jeder user sudo ohne 
Passwortabfrage verwenden kann, ja dann kann man gleich als admin mit 
Rootrechten arbeiten.

von Icke ®. (49636b65)


Lesenswert?

Marcus schrieb:
> Mit diesem Befehl kannst du dich als roof einloggen.

Allerdings nur, wenn du ein Dachdeckermeister oder Schornsteinfeger 
bist...

von Carla Audimarie (Gast)


Lesenswert?

Jochen schrieb:
> c-hater schrieb:
>> effektiv Schwachsinn.
>
> Und wieder etwas, was der Rest der Welt anders sieht als Du. Man müssen
> die alle dumm sein.

Esst mehr Mist, Milliarden Fliegen können nicht irren.

von c-hater (Gast)


Lesenswert?

Jack V. schrieb:

> Immerhin kommen die meisten Angreifer zunächst über einen weniger
> privilegierten Account auf die Kiste.

Das ist der Punkt. Besser ein wirklich gut abgesicherter root-Zugang 
(der dann natürlich auch nur auschließlich zu administrativen Zwecken 
verwendet wird) als dieses schwachsinnige Gewichse mit sudo.

Das Problem ist halt nur, dass selbst dieses Grundkonzept nicht wirklich 
die Lösung für alle Probleme sein kann. Immer dann, wenn teilweise 
"Delegierungen" von administrativen Aufgaben erforderlich werden, muss 
man zwangsweise auf sudo und Konsorten zurückgreifen. Was natürlich das 
Sicherheitskonzept massiv aufweicht.

Hier zeigen sich dann die Vorteile des Windows-NT-Systems, was sowas 
bereits vom Konzept her vorsah. Leider aber über lange Zeit nicht 
konsequent umgesetzt hat. Insbesondere der "Hauptbenutzer" von 
Windows2000/XP hatte viel zu viele Rechte und Privilegien. Ist 
sicherheitstechnisch betrachtet grob in etwa mit dem Admin-User eines 
Debian-Systems vergleichbar (und natürlich dessen Derivaten bis hin zum 
Raspi-OS).

Das Problem ist: ein wirklich einigermaßen sicheres System ist für 
Normaluser (die es auch selber administrieren müssen) entweder 
vollkommen unbenutzbar oder zumindest überaus nervig. Sowohl Windows als 
auch Linux-Distries haben hier über die Jahre deutlich nachgebessert, 
aber letztlich:

Bisher hat noch NIEMAND eine wirklich brauchbare Lösung für das 
Problem gefunden, Sicherheit und Benutzbarkeit unter einen Hut zu 
bringen. Ich neige inzwischen dazu, das für einen unauflösbaren 
Widerspruch zu halten.

von Ein T. (ein_typ)


Lesenswert?

c-hater schrieb:
> Das ist der Punkt. Besser ein wirklich gut abgesicherter root-Zugang
> (der dann natürlich auch nur auschließlich zu administrativen Zwecken
> verwendet wird) als dieses schwachsinnige Gewichse mit sudo.

Auf Systemen, die keinen besonderen Sicherheitsanforderungen genügen 
müssen, ist sudo(1) eine sehr feine Sache. Allerdings wissen auch 
erfahrene UNIX-Sysops oft nicht, was damit alles möglich ist. Obendrein 
ist heutzutage ohnehin der Nutzer meistens die mit Abstand größte aller 
Schwachstellen.

> Das Problem ist halt nur, dass selbst dieses Grundkonzept nicht wirklich
> die Lösung für alle Probleme sein kann. Immer dann, wenn teilweise
> "Delegierungen" von administrativen Aufgaben erforderlich werden, muss
> man zwangsweise auf sudo und Konsorten zurückgreifen.

Technologien wie RSBAC, SE-Linux, AppArmor, Contol Groups, Namespaces, 
File Access Control Lists und Extended File Attributes existieren. Man 
müßte sie nur benutzen, aber meistens ist das gar nicht nötig.

Ansonsten erhöht das Einhalten der Best Common Practices das 
Sicherheitsniveau (nicht nur, aber auch von Linux-Systemen) deutlich. Zu 
diesen Best Common Practices gehört, daß der privilegierte Benutzer root 
sich niemals und unter keinen Umständen unmittelbar von einem 
Remotesystem aus anmelden darf, und nein, auch nicht mit einer stark 
verschlüsselten Verbindungstechnologie wie SSH.

Für einen direkten Remote-Login als privilegierter Benutzer root gibt es 
auch keinen Bedarf. Wie bereits erwähnt, gibt es vorhandene und 
funktionierende Technlogien zur Privilegienseparation und -Erweiterung. 
Man muß sie halt konfigurieren und nutzen, wenn man glaubt, ein solch 
hohes Sicherheitsniveau zu benötigen.

von Hans (Gast)


Lesenswert?

Nur_ein_schaumschläger sondert mal wieder seinen Sondermüll ab

von Hans (Gast)


Lesenswert?

Willst du uns gleich wieder was von deinem poor man’s 2FA erzählen?

von Peter Pan (Gast)


Lesenswert?

Ein T. schrieb:
> Ansonsten erhöht das Einhalten der Best Common Practices das
> Sicherheitsniveau (nicht nur, aber auch von Linux-Systemen) deutlich. Zu
> diesen Best Common Practices gehört, daß der privilegierte Benutzer root
> sich niemals und unter keinen Umständen unmittelbar von einem
> Remotesystem aus anmelden darf, und nein, auch nicht mit einer stark
> verschlüsselten Verbindungstechnologie wie SSH.

Nenn mir doch bitte das Risiko eines root Zugangs per SSH Key mit einem 
sauber konfigurierten SSH Server.

von Le X. (lex_91)


Lesenswert?

Ein T. schrieb:
> wenn man glaubt, ein solch hohes Sicherheitsniveau zu benötigen.

Geglaubt wird in der Kirche.

Als alleiniger Benutzer meiner Geräte (also, als Privatuser) braucht man 
"ein solch hohes Sicherheitsniveau" (frei nach Guttenberg: 
umgangssprachlich kann man auch root-Rechte sagen).
Außer ich gebe mich mit dem Auslieferungszustand meiner Distribution 
zufrieden.

Ein T. schrieb:
> Zu diesen Best Common Practices gehört, daß der privilegierte Benutzer
> root sich niemals und unter keinen Umständen unmittelbar von einem
> Remotesystem aus anmelden darf,

Ich bin ja ein Fan von BestPractises, aber in dem konkreten Fall seh ich 
den Nachteil nicht.
Wir reden von einem Pi wo per default sudo kein PW braucht.

Ist halt die Frage: willst du Admin-Fachsimpelei im Elfenbeinturm führen 
oder dem TE weiterhelfen?

von Ein T. (ein_typ)


Angehängte Dateien:

Lesenswert?

Hans schrieb:
> Nur_ein_schaumschläger sondert mal wieder seinen Sondermüll ab

Hans schrieb:
> Willst du uns gleich wieder was von deinem poor man’s 2FA erzählen?

Sieh an, mein Stalker darf heute länger aufbleiben.

von Ein T. (ein_typ)


Lesenswert?

Peter Pan schrieb:
> Nenn mir doch bitte das Risiko eines root Zugangs per SSH Key mit einem
> sauber konfigurierten SSH Server.

1. Der "sauber konfigurierte SSH Server".
2. Mögliche Schwachstellen in der Verschlüsselung des SSH Private Key.
3. Mögliche Schwachstellen in der Verschlüsselung des SSH-Protokolls.
4. Mögliche Kompromittierung des Admin-Desktops.

Zu 2. und 3.: es ist schon sehr erstaunlich, wie schnell die Community 
die Lehren aus der Heartbleed-Geschichte vergessen hat. :-(

Leute, Leute, Leute... seid mir nicht böse, aber bei einem direkten 
Root-Login über SSH steht und fällt die Sicherheit der Sache in einer 
einzigen Schicht. "Richtige" Sicherheit geht aber davon aus, daß 
Sicherheitsschichten versagen können, deswegen ist ein mehrschichtiger 
Ansatz sinnvoller, um das Sicherheitsniveau zu erhöhen.

von Ein T. (ein_typ)


Lesenswert?

Le X. schrieb:
> Ein T. schrieb:
>> wenn man glaubt, ein solch hohes Sicherheitsniveau zu benötigen.
>
> Geglaubt wird in der Kirche.

Gut erkannt, genau deswegen hatte ich diese Formulierung gewählt.

> Als alleiniger Benutzer meiner Geräte (also, als Privatuser) braucht man
> "ein solch hohes Sicherheitsniveau" (frei nach Guttenberg:
> umgangssprachlich kann man auch root-Rechte sagen).

Ja, schon klar, alle wollen total sicher sein. Aus meiner Perspektive 
beginnt Sicherheit aber mit einer Risikoanalyse. Bitte korrigiere mich, 
wenn ich falsch liege, aber das Sicherheitsniveau eines Paketfilter- 
oder Proxy-Firewall, oder eines Onlinebanking-Servers mit PCI-DSS, oder 
eines Systems, das den Regelungen der BaFin oder des HIPAA Act 
unterliegt, wirst Du auf Deinem Desktop wohl nicht benötigen, oder?

> Ich bin ja ein Fan von BestPractises, aber in dem konkreten Fall seh ich
> den Nachteil nicht.
> Wir reden von einem Pi wo per default sudo kein PW braucht.

Das halte ich tatsächlich für eine Fehlkonfiguration, ist aber 
sicherlich dem Umstand geschuldet, daß ein überwiegender Teil der 
RasPi-Nutzer keine erfahrenen UNIX- oder Linux-Experten sind. Ich selbst 
ändere diese Konfiguration schon vor einem ersten Login, meist sogar 
direkt nach dem Beschreiben der SD-Karte mit dem gewünschten 
Betriebssystemimage.

> Ist halt die Frage: willst du Admin-Fachsimpelei im Elfenbeinturm führen
> oder dem TE weiterhelfen?

Es erscheint mir durchaus hilfreich für den TO, ihm den Rat zu geben, 
das, was er sich da vorstellt, nicht zu machen. Dies insbesondere auch, 
weil es hier so viele "Experten" wie c-hater und sogar echte Fachleute 
wie Jack gibt, die kein Problem in einer solchen Konfiguration sehen 
können oder wollen.

Dabei liegt zumindest Jack nicht vollkommen daneben, setzt aber leider 
voraus, daß der TO ein erfahrener Admin sei und die von ihm erwähnten 
zusätzlichen Maßnahmen zur Absicherung durchführen könne. Diese Prämisse 
halte ich für problematisch, weil die Frage des TO und seine 
ausdrückliche Aussage, er sei Linux-Anfänger, eine derartige Expertise 
keinesfalls vermuten läßt.

Insofern finde ich, ja, ein Hinweis auf die Best Common Practices, 
nämlich sein Vorhaben nicht umzusetzen und keinen direkten Remote-Login 
als privilegierter Benutzer root zuzulassen, wie das aus guten Gründen 
ja auch auf vielen anderen Linux- und UNIX-Systemen die 
Standardeinstellung ist, stellt für den TO eine sinnvolle Hilfestellung 
dar.

Edit: vergessenes Wort ergänzt.

: Bearbeitet durch User
von Jack V. (jackv)


Lesenswert?

Ein T. schrieb:
> Leute, Leute, Leute... seid mir nicht böse, aber bei einem direkten
> Root-Login über SSH steht und fällt die Sicherheit der Sache in einer
> einzigen Schicht.

Dank der bei den einschlägigen Distris verwendeten kaputten sudo-Config 
wäre die „zweite Schicht“ in dem von dir gezeichneten Szenario, in dem 
SSH selbst der Einfallsvektor ist, halt auch eher Dekoration als echter 
Schutz: Jemand, der erstmal Zugriff mit Userrechten auf so einem System 
erlangt hat, kann im nächsten Schritt im Normalfall problemlos das für 
›sudo‹ genutzte Passwort (üblicherweise ja das Userpasswort) abgreifen, 
und hat (in der kaputten Config, wohlgemerkt) dann direkt volle 
Rootrechte – so what?

Ein noch schlechterer Schutz als ein nichtvorhandener Schutz ist ein 
eingebildeter Schutz.

Und im Gegensatz zu der Variante, bei der sich Root nur von außen 
einloggen kann, ist’s bei der Variante, den Root-Login zu verbieten und 
die Rechte nur lokal zu erlangen, dann auch egal, wie der Bösling 
Zugriff mit den Userrechten erlangt hat – reicht, dass er drauf ist. 
Wenn ich abschätzen sollte, ob „Useraccount kompromittiert“ oder „SSH 
kaputt“ häufiger vorkommt, würde ich dann doch deutlich zu Ersterem 
tendieren.


Best Practice hängt jedoch immer auch ein wenig vom Kontext ab. Einen 
normalen Pi im LAN, der vielleicht noch etwas Wölkchen für unterwegs 
anbietet und daher exponiert ist, wird man ganz sicher nicht mit der 
vollen Packung Sicherheitskonzept belegen, die ein Admin auffahren kann, 
der geschäftskritische Firmen-IT betreut, und für die Zeit Geld bekommt. 
Letztlich gibt es auch nicht das eine Konzept, das für jeden passt.


OT: warum hast du dir eigentlich ’nen neuen Account geklickt? Ich fand 
die Verwechselungen eigentlich immer recht witzig

: Bearbeitet durch User
von Hans (Gast)


Lesenswert?

Ein T. schrieb:
> Hans schrieb:
>> Nur_ein_schaumschläger sondert mal wieder seinen Sondermüll ab
>
> Hans schrieb:
>> Willst du uns gleich wieder was von deinem poor man’s 2FA erzählen?
>
> Sieh an, mein Stalker darf heute länger aufbleiben.

Und das war eine Urheberrechtsverletzung, herzlichen Glückwunsch.

Ich empfehle mich.

von Joerg W. (joergwolfram)


Lesenswert?

> Jemand, der erstmal Zugriff mit Userrechten auf so einem System
> erlangt hat, kann im nächsten Schritt im Normalfall problemlos das für
> ›sudo‹ genutzte Passwort (üblicherweise ja das Userpasswort) abgreifen,
> und hat (in der kaputten Config, wohlgemerkt) dann direkt volle
> Rootrechte – so what?

Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort 
eingeben.
Bei meinem Server geht das SSH Login auch nicht mit root, allerdings 
nutze ich sudo eher selten und wechsle meist mit "su -" zum 
Root-Account.

Jörg

von Matthias (Gast)


Lesenswert?

Joerg W. schrieb:
> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
> eingeben.
> Bei meinem Server geht das SSH Login auch nicht mit root, allerdings
> nutze ich sudo eher selten und wechsle meist mit "su -" zum
> Root-Account.

Der Punkt ist aber, dass ein Angreifer, der bereits als User angemeldet 
ist, auch die PATH Variable deiner Shell ändern kann. Damit könnte er 
ein falsches sudo ablegen, das das eingegebene Passwort im Klartext 
speichert. Der Angreifer muss zwar warten, bis sich der Admin wieder 
anmeldet, ab dann hilft das aber auch nicht mehr.

von Peter Pan (Gast)


Lesenswert?

Joerg W. schrieb:
>> Jemand, der erstmal Zugriff mit Userrechten auf so einem System
>> erlangt hat, kann im nächsten Schritt im Normalfall problemlos das für
>> ›sudo‹ genutzte Passwort (üblicherweise ja das Userpasswort) abgreifen,
>> und hat (in der kaputten Config, wohlgemerkt) dann direkt volle
>> Rootrechte – so what?
>
> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
> eingeben.
> Bei meinem Server geht das SSH Login auch nicht mit root, allerdings
> nutze ich sudo eher selten und wechsle meist mit "su -" zum
> Root-Account.
> Jörg

Dann passt der Angreifer die .bashrc an und schon tippst du für ihn bei 
der nächsten Gelegenheit dein Passwort ein.

Toll!

von imonbln (Gast)


Lesenswert?

Es kommt wie immer darauf an, was man haben will und wie viel Paranoia 
der Systemverantwortliche bei seinen Raspberry Pi hat.
Ich denke, die Idee sich direkt per SSH als Root per Passwort 
anzumelden, ist vom Tisch und entspricht nicht dem Stand der Technik. 
Schon aus praktischen Überlegungen sollte man das verhindern und sei es 
nur um zu unterbinden, dass ein Angreifer Wörterbuch Attacken auf das 
Root Passwort versucht.

Der Zugang auf dem Raspberry Pi über SSH als Root via Private/Public 
Keys, kann man machen und es gibt durchaus fälle in den das sinnvoll 
ist. Hierbei sollte man aber den privaten auf den Rechner des Admins mit 
einer guten starken Passphrase sicher und idealerweise ein Key-Agent 
verwenden. Problematisch können in diesem Szenario werden, wenn man als 
Root ein Agent-Forward über mehrere Maschinen macht und die Gefahr 
besteht, dass auf der Strecke eine Maschine kompromittiert ist, auf der 
Maschine könnte ein Angreifer den Socket des Agenten relativ einfach 
kapern und bei den nachgestalten Systemen so den gleichen Zugang wie der 
Besitzer des Keys erhalten.
Auf der anderen Seite bietet sich ein Key basierter SSH Zugang für Root, 
vor allen dann an, wenn es regelmäßig automatisierte Aufgaben gibt, 
welche ein Remote Server auf den Raspberry Pi erledigen muss. Der 
Klassiker hier wäre eine Backuplösung auf der Basis von rsync & SSH.
Eine weitere Lösung, die auch schon hier besprochen wurde, ist, dass 
sich jeder erstmal als normaler Benutzer zu dem Raspberry Pi verbindet. 
Vorzugsweise auch ausschließlich per SSH/Key Infrastruktur und dann bei 
Bedarf für einzelne Befehle sich erweitere Rechte geben lässt. Ich 
persönlich wähle meisten diesen Ansatz, aber auch hier kann man viel 
Falsch machen.
Es steigert zum Beispiel nicht die Sicherheit, wenn jeder Benutzer via 
sudo beliebige Befehle ohne Password ausführen darf, also ist es 
wichtig, dass sudo richtig konfiguriert wird.
Wenn man dazu neigt in der Abwägung zwischen Security und 
Bequemlichkeit, zu Bequemlichkeit tendiert, es gibt ein PAM Modul für 
sudo, das es erlaubt sudo, ohne Password zu verwenden, wenn man einen 
gültigen SSH-Key hat. Auf der anderen Seite gibt es auch einige Security 
Experten, welche das Programm sudo als zu Komplex ablehnen und die 
Empfehlung aussprechen nur das schlankere su zu verwenden.
Der Vorteil von Systemen die nur mit su betrieben werden ist, su kann 
deutlich weniger als sudo, das macht aber das Audit von su leichter. Bei 
sudo gab es auch schon CVS, die zu Exploits eskalierten, während bei su 
alle benutzer das gleiche Passwort verwenden müssen, um root zu werden.
Was das für den eigenen Einsatzzweck bedeutet muss jeder selbst abwägen, 
aber vermutlich ist das shared Passwort im privaten Bereich kein großes 
Problem, anders könnte es bei einer Firma aussehen.

Ich persönlich, bin jedenfalls Fan davon beim täglichen Arbeiten so 
wenig rechte wie möglich standardmäßig zu besitzen und nur bei Bedarf 
weitere rechte mit sudo/su anzufordern. Schon, um mich gegen eigene 
Dummheit abzusichern.
Daher werde ich nur für ausgewählte Aktionen kurz mal zu Root und finde 
die Lösung SSH via Key als User und dann mit sudo/su Root werden am 
praktikabelsten.

von Dave (Gast)


Lesenswert?

Mal drei Gründe FÜR sudo:

- Es ist nachvollziehbar von welchem Useraccount privilegierte Kommandos 
ausgeführt wurden.
- Wird Userzugriff über eine Schwachstelle erlangt ist das Userkennwort 
i.d.R. nicht bekannt
- Speziellen Usern kann Subset privilegierter Kommandos eingeräumt 
werden (z.B. Dienste neu starten für diverse Supporter/Entwickler)

von Le X. (lex_91)


Lesenswert?

Joerg W. schrieb:
> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
> eingeben.

Hier gehts um Raspberry Pi OS (ehemals Raspbian).
Da erfordert sudo im default kein PW.

von Jack V. (jackv)


Lesenswert?

Dave schrieb:
> Mal drei Gründe FÜR sudo:
> […]

Der erste und der letzte Punkt setzen voraus, dass jemand sudo 
konfiguriert hat, der sich damit auskennt – und dann ist’s, wie sudo 
tatsächlich gedacht war und auch genutzt werden sollte. Und dann kann 
sudo tatsächlich einen Sicherheitsgewinn mit sich bringen.

Der mittlere Punkt ist hingegen alleinestehend untauglich: wer 
Userzugriff hat, kann auch das Passwort abgreifen. Nicht sofort, aber 
sobald der User sudo das nächste Mal ausführt. Wenn der dritte Punkt 
jedoch sauber umgesetzt worden ist, hält sich der Schaden auch hier in 
Grenzen.

Gibt halt kein Setup, das für jeden gleichermaßen passt. Gibt aber 
welche, die aus Sicherheitssicht universell untauglich sind, und einem 
User via sudo sämtliche Rechte einzuräumen, gehört dazu – aber darum 
ging’s hier ja eigentlich gar nicht, und diese Diskussion gab’s ja auch 
schon oft genug.

von Ein T. (ein_typ)


Lesenswert?

Jack V. schrieb:
> Jemand, der erstmal Zugriff mit Userrechten auf so einem System
> erlangt hat, kann im nächsten Schritt im Normalfall problemlos das für
> ›sudo‹ genutzte Passwort (üblicherweise ja das Userpasswort) abgreifen,

Erstmal muß er Benutzerrechte auf dem System bekommen, und dann muß er 
auch noch unbemerkt das Paßwort abgreifen. Beides ist keineswegs so 
trivial, wie es sich bei Dir liest, insbesondere dann, wenn es unbemerkt 
geschehen muß.

> Ein noch schlechterer Schutz als ein nichtvorhandener Schutz ist ein
> eingebildeter Schutz.

Das ist zweifellos richtig, Stichwort Risikokompensation, aber sudo(1) 
IST in dem hier diskutierten Fall eine vorhandene Hürde, die ein 
Angreifer erst einmal unter überwinden muß. Jede zusätzliche Hürde, auch 
eine niedrige, erhöht für den Angreifer das Entdeckungsrisiko und den 
Aufwand -- und damit die Wahrscheinlichkeit, daß er sich ein leichteres 
Opfer sucht. Ob Du mit der Default-Konfiguration von sudo(1) in den 
verbreiteten Distributionen glücklich bist, spielt dabei keine Rolle, 
und wenn Du sicherheitsbewußt und -informiert bist, diese Konfiguration 
zu kennen, kannst Du sie binnen weniger Sekunden nach Deinen Wünschen 
ändern.

> Und im Gegensatz zu der Variante, bei der sich Root nur von außen
> einloggen kann, ist’s bei der Variante, den Root-Login zu verbieten und
> die Rechte nur lokal zu erlangen, dann auch egal, wie der Bösling
> Zugriff mit den Userrechten erlangt hat – reicht, dass er drauf ist.

Ganz so egal ist das nicht, wie der User die Userrechte erlangt hat, und 
wenn er die erlangt hat, ist es ohnehin zu spät und das Kind liegt tot 
im Brunnen. Zudem wird ein Angreifer, der Userrechte auf dem System 
erlangt hat, sich vermutlich nicht zu lange mit dem Abgreifen von 
Paßworten aufhalten, sondern die Privilegienerweiterung über einen 
lokalen Exploit zu erlangen versuchen.

> Wenn ich abschätzen sollte, ob „Useraccount kompromittiert“ oder „SSH
> kaputt“ häufiger vorkommt, würde ich dann doch deutlich zu Ersterem
> tendieren.

Da bin ich ganz bei Dir, keine Frage. Hatte ich ja oben schon 
geschrieben: das mit Abstand größte Sicherheitsrisiko sind die Benutzer.

> Best Practice hängt jedoch immer auch ein wenig vom Kontext ab. Einen
> normalen Pi im LAN, der vielleicht noch etwas Wölkchen für unterwegs
> anbietet und daher exponiert ist, wird man ganz sicher nicht mit der
> vollen Packung Sicherheitskonzept belegen, die ein Admin auffahren kann,
> der geschäftskritische Firmen-IT betreut, und für die Zeit Geld bekommt.
> Letztlich gibt es auch nicht das eine Konzept, das für jeden passt.

Ja, natürlich -- aber wenn das Maschinchen sogar von extern erreichbar 
ist, dann gelten erhöhte Sicherheitsanforderungen -- wie bei jedem 
System, das von extern erreichbar ist. Deswegen steckt man solche 
Systeme üblicherweise in ein eigenes Netzwerksegment, die 
Demilitarisierte Zone (DMZ). Aber das weißt Du ja selbst.

von Ein T. (ein_typ)


Lesenswert?

Joerg W. schrieb:
> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
> eingeben.

...oder halt das Nutzerpaßwort, das ist bei vielen Distributionen heute 
bereits so voreingestellt. Ich persönlich finde das bei Weitem nicht so 
schlimm wie andere Benutzer hier und sehe zumindest noch einen zweiten 
Vorteil: durch die Abfrage des Paßwortes wird unbedarften und / oder 
unkonzentrierten Benutzern noch einmal klar verdeutlicht, daß sie jetzt 
den Komfortbereich verlassen und aufpassen müssen, was sie tun.

von Ein T. (ein_typ)


Lesenswert?

Matthias schrieb:
> Joerg W. schrieb:
>> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
>> eingeben.
>> Bei meinem Server geht das SSH Login auch nicht mit root, allerdings
>> nutze ich sudo eher selten und wechsle meist mit "su -" zum
>> Root-Account.
>
> Der Punkt ist aber, dass ein Angreifer, der bereits als User angemeldet
> ist, auch die PATH Variable deiner Shell ändern kann.

Nein, kann er nicht. Als User kann er höchstens SEINE PATH-Variable 
manipulieren. MEINE kann er nur dann manipulieren, wenn er MEINEN 
Benutzeraccount übernommen hat, und das sudo(1) (oder, angelegentlich: 
das SSH-Binary) kann er dann durch eine manipulierte Version ersetzen, 
wenn er bereits root-Privilegien hat und die Sache ohnehin schon aus 
meiner Sicht maximal verkackt ist.

> Damit könnte er
> ein falsches sudo ablegen, das das eingegebene Passwort im Klartext
> speichert. Der Angreifer muss zwar warten, bis sich der Admin wieder
> anmeldet, ab dann hilft das aber auch nicht mehr.

All diese Annahmen gehen davon aus, daß ein Angreifer meinen 
User-Account knacken und an meinem Environment herumfummeln konnte. Aber 
so einfach ist das gar nicht, den Useraccount auf einem Linux zu 
übernehmen, langfristig zu behalten, dann auch noch die gewünschte 
Information (das Paßwort) irgendwohin zu verschieben oder abzugreifen -- 
und das alles, ohne daß der User etwas davon mitbekommt. Und dann, wie 
schon eben erwähnt: wenn ein User MEINEN Account auf MEINEM System 
knacken konnte, ist sicherheitstechnisch schon sehr massiv etwas 
schiefgelaufen und meine RasPis mein allerkleinstes Problem.

von Jack V. (jackv)


Lesenswert?

Ein T. schrieb:
> durch die Abfrage des Paßwortes wird unbedarften und / oder
> unkonzentrierten Benutzern noch einmal klar verdeutlicht, daß sie jetzt
> den Komfortbereich verlassen und aufpassen müssen, was sie tun.

Wenn’s denn so wäre: in der Praxis geben die Buntu-User (mal 
stellvertretend, weil Ubuntu das nunmal salonfähig gemacht hat) beim 
ersten Befehl ihr Passwort ein, und schreiben dann vor jedem Befehl ihr 
›sudo‹ – für die scheint es für „führe aus:“ zu stehen, und nach dem 
Passwort wird dann auch erstmal nicht mehr gefragt.

Und es ist auch absolut nicht schwer, die .bashrc (oder das Äquivalent 
der benutzten Shell) so zu erweitern, dass das beim Aufruf von sudo 
eingegebene Passwort ausgeleitet wird, ohne dass der User es merkt – 
einen Proof of Concept hat mir ein User vor Jahren schon in einem 
anderen Forum geschickt, mögliche Wege sind weiter oben hier im Thread 
skizziert. Man muss es nicht mal sonderlich verstecken, weil diese 
Usergruppe, die ›sudo‹ selbst vor ›ls‹ im ~ schreibt, sicher nicht in 
die entsprechenen Files guckt, oder gar ein IDS laufen hat, das bei 
solchen Änderungen Alarm schlagen würde.

Aber wie gesagt – die sudo-Diskussion hatten wir schon. Da warst du noch 
mit dem anderen Account unterwegs. Da gab’s damals keinen Konsens, und 
so wird es auch hier keinen geben.

von Ein T. (ein_typ)


Lesenswert?

imonbln schrieb:
> Auf der anderen Seite bietet sich ein Key basierter SSH Zugang für Root,
> vor allen dann an, wenn es regelmäßig automatisierte Aufgaben gibt,
> welche ein Remote Server auf den Raspberry Pi erledigen muss.

Für so etwas gibt es Lösungen wie Ansible oder Fabric, die sich als 
unprivilegierter Benutzer einloggen und dann per sudo(1) die nötigen 
Privilegien verschaffen können.

von Ein T. (ein_typ)


Lesenswert?

Le X. schrieb:
> Joerg W. schrieb:
>> Für sudo muss man aber (zumindest ist es bei mir so) das Root-Passwort
>> eingeben.
>
> Hier gehts um Raspberry Pi OS (ehemals Raspbian).
> Da erfordert sudo im default kein PW.

...und die Credentials des Standardbenutzers sind bekannt. Aus 
Sicherheitssicht ist das keine besonders sinnvolle Konfiguration, nein. 
Aber die Antwort darauf kann ja nicht sein, die Best Common Practices 
einfach mal komplett über Bord zu werden, und die Konfiguration noch 
unsicherer zu machen.

von Ein T. (ein_typ)


Lesenswert?

Jack V. schrieb:
> Der erste und der letzte Punkt setzen voraus, dass jemand sudo
> konfiguriert hat, der sich damit auskennt

Dein Vorschlag setzt aber voraus, daß sich jemand mit SSH inklusive 
ssh-keygen(1) und ssh-agent(1) auskennt und das konfiguriert. Wenn das 
nicht gegeben, reißt Du mit Deiner Empfehlung eine zusätzliche 
Sicherheitslücke auf, ohne die vorhandene -- die schwache 
sudo(1)-Konfiguration zu beheben. Am Ende hat der User also zwei 
Probleme anstatt nur eines Problems... ob das so eine gute Idee ist?

von Ein T. (ein_typ)


Lesenswert?

Jack V. schrieb:
> Wenn’s denn so wäre: in der Praxis geben die Buntu-User (mal
> stellvertretend, weil Ubuntu das nunmal salonfähig gemacht hat) beim
> ersten Befehl ihr Passwort ein, und schreiben dann vor jedem Befehl ihr
> ›sudo‹ – für die scheint es für „führe aus:“ zu stehen, und nach dem
> Passwort wird dann auch erstmal nicht mehr gefragt.

Das ist nicht schön, und noch viel schlimmer: wenn sie solcherart über 
sudo(1) Dateien oder Verzeichnisse anlegen, gehören die root und sie 
brauchen dann immer wieder sudo(1), um sie zu bearbeiten.

> Und es ist auch absolut nicht schwer, die .bashrc (oder das Äquivalent
> der benutzten Shell) so zu erweitern, dass das beim Aufruf von sudo
> eingegebene Passwort ausgeleitet wird, ohne dass der User es merkt –
> einen Proof of Concept hat mir ein User vor Jahren schon in einem
> anderen Forum geschickt, mögliche Wege sind weiter oben hier im Thread
> skizziert.

Doch, das ist ziemlich schwer, sonst würde es ja alle naselang 
passieren, und die Blogs, Zeitungen, Fernsehnachrichten, Twitter und 
Youtube wären voll mit Idioten, die "Linux ist unsicher" schreien 
würden. Das ist aber nicht so -- und jetzt rate, warum? Genau: weil es 
gar nicht so einfach ist, einen Useraccount auf einem Linux unbemerkt zu 
kompromittieren, dort Dat(ei)en zu manipulieren, Daten auszuleiten, und 
so weiter -- und da alles dauerhaft zumindest so lange, bis der User 
sich wieder mal erweiterte Privilegien verschafft. Übrigens: wenn ich 
$PATH manipulieren kann, greif ich das Paßwort mit einem manipulierten 
su(1) ab... auch nix gewonnen, oder?

> Aber wie gesagt – die sudo-Diskussion hatten wir schon. Da warst du noch
> mit dem anderen Account unterwegs. Da gab’s damals keinen Konsens, und
> so wird es auch hier keinen geben.

Hier geht es ja um den privilegierten Remote-Zugang. Warum einige User 
das jetzt wieder zu einer Diskussion über sudo(1) gemacht haben, ist mir 
schleierhaft. Und diese sudo(1)-Diskussion spielt auch keine Rolle, denn 
die Aussage "also dies und jenes ist unsicher, da kann der Rest ruhig 
auch noch unsicherer gemacht und der übliche Stand der Technik ignoriert 
werden" ist ja wohl nicht ernst gemeint.

von Jack V. (jackv)


Lesenswert?

Ein T. schrieb:
> Hier geht es ja um den privilegierten Remote-Zugang.

Genau, und deswegen:

Ein T. schrieb:
> Übrigens: wenn ich
> $PATH manipulieren kann, greif ich das Paßwort mit einem manipulierten
> su(1) ab... auch nix gewonnen, oder?

→ wenn ich aber vollständig verhindere, dass ein User lokal via Passwort 
Rootrechte erlangen kann, indem ich nämlich root nur den direkten Login 
mit sicherem Schlüssel erlaube, dann bin ich all diese Szenarien, in 
denen ein kompromittierter Useraccount durch Abgreifen des Passworts als 
Sprungbrett dient, schonmal los. Denn entgegen deiner Darstellung ist’s 
eben nicht schwer: wer Userrechte erlangt hat, kann die entsprechenden 
Änderungen vornehmen – ob nun PATH, ~/.bashrc oder irgendwas Anderes, 
ist dabei egal. Und wenn der User lokal zu Root werden kann, kann der 
Angreifer, der den Useraccount kompromittiert hat, das nunmal auch.

Dass es nicht alle Nase lang passiert, liegt eher daran, dass es häufig 
nicht gar so leicht ist, überhaupt erstmal an den Useraccount zu kommen. 
Dass man kaum was über die Fälle liest, in denen es doch passiert ist, 
liegt dann wieder eher daran, dass die betreffenden User das gar nicht 
mitbekommen. Damals™, in längst verjährter Zeit, hatte ich ’nen Stapel 
dedizierter Server zur Hand, für die andere Leute bezahlt haben. So 
Leute vom Typ „ich hab zwar gar keine Ahnung von Linux, aber ich kann 
mir ja einfach ’nen eigenen Gameserver klicken – muss man ja gar nix für 
können!!k“. Solange man nicht übertrieben hat und vor allem keine 
„unerklärlichen” Fehler oder gar Abuse-Mails an den Provider provoziert 
hat, ist’s denen nie aufgefallen.

von Ein T. (ein_typ)


Lesenswert?

Jack V. schrieb:
> → wenn ich aber vollständig verhindere, dass ein User lokal via Passwort
> Rootrechte erlangen kann, indem ich nämlich root nur den direkten Login
> mit sicherem Schlüssel erlaube, dann bin ich all diese Szenarien, in
> denen ein kompromittierter Useraccount durch Abgreifen des Passworts als
> Sprungbrett dient, schonmal los.

Dann benutzt der Angreifer eben einen lokalen Exploit, die sind ja auch 
nicht sooo selten. Daher, wie gesagt: wenn ein Useraccount 
kompromittiert wurde, ist der Drops schon gelutscht, und es ist zu spät!

> Denn entgegen deiner Darstellung ist’s
> eben nicht schwer: wer Userrechte erlangt hat, kann die entsprechenden
> Änderungen vornehmen – ob nun PATH, ~/.bashrc oder irgendwas Anderes,
> ist dabei egal. Und wenn der User lokal zu Root werden kann, kann der
> Angreifer, der den Useraccount kompromittiert hat, das nunmal auch.

Der Angreifer muß erstmal die Rechte des richtigen Users erlangen. Und 
wenn der Angreifer $PATH manipulieren kann und Du sicherheitssensitive 
Programme nicht über deren absoluten Pfad aufrufst, die Shell also $PATH 
benutzt, dann kann er Dir auch ein gefaketes ssh(1)-, ssh-keygen(1), 
ssh-agent(1), gtksu(1), kdesu(1) oder <you name it> unterjubeln, und auf 
diese Weise Deine Paßworte oder eventuell sogar eine entschlüsselte 
Kopie Deines privaten SSH-Schlüssels abgreifen. Die Sicherheit der 
ganzen Angelegenheit steht und fällt also offensichtlich mit Deinem 
Useraccount -- und sudo(1) spielt dabei nur eine sehr überschaubare 
Rolle.

> Dass es nicht alle Nase lang passiert, liegt eher daran, dass es häufig
> nicht gar so leicht ist, überhaupt erstmal an den Useraccount zu kommen.

Mein Reden... ;-) ...und genau darum geht's ja.

Außerdem dürfen wir ja nicht vergessen, daß wir hier von zwei (2) 
Systemen reden: vom lokalen Admin-Desktop und vom Remote-Server, hier 
dem RasPi. Wenn der Desktop des Admins geknackt ist, ist es ohnehin 
vorbei mit der Sicherheit, denn wie oben schon gesagt: die Möglichkeiten 
des Angreifers zum Abgreifen von Paßworten sind in diesem Fall nahezu 
unbegrenzt und beileibe nicht auf sudo(1) beschränkt. Und mit Deiner 
Idee, root nur remote mit verschlüsseltem SSH Private Key reinzulassen, 
ist der Sicherheit deswegen nicht gedient. Etwas anderes wäre es mit 
einer MFA -- mit einem externen Authentifikator, in diesem Fall...

Übrigens wird der RasPi meines Wissens mit einem Standardbenutzer "pi" 
und einem Standardpaßwort "raspberry" ausgeliefert. Das finde ich 
wesentlich gravierender als die sudo(1)-Konfiguration, insbesondere aber 
in Kombination damit...

Beitrag #7143624 wurde von einem Moderator gelöscht.
von Ein T. (ein_typ)


Lesenswert?

Hans schrieb im Beitrag #7143624:
> Da lieferst du gerade selbst das beste Argument dafür, dass ein direkter
> root Login gar kein Problem ist, da die zusätzliche Schickt eines
> Useraccounts nichts bringt.

Aha: weil es für den Angreifer mehrere Möglichkeiten zur 
Privilegienerweiterung gibt, wenn er bereits einen Useraccount kapern 
konnte, verzichten wir einfach anderswo auch noch auf ein höheres 
Schutzniveau...

> Ein T. schrieb:
>> sudo(1)
>
> Was soll eigentlich die schwachsinnige (1)? Richtig wäre sudo(8).

Auch wenn die meisten Linux-Distributoren die Manpage in die Sektion 8 
installieren, würde sie korrekt in Sektion 1 einsortiert -- wie die 
Manpage von su(1).

von Bauform B. (bauformb)


Lesenswert?

Ein T. schrieb:
>> Ein T. schrieb:
>>> sudo(1)
>>
>> Was soll eigentlich die schwachsinnige (1)? Richtig wäre sudo(8).
>
> Auch wenn die meisten Linux-Distributoren die Manpage in die Sektion 8
> installieren, würde sie korrekt in Sektion 1 einsortiert -- wie die
> Manpage von su(1).

Nö. Wir haben doch gerade gelernt, dass nur ein sorgfältig 
konfiguriertes sudo ein gutes sudo ist. Also (8). Ganz richtig wäre (1) 
und (8), wozu gibt es SEE ALSO.

von Zeno (Gast)


Lesenswert?

Merkt denn hier keiner, das der TO nach dem Werfen des Stöckchens sich 
nie wieder gemeldet hat und ihr hier nur noch alleine zum x-ten Mal über 
Sinn oder Unsinn eines (Remote-) root-Login debattiert.

von Jack V. (jackv)


Lesenswert?

Und? Ich bin sicher, dass auch andere Leute als der TE aus diesem Thread 
Nutzen ziehen konnten.

von Ein T. (ein_typ)


Lesenswert?

Bauform B. schrieb:
> Nö. Wir haben doch gerade gelernt, dass nur ein sorgfältig
> konfiguriertes sudo ein gutes sudo ist. Also (8). Ganz richtig wäre (1)
> und (8), wozu gibt es SEE ALSO.

IMHO wären die Sektionen 1 für sudo(1) und sudoreplay(1), sowie 8 für 
visudo(8) korrekt. Aber ich glaube, das hat in diesem Thread nicht viel 
zu suchen.

von Hans (Gast)


Lesenswert?

Ein T. schrieb:
> Bauform B. schrieb:
>> Nö. Wir haben doch gerade gelernt, dass nur ein sorgfältig
>> konfiguriertes sudo ein gutes sudo ist. Also (8). Ganz richtig wäre (1)
>> und (8), wozu gibt es SEE ALSO.
>
> IMHO wären die Sektionen 1 für sudo(1) und sudoreplay(1), sowie 8 für
> visudo(8) korrekt. Aber ich glaube, das hat in diesem Thread nicht viel
> zu suchen.

Ach wieso, du hast den thread doch sowieso schon für deine Ergüsse und 
die Urheberrechtsverletzung gekapert. Ob du da noch mehr von YHO 
dazugibst, ist auch schon egal.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.