rbash oder wie sperre ich einen Benutzer in seine shell ein

Post Reply
Message
Author
andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

rbash oder wie sperre ich einen Benutzer in seine shell ein

#1 Post by andreas78 »

Hallo Linuxer,

ich habe folgendes Problem:

ich möchte einem entfernten User eine Einwahl über ssh2 auf meinem firewall-server ermöglichen, damit er einen tunnel auf meinen mailserver aufbauen kann. Er soll nur den tunnel aufbauen können, auf dem fw-rechner sollte er natürlich nix machen dürfen. Ich habe per default shon die rbash eingestellt. Das dumme is nur man kann aus dieser rbash unter suse 9.0 einfach durch eingabe von "bash" ausbrechen, wie kann ich das verhindern bzw wie kann ich dem user so gut wie alles verbieten?!

mfg
andreas

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Hi,

nur die rbash als Login-Shell zu setzen bringt nichts. Du musst außerdem die .bash_profile anpassen! Beispielsweise kannst Du dort die Variable PATH so setzen, dass sie nur noch auf sein eigenes ~/bin-Verzeichnis zeigt, wo das eine Skript drinne liegt, dass der User aufrufen darf. Schau mal in die man-Page zu bash in die Sektion "RESTRICTED SHELL". Da wird zuerst beschrieben, was der User alles nicht mehr darf. Dann folgt:
These restrictions are enforced after any startup files are read.

When a command that is found to be a shell script is executed (see
COMMAND EXECUTION above), rbash turns off any restrictions in the
shell spawned to execute the script.
Zu gut deutsch: In der Datei .bash_profile kannst Du noch die PATH-Variabel verändern, der User aber später nicht mehr. Daher darf die .bash_profile für den User aber auch nur lesbar, aber nicht änderbar sein! Und wenn dein User dann ein Skript für eine definierte Aktion startet, setzen die Restriktionen für die Shell, die das Skript ausführt; aus. Was bedeutet, dass Du auch dieses Skript absichern solltest: IFS und PATH explizit setzen, ggf. statt PATH nur absolute Pfadnamen verwenden, keine Argumente vom Aufrufenden entgegen nehmen und wenn, dann nur nach paranoioden Sicherheitschecks verwenden usw.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#3 Post by andreas78 »

Hallo,

danke für die antwort, habs hinbekommen. Das is ja richtig praktisch, er kann nicht mal den vi aufrufen, mit dem man angeblich wohl einfach aus der rbash ausbrechen konnte

:D 8)

mfg
andreas

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#4 Post by jochen »

Man kann mit jedem Kommando aus der rbash ausbrechen, das einem einen sog. Shell-Out ermöglicht. Tipp mal im vi ":sh" und schon bist Du in einer neuen Shell. (Mit "exit" und ":q!" kommst Du wieder raus.)

Jochen
Die grösste Lüge der EDV? "Mal eben..."

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#5 Post by andreas78 »

Hi,

vi:sh --> command not found

/usr/bin/vi:sh --> /usr/bin/vi:sh restricted: cannot specify `/ ' in command names

8)

mfg
andreas

CheersMichael

#6 Post by CheersMichael »

Wie wäre ist denn mit den Restrictionsmöglichkeiten des SSHD via authorized_keys-File.

Hier ein Beispiel:

http://sws.dett.de/knowledgebase/tech/msg00026.html

Hope that helps.

Cheers

Michael

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#7 Post by andreas78 »

Hallo,

wenn ich mich nicht richtig irre, dann heißt das doch das die authorisation über ein zertifikat läuft. Das dumme daran is nur, das ich für diesen einen user kein zertifikat verwenden kann, da es bei größeren entfernungen (z.B. Japan-Deutschland) probleme mit der Zertifikats-Authorisation gibt. (oder bin ich schwer von begriff?!)

mfg
andreas

Post Reply