Extra Nutzer für SSH

Alles rund um sicherheitsrelevante Fragen und Probleme.
Richard
Beiträge: 433
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Extra Nutzer für SSH

Beitrag von Richard » 07.01.2019 13:38:55

Hallo,

auf meinem Tablet läuft LineageOS, das auch SSH über das Terminal an Board hat. Leider geht da keine Authentifizierung über eine Schlüsseldatei. Könnte man alternativ am Zielrechner, an den per SSH ein Befehl geschickt werden soll, einen neuen Nutzer anlegen dessen einzige Rechte es sind ein Script im Homeordner des Standardbenutzers auszuführen? Dann könnte man einfach am Handy SSH per Passwort verbinden lassen und es wäre egal wenn das Passwort dort im Klartext steht, weil der Benutzer eh nichts darf.

Also so: Unter /home/pi/script liegt ein Script das normal 'pi' gehört. Ein Nutzer 'pi-ssh' darf nur genau dieses starten, mehr nicht.

Wie müsste ich das einrichten? Zum einem braucht er Zugriff auf genau diese Datei, zum anderen müsste ich alles andere deaktivieren. Reicht es Gruppenzugehörigkeiten zu entfernen?

Richard

MSfree
Beiträge: 3971
Registriert: 25.09.2007 19:59:30

Re: Extra Nutzer für SSH

Beitrag von MSfree » 07.01.2019 15:38:55

Richard hat geschrieben: ↑ zum Beitrag ↑
07.01.2019 13:38:55
Unter /home/pi/script liegt ein Script das normal 'pi' gehört. Ein Nutzer 'pi-ssh' darf nur genau dieses starten, mehr nicht.
Stop, Denkfehler: :wink:

In einem Skript werden ja normalerweise weitere Befehle und Porgramme ausgeführt, z.B. könnte man mit einem Skript auch ein Backup mit rsync starten. Wenn du die Ausführbarkeit auf so ein Skript beschränkst, könnten keine Porgrammaufrufe mehr ausgeführt werden, wie hier z.B. rsync.

ReturnToSender
Beiträge: 120
Registriert: 23.10.2018 18:06:09

Re: Extra Nutzer für SSH

Beitrag von ReturnToSender » 07.01.2019 17:13:56

Richard hat geschrieben: ↑ zum Beitrag ↑
07.01.2019 13:38:55
Also so: Unter /home/pi/script liegt ein Script das normal 'pi' gehört. Ein Nutzer 'pi-ssh' darf nur genau dieses starten, mehr nicht.
Wenn sich ein Benutzer 'pi-ssh' anmeldet, bedeutet das, dass er auch erst mal im Homedir des Benutzers 'pi-ssh' auf dem Gerät SSH-Server landet. In dem Fall wird er gar keine Rechte haben, das Homedir des User 'pi' zu öffnen und dort ein Script zu starten. Das Script müsste sich also auch im Homedir des User 'pi-ssh' befinden. Liegt es dort als das einzige Script, kann er auch nur dieses starten. Das bedeutet aber nicht, dass er nicht auch andere, reguläre Programme/Scripte starten kann, die in den üblichen Linux-Verzeichnisen abgelegt sind.

cronoik
Beiträge: 1712
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Extra Nutzer für SSH

Beitrag von cronoik » 07.01.2019 17:50:24

Zusaetzlich zu den Kommentare meiner Vorredner:
EInschraenken kannst du beispielsweise uber das authorized_keys file (siehe [1] und [2]).

[1] https://www.thomas-krenn.com/de/wiki/Au ... %C3%A4nken
[2] https://unix.stackexchange.com/question ... fic-script
Hilf mit unser Wiki zu verbessern!

Richard
Beiträge: 433
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Extra Nutzer für SSH

Beitrag von Richard » 08.01.2019 12:27:47

Da gibt es aber ein anderes Henne-Ei-Problem. Ich würde mich hier aussperren, wenn ich den Benutzer anlege, dann - bevor der Zugriff begrenzt ist - die Schlüsseldatei kopieren und entsprechend abändern um nur einen Befehl ausführen zu können. Dann kann ich die authorized_keys aber auch nicht mehr ändern. Ein anderer User aber auch nicht. Das könnte wohl nur root?

uname
Beiträge: 9711
Registriert: 03.06.2008 09:33:02

Re: Extra Nutzer für SSH

Beitrag von uname » 08.01.2019 12:54:27

Wahrscheinlich habe ich dein Problem nicht verstanden. Du willst dich von Tablet zu einen Server verbinden? Wenn der Benutzer sowieso nichts darf, warum willst du dich verbinden? Wenn du die Identität welchseln willst könntest du dem Benutzer in /etc/passwd evtl. die Shell /bin/su geben ;-) Was soll der Benutzer denn überhaupt dürfen?

cronoik
Beiträge: 1712
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Extra Nutzer für SSH

Beitrag von cronoik » 08.01.2019 17:19:10

Richard hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 12:27:47
Das könnte wohl nur root? Da du aber auch einen Nutzer anlegen kannst, hast du doch administrative Rechte.
Ja.
Richard hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 12:27:47
Da gibt es aber ein anderes Henne-Ei-Problem. Ich würde mich hier aussperren, wenn ich den Benutzer anlege, dann - bevor der Zugriff begrenzt ist - die Schlüsseldatei kopieren und entsprechend abändern um nur einen Befehl ausführen zu können. Dann kann ich die authorized_keys aber auch nicht mehr ändern.
Ich bin gerade unterwegs, aber die Begrenzung duerfte nur neue Verbindungen betreffen (Vielleicht laesst du dies noch einmal bestaetigen von jemanden aus dem Forum). Deshalb oeffene einfach zwei Terminals und verbinde dich als pi-ssh. In dem einen machst du die Veraenderungen und meldest dich in diesem dann wieder ab. Danach kannst du testen ob es funktioniert wie gedacht. Falls dies der Fall ist, kannst du dich nun am zweiten Terminal abmelden. Falls nicht, hast du noch eine laufende Session in der du die Aenderungen rueckgaengig machen kannst.
uname hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 12:54:27
Was soll der Benutzer denn überhaupt dürfen?
Nur ein Skript starten und sonst nix.

Edit: Ich habe gerade gesehen das du nicht mit Schluesseln arbeiten kannst. Dann kannst du dir die authorized_keys schenken. Sorry das hatte ich ueberlesen.
Hilf mit unser Wiki zu verbessern!

mat6937
Beiträge: 1233
Registriert: 09.12.2014 10:44:00

Re: Extra Nutzer für SSH

Beitrag von mat6937 » 08.01.2019 17:41:01

Richard hat geschrieben: ↑ zum Beitrag ↑
07.01.2019 13:38:55
Also so: Unter /home/pi/script liegt ein Script das normal 'pi' gehört. Ein Nutzer 'pi-ssh' darf nur genau dieses starten, mehr nicht.
Du könntest als Alternative auch z. B. socat, verwenden um das Script auf dem PI auszuführen. socat kannst Du so konfigurieren, dass schon ein Portscan aus dem Internet ausreicht um das Script auszuführen.

wanne
Moderator
Beiträge: 5691
Registriert: 24.05.2010 12:39:42

Re: Extra Nutzer für SSH

Beitrag von wanne » 08.01.2019 18:56:33

Du könntest als Alternative auch z. B. socat, verwenden um das Script auf dem PI auszuführen. socat kannst Du so konfigurieren, dass schon ein Portscan aus dem Internet ausreicht um das Script auszuführen.
Socat kann auch x.509 Clientauthentifkation. Siehe auch socat-openssl.txt.
Auf eine reine Verbindung würde ich nicht setzen. Da laufen zu viele Portscanner, die das versehentlich starten.
Gerade sowas ähnliches gebaut. (Allerdings ohne SSL.)
Für den genannten Zweck würde ich aber eher auf xinetd oder einen kleinen Webserver mit cgi setzen. Der kann dann gleich basic auth oder so.
rot: Moderator wanne spricht, default: User wanne spricht.

Richard
Beiträge: 433
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Extra Nutzer für SSH

Beitrag von Richard » 08.01.2019 20:31:41

cronoik hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 17:19:10
Ich habe gerade gesehen das du nicht mit Schluesseln arbeiten kannst. Dann kannst du dir die authorized_keys schenken. Sorry das hatte ich ueberlesen.
Gibt es eine andere Möglichkeit statt der authorized_keys das zu begrenzen?

Dann bleibt wieder nur die Möglichkeit die Rechte des Nutzers schon direkt am Server zu begrenzen und das bringt mich wieder zur Eingangsfrage. Von mir aus kann das Script auch im Homeordner des neuen Nutzers liegen. Über Gruppen entfernen sollte doch schon ein bisserl was gehen oder?

MSfree
Beiträge: 3971
Registriert: 25.09.2007 19:59:30

Re: Extra Nutzer für SSH

Beitrag von MSfree » 08.01.2019 21:06:16

Richard hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 20:31:41
Dann bleibt wieder nur die Möglichkeit die Rechte des Nutzers schon direkt am Server zu begrenzen und das bringt mich wieder zur Eingangsfrage. Von mir aus kann das Script auch im Homeordner des neuen Nutzers liegen. Über Gruppen entfernen sollte doch schon ein bisserl was gehen oder?
Nein, da geht nichts, denn du machst einen Denkfehler:

Natürlich kannst du den User auf die Ausführung dieses einzigen Skriptes einschränken. So weit so gut. Allerdings wäre so ein Skript funktionslos, denn das Skript dürfte nichts aufrufen, weil es unter dem eingeschränkten Benutzer läuft aud folglich nichts aufruden dürfte ausser sich selbst.

mat6937
Beiträge: 1233
Registriert: 09.12.2014 10:44:00

Re: Extra Nutzer für SSH

Beitrag von mat6937 » 08.01.2019 22:09:13

wanne hat geschrieben: ↑ zum Beitrag ↑
08.01.2019 18:56:33
Auf eine reine Verbindung würde ich nicht setzen. Da laufen zu viele Portscanner, die das versehentlich starten.
Nein, das kann nicht versehentlich passieren, denn es ist ja kein einfacher Portscan. Der source-Port muss ein bestimmter sein, ein bestimmtes Bit oder eine Kombination (z. B. ecn und/oder cwr) muss gesetzt sein und die TTL des Portscan muss eine bestimmte sein. Wenn das nicht zutrifft lässt iptables den Portscan nicht durch. Evtl. gibt es noch weitere/zusätzliche Möglichkeiten den Filter für den Portscan zu verbessern/optimieren.

Benutzeravatar
catdog2
Beiträge: 5350
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Extra Nutzer für SSH

Beitrag von catdog2 » 08.01.2019 22:34:25

Warum nicht einfach z.B. https://f-droid.org/de/packages/org.connectbot/ oder https://f-droid.org/de/packages/com.termux/ verwenden?
Gibt es eine andere Möglichkeit statt der authorized_keys das zu begrenzen?
Ein Match block in der /etc/ssh/sshd_config sollte ähnliche Möglichkeiten bieten.
Unix is user-friendly; it's just picky about who its friends are.

Richard
Beiträge: 433
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Extra Nutzer für SSH

Beitrag von Richard » 09.01.2019 08:08:27

@ catdog2

Was sind das für Apps? Welche die einfach eine SSH-Verbindung herstellen? Das suche ich nicht. Es soll automatisiert per Tasker ein Befehl per SSH geschickt werden. Da müssen Logindaten oder Schlüsselpaar schon drin stehen.

@ MSfree

Natürlich sollte dann auch der Zugriff auf die Programm die vom Script gestartet werden zugelassen werden.

MSfree
Beiträge: 3971
Registriert: 25.09.2007 19:59:30

Re: Extra Nutzer für SSH

Beitrag von MSfree » 09.01.2019 09:05:34

Richard hat geschrieben: ↑ zum Beitrag ↑
09.01.2019 08:08:27
Natürlich sollte dann auch der Zugriff auf die Programm die vom Script gestartet werden zugelassen werden.
Und genau da wird es sehr, sehr kompliziert. Die einzige Möglichkeit, die ich da sehe, ist, den Benutzer in eine chroot-Umgebung zu sperren und die Executables, die der Benutzer ausführen können soll, per Hardlink in ein Verzeichnis zu linken, auf das der Benutzer in seiner chroot-Umgebung Zugriff hat. Dumm, nur, daß praktisch alle Executables von shared Libraries abhängig sind, die du ebenfalls verlinken müßtest. Am Ende hast du dann 70% des Betriebssystemdateien verlinkt. Dann kannst du dem Nutzer auch gleich wieder vollen Zugriff aufs System zulassen, womit wir beim berühmten Schwanz angekommen sind, in den sich die Katze gerade selbst beißt.

Mit anderen Worten, einen Benutzer so einzuschränken, daß er nur auf ein Skript und alle daraus aufgerufenen Executables Zugriff hat, ist nahezu unmöglich bzw. wird irgendwann absurd, wenn man mehr als nur 1-2 Executables braucht.

Eventuell kann man mit ACLs etwas bewirken, aber das würde ich mit extremer Vorsicht benutzen. Denn du müßtest praktisch alle Dateien des Dateisystems für einen Benutzer per ACLs sperren und dann nur die nicht sperren, auf die der Benutzer zugreifen können soll (das könnten aber die selben 70% sein, die ich oben schon erwähnt habe). Wenn man sowas später mal rückgängig machen wollte, wäre eine Neuinstallation fast schon einfacher als ACLs zu suchen und rückgängig zu machen.

Antworten