SSH: Benutzer mit eingeschränkter Shell

Status
Für weitere Antworten geschlossen.

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen.

Ich habe mal wieder eine Frage...

Wie kann ich einem Benutzer eine Shell zuweisen mit möglichst wenigen Rechten??? Also dass er keine Befehle, ausser Logout, ausführen kann.

Danke für eure Antworten.

Gruss Momoleta
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wie kann ich einem Benutzer eine Shell zuweisen mit möglichst wenigen Rechten??? Also dass er keine Befehle, ausser Logout, ausführen kann.

wenn ich den Sinn verstehen würde ...

Normalerweise macht man so etwas mit einem chroot ähnlich wie bei dem anonymen User des FTPs: man setzt ihn in ein HOME-Verzeichnis (z.B. per .profile), und legt dort in einem Verzeichnis ./bin alle Kommandos per Link ab, die erlaubt sind und macht einen chroot auf das HOME-Verzeichnis. Da man dann nicht mehr auf anderen Pfade zugreifen kann, lebt man in seinem Mikrokosmos und kann halt nur noch das ausführen, was in ./bin steht.

Itari
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Danke für die Antworten.

@jahlives

Das wäre zum einen SSH Tunnel zu öffnen und da dass auch noch jemand anders machen können sollte, möchte ich ausschliessen dass ausversehen eine Datei gelöscht, anpasst oder ändert werden kann.

@itari

Das wäre natürlich auch eine Super Idee. Hast du gerade eine beispiel Datei für mich, damit ich sehe wie dass etwa aussehen müsste???

Gruss Momoleta
 

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
@itari

Sorry das check ich nicht ganz:
legt dort in einem Verzeichnis ./bin alle Kommandos per Link ab, die erlaubt sind und macht einen chroot auf das HOME-Verzeichnis

Kannst du mir das erklären oder anhand eines Beispiels zeigen????

Sorry für meine warscheindliche dumme Frage...

Gruss Momoleta
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@itari
das mit dem chroot verstehe ich prinzipiell schon, aber imho geht das mit der Firmware ned. Denn die Kommandos sind ja eigentlich alle busybox das würde heissen du müsstest busybox selber auch in den chroot kopieren. Dann aber kann der User ja einfach einen Link anlegen und hat das Kommando das der admin verboten hat.
@momoleta
wäre es für dich eine Option ssh nur noch mit Zertifikaten zu verwenden? Falls ja dann hast du mit authorized_keys sehr mächtige Möglichkeiten. z.B. kannst du relativ einfach eine Whitelist mit Kommandos einbauen, welche erlaubt werden sollen.
 

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
@jahlives

jo das wäre sogar mein Endziel... Also müsste ich die authorized_keys datei editieren??? Kann ich auch Kommandos (àla halt, reboot, rm etc...) verbieten???

Danke für eure Antworten.

Gruss Momoleta
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das ganz funzt nur wenn du den ssh komplett auf Zertifikate umstellst. Sonst kann man die Beschränkung zu einfach umgehen.
Grundsätzlich würde dann die authorized_keys des entsprechenden Users so ausschauen:
Code:
from="*",command="/root/validate-ssh-cmd.sh" ssh-rsa HASH_WERT_DES_KEYS
from="*" heisst jede IP mit dem richtigen Schlüssel darf zugreifen
command="/pfad/zum/cmd" legt das auszuführende Kommando fest
Diese Datei bekommt vom ssh das vom Client übergebene Kommando in $SSH_ORIGINAL_COMMAND und prüft dieses. Wenn es in der Whitelist steht (bei mir rsync --server, mysqldump , und ls ) wird das Kommando ausgeführt. ansonsten wird ein Fehler geworfen und die Shell wird geschlossen
Code:
#!/bin/bash


case "$SSH_ORIGINAL_COMMAND" in
 rsync\ --server* | mysqldump\ * | ls\ *)
  $SSH_ORIGINAL_COMMAND
 ;;
 *)
  exit 1
 ;;
esac
Wenn es aber darum geht dass ein User nur einen Tunnel öffnen können soll, resp automatisch ein Tunnel/Programm geöffnet/ausgeführt werden soll, dann gibt es mit authorized_keys noch viel bessere Möglichkeiten z.b. kann du via diesem File auch ssh Eigenschaften festlegen
Code:
from="*",command="irgendwas",no-port-forwarding,no-agent-forwarding,no-pty ssh-rsa HASH
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
aber imho geht das mit der Firmware ned. Denn die Kommandos sind ja eigentlich alle busybox das würde heissen du müsstest busybox selber auch in den chroot kopieren. Dann aber kann der User ja einfach einen Link anlegen und hat das Kommando das der admin verboten hat.

du müsstes IPKG-Kommandos nehmen ...

Itari
 

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
@jahlives

Wie kann ich dann die $SSH_ORIGINAL_COMMAND editieren??? Oder muss ich die zuerst selbst erstellen. Wenn ja wo???

Was ist würde denn dass
Rich (BBCode):
from="*",command="irgendwas",no-port-forwarding,no-agent-forwarding,no-pty ssh-rsa HASH
genau bewirken???

Danke
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
SSH_ORIGINAL_COMMAND musst du nicht erstellen. Dieser Wert wird dem Script automatisch zugänglich gemacht und enthält das Kommando inkl. aller Parameter. Bezüglich der Details der Parameter würde ich mal das Manual von sshd konsultieren
 

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
@ jahlives

Ich habe die Dateien wie beschrieben erstellt. Leider hat mein SSH Benutzer immer noch alle Befehler zur verfügung.....
Ist was mit der Berechtigung evtl. Falsch???

Im Shell-Script habe ich bash durch ash ersetzt.

Noch eine Idee was ich falsch mache???

Gruss Momoleta
 

momoleta

Benutzer
Mitglied seit
14. Dez 2011
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
@ jahlives

Hallo...

Leider funzt das immer noch nicht.
Was mache ich falsch???

Gruss Momoleta
 
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