PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH User nur im bestimmten verzeichnis



Herr Kommisar
13.03.04, 10:26
hi,

Gibt es eine möglichkeit per ssh eine bestimmten user im bestimmten verzeichnis
einzusperren


so ähnlich wie DefaultRoot ~/


auf bestimmte user beschränken klappt schon

AllowUser Hein Bloed

aber...

Dewitt
13.03.04, 10:45
Das geht mit einem chroot().
Oder wenn du nur scp erlauben willst, geht auch scponly.

http://www.jmcresearch.com/projects/jail/
http://www.sublimation.org/scponly/

uTaNG
13.03.04, 21:33
Es gibt da noch eine Möglichkeit das mit ssh zu realisieren und zwar nennt sich das ganze Forced Commands und ist nicht so bekannt aber wirklich nützlich.

Du kannst zu jedem angelegtem Schlüssel Kommandos anfügen die dann in Verbindung mit dem Schlüssel ausgeführt werden.

Ich kann dazu nicht viel sagen.weil ich mich damit noch nicht beschäftigt habe aber schau dir mal die Manpage dazu an, unter der Rubrik AUTHORIZED_KEYS FILE FORMAT wirst du fündig. Dürfte sogar mit einem Bsp. sein...


Du kannst ja mal dann bescheid sagen wenn du eine Lösung hast...


-mfg uTang-

snoopy2004
13.03.04, 23:14
dewitt, könntest du auf die chroot Methode mal genauer eingehen? Ich versuche schon ewig das mal zu realisieren das ich z.B: User nur im Homeverzeichniss einsperren kann, aber ncoh ncit hinbekommen mit chroot. Wird auch nirgends, wirklich erklärt der Befehl, selbst die Man page ist nciht wirklich aufschlussreich!

uTaNG
14.03.04, 11:55
wenn du es ohne ssh machst dann schau dir mal das Tutorial an:

chroot login HOWTO (http://www.tjw.org/chroot-login-HOWTO/)

Dewitt
14.03.04, 13:30
Hi.

Snoopy, im Prinzip gibst du einem User keine normale Shell, sondern das jail Binary (/usr/local/bin/jail oder wo es gerade liegt). Vorher bastelst du dir noch ein jail environment (mkjailenv). Dann kannst du mit "addjailsw" ein paar standard Binarys in das chroot environment reinkopieren, wie z.B. ln, cat, less, sh, ls, mkdir, rmdir, ssh, scp usw., damit der gefangene User dort auch wenigstens "etwas" machen kann.
Dann legst du den user an (usermod -g users -d /jail -s /usr/local/bin/jail jailtest) mit dem Homeverzeichnis des chroot verzeichnisses und dem jail binary als shell.

Als nächstes wird dieser gefangene User noch innerhalb des chroot Jails "registriert" (addjailuser). Dort gibst du dann die richtigen Daten an (addjailuser /jail /home/jailtest /bin/sh jailtest).

Wenn alles geklappt hat, kann der User sich einloggen und führt das jail Binary als Shell aus. Dieses chrootet den User im chroot environment und führt dort die richtige shell aus (/bin/sh - In wirklichkeit dann /jail/bin/sh oder sowas).

Der User hat dann innerhalb dieses Chroots eine begrenzte Auswahl von Programmen. Du kannst aber als root nachträglich noch weitere Programme in das chroot integrieren.

Am besten mal die Dokus studieren. War echt nicht einfach das ganze rauszufinden. Außerdem finde ich den mehrverbrauch des chroots blöde. Darum geb ich Usern gar keinen shell Account mehr. :)

bye,
Dennis

mbo
14.03.04, 13:43
Hi,

um die Alternative komplett zu machen:

1.) RSSH http://rssh.sourceforge.net/
2.) OpenSSH mit Patch neu kompilieren http://chrootssh.sourceforge.net/index.php

cu/2 iae

snoopy2004
14.03.04, 15:04
danke dewitt,
und ich dachte immer, das wär so, das an als eingesperrtter user zwar alles hat, wie nen normaler user halt nur nicht aus seinem homeverzeichniss raus kann. eben ne neue viertuelle root eben ( / ) nur das die dann auf /home/username liegt, naja ok, dankeschön. werds mal probieren.

Jakez
17.03.04, 14:35
Wenn du als ziel hast, bestimmten usern bestimmte befehle zu erlauben, ist auch sudo dein freund...... mit ihm ist ein User in der lage, superuser befehle auszuführen (kann man definieren welche), und alles was er fabriziert wird mitgeloggt.....

Sudo Homepage (http://www.courtesan.com/sudo/)

Da ist die offizielle HP ....


Gruß
Dennis