[működik]ssh account - korlátozása

 ( tovis | 2013. január 23., szerda - 15:17 )

Debian Squeeze - rajta samba apache2 squirrelmail+courier IMAP és persze exim4. Alapvetően három felhasználóval - (én a nejem és a "más" nejem).
Kellene egy "rendszer idegen" account.
Alapvetően scp és html_public hozzáférést szeretnék/kellene biztosítanom. Viszont (ha jól emlékszem) ahhoz hogy az scp működjön, kell shell hozzáférés. Ráadásul, globálisan a többi felhasználó mappáit is lehet "böngészni".
Le lehet tiltani az ssh shell hozzáférést és a korlátozni, hogy csak a saját könyvtárában mozoghasson úgy, hogy a globális beállításokat ne módosítsam?
Eddig nem találtam ilyen korlátozási lehetőségeket per user.

Több megoldás is létezik! Mindenkinek köszönöm és ha valaki tud valamit még akkor írjon!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ez a belső sftp tényleg roppan egyszerű :)
Kicsit gáz, hogy az eredeti leírás egyenesen a /home -ba küldi - olyan könyvtár kell amit a root birtokol - viszont ez majdnem megoldható:

/home
  /bubu       - ez az eredeti "home"
  bubu-heap   - root root
    /ide      - a winscp ide tud írni

Kár hogy van ez a fölösleges mappa - nem eléggé elegáns :(

* Én egy indián vagyok. Minden indián hazudik.

Egyenlőre marad a "mindkettő említve" alapú megoldás! Kicsit zöld, kicsit savanyú de a miénk! - ráadásul nem igényel semmi újat, csak egy kis konfigurálás és voila.
Frappáns :D

* Én egy indián vagyok. Minden indián hazudik.

Hasznalj sftp-t es chorootdirectory az sshd_config-ban.

Mi az a "mas nej"?

t

"más nej" - a nejem azt kérte, legyen privát és céges levelező profilja.

* Én egy indián vagyok. Minden indián hazudik.

Pedig már elkezdtem irigykedni... :)

A fizetésére, hogy elbír két asszonyt? :)

Szia!

Esetleg nézd meg az scponly shellt is, hátha megfelel. Ezt megadva a felhasználó ssh-zni nem fog tudni, de scp-n tudja kezelni a fájljait.

Cserebe az SFTP sem mukodik - ezt mindenkeppen jo tudni.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

You can use a client such as WinSCP or FileZilla to log in with scponly username, and you can use SCP or SFTP - both work fine.

Ezt ígérik, nekem filezillával működik jól. WorksForMe™ :-)

Ja, tenyleg, igazad van keverem.

Szoval: az internal-sftp szerver eseteben nem mukodik az SCP. Cserebe az internal-sftp minden kulon hokusz meg pokusz nelkul tudja a chroot-ot.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Jól látom, hogy ez a korlátozás csak azoknál lép életbe akinek az /etc/passwd fájlban a (mondjuk) /bin/sh helyett a /usr/local/sbin/scponly van beállítva?
Egy ilyen beállítás mellett tudja nézegetni a többi user állományit?

* Én egy indián vagyok. Minden indián hazudik.

+1

\o\ |o| /o/

Szia!

A csomaggal települ egy /usr/share/doc/scponly/setup_chroot/setup_chroot.sh.gz állomány, amit kibontva és futtatva be tudod állítani a chrootot amiből nem láthat ki.
Erre figyelj azért: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=556736

OFF/FLAME:
Ebbe nekem csak az a furcsa, hogy ez már 2009 -óta bug.

* Én egy indián vagyok. Minden indián hazudik.

Hát ez eléggé érdekes :(
I386 - azaz az emlegetett bug nem okozhat problémát - az az X86_64 portnál gond.
Létrehoztam a "setup_chroot.sh -val egy akira nevű usert, /home -ban meg is jelent, majd kicsit elrontottam az írható könyvtár nevét: /home/akira/scponly - de ez most úgy is csak egy elvetélt(?) kísérlet.

Első megközelítésben, az igéretek ellenére csak scp -vel akar működni (ezt talán be lehet majd konfigurálni).

Rögvest sír a winscp hogy "Hiba történt a felhasználói csoportok keresésekor.

Idézet:
A parancs 'groups' nem futott le.
Visszatérési kód: 1
Hibaüzenet: /usr/bin/groups cannot find name for group ID 1001.

Miután a hibaüzenetet leokézom az
Mégis belép!? - a felhasználó home -ba: /home/akira
Így ott van mindenféle - bin, dev, lib, usr és persze még egy home könyvtár :( Ez így nem igazán tűnik jónak.
Tény hogy ebből a könyvtárból nem bír feljebb mozogni :)
Leforgattam a groups.c izét és betettem a /home/akira/bin könyvtárba (az ottaniakkal azonos tulaj és jogosultságok) - de így is panaszkodik a groups -ra :(
Most akkor mi van?
Ötlet?

* Én egy indián vagyok. Minden indián hazudik.

Frissítettem a winscp -n (Verzió 5.1.3 Build 2881) és már nem panaszkodik a group fájlra :)
Viszont ez a sok felesleges könyvtár roppant zavaró lesz :(
Hogy lehetne elérni, hogy a belső mappába dolgozzon?

* Én egy indián vagyok. Minden indián hazudik.

sub

subs

+1

sub

mysecureshell

SFTP készítése openssh/ssh segítségével.

1. Modositsd a /etc/ssh/sshd_config fajlt a kovetkezok szerint

Subsystem sftp internal-sftp

# Enable for user
Match User probauser
    ChrootDirectory /home/probauser
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

# Enable for group
Match Group sftpusers
    ChrootDirectory /home/%u
    AllowTcpForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

Ertelem szeruen a ChrootDirectory-t modosits a megfelelo utvonalra.

2. A home konyvtarbol torolheted a felhasznalo letrehozasakor automatikusan letrejovo ssh shell miatt szukseges fajlokat es konyvtarakat.
A rendszerszintu sftp pfelhasznaloval nem lehet ssh bejelentkezni, nem kap promptot

!!! Nagyon fontos hogy csak akkor fog mukodni ha a chroot konyvtar
a teljes eleresi uton a root tulajdona es 755 a jogosultsag !!!

  $ chown root:root /home/probauser 
  $ chmod 755 /home/probauser

3. A Hozzaferes menete

Host: sftp://example.com
Port: 22
User: probauser
Pass: P4S5w0rD

--
maszili

Nagyjából, ezt raktam össze. Az egyedüli gond, hogy a chroot mappa 755 -ös jogosultságot igényel, azaz a felhasználó nem tud könyvtárat létrehozni, azt nekem kell mint root megoldanom :(
Így kapásból könyvtárat kell váltania ahhoz hogy fel/le tölthessen.
Viszont a megoldás eléggé egyszerű és nem igényel mindenféle plusz szoftvert, csak némi konfigurálást.
Tetszik!

MEGJEGYZÉS:
Most jutott eszembe (hiába öregszem)! A winscp -ben be lehet állítani a belépési könyvtárat! Így a user rögtön a már használható könyvtárakat látja.

* Én egy indián vagyok. Minden indián hazudik.

Nem pakolnál ebből össze egy pikk-pakk howtot, hogy ne kelljen összemazsolázni a megoldást az egész topikból? Köszi! ;)
\o\ |o| /o/

Itt van a topicban, maszilimár leírta részletesen.
http://hup.hu/node/121392#comment-1561619

* Én egy indián vagyok. Minden indián hazudik.

Ez oké, de az nem elfogadható megoldás, ha az usernek nem megy az mkdir. Azt hittem, lesz rá megoldás.

\o\ |o| /o/

Mivel ez jogosultsagproblema, villamcsapasra nem fogja senki megoldani neked.

Talan erdemes lenne dokumentaciot olvasni, hogy mi, hogyan es miert mukodik ugy, ahogy. Kulonben eleg nehez lesz a rendszert hibakeresni is, ezt most mondom elore.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Köszi a segítő hozzászólásodat. Ezt a feladatot én már megoldottam másképpen, konkrétan erre lennék kíváncsi. Nem hiszem, hogy ennek ilyen bénán (755) kéne működnie.

\o\ |o| /o/

Mint azt feljebb leírtam, a könyvtár "struktúra" most így fest:

/home
  public_html -> symlink a "bubu-heap/WEB" -re
  /bubu       - ez az eredeti "home"
  bubu-heap   - root root
    /ide      - a winscp ide tud írni
    /WEB
      /bin-cgi

Az "ide" könyvtárban lehet garázdálkodni, azaz annyi új könyvtárat hozhat létre amennyi belefér! A web feltöltés is működik (beleértve í cgi scripteket is) - bár a fiók biztonsága így erősen gyengül.

* Én egy indián vagyok. Minden indián hazudik.

mysecureshell, és az /etc/password file-ban ezt adni bash helyett a csak sftp-ző userhez. konzolja nem lesz, kitallózni nem fog tudni.

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

mysecureshell - nem találok ilyet a Debian repoban :(
A honlapjukon, csak részleges angol fordítás van. Nem tudom mennyire Debian konform, mennyire biztonságos. Szerverre így nem szívesen teszem - paranoia?

* Én egy indián vagyok. Minden indián hazudik.

persze, ezt el kell dönteni hogy be mered-e vállalni, avagy inkább nem. én mindenesetre használom több debian szerveren is évek óta és reménykedem benne hogy csak az járkál rajta keresztül akit én akarok :)

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

Köszönöm! Bízom a véleményedben, alkalmasint megnézem jobban (hátha addig lesz használhatóbb doksi). Egyenlőre ez a megoldás is kielégítőnek tűnik.

* Én egy indián vagyok. Minden indián hazudik.

köszönöm, stratégiai fontosságú szerverre nyilván nem ajánlom, de azt gondolom hogy egyrészt ez annyira egyszerű és jól megoldott hogy a többi megoldás ehhez képest nagyságrendekkel bonyolultabb és emiatt több hibalehetőséget is rejt magában, másrészt pedig az a tény hogy hosszú évek óta működő oldalól, és karbantartott csomagról van szó, megérdemel egy egészséges szintű bizalmat.

--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség

Én SSL-es FTP-vel oldottam meg az ilyet. Tuti nincs shell, se a báziskönyvtárból való kijövetel.
A pure-ftpd tudja a normál FTP-t, amit jelszavas userhez nem szeretünk és a titkosított FTP-t is.

Buta kérdés! Látszólag nincs kapcsolatban a topikkal.
A felhasználói "home" könyvtár csak a "/home" alatt lehetséges?
(Azaz igazság, hogy kicsit drágállom erre a célra a tükrözött területemet, szeretném áttenni egy szingli diszkre)

* Én egy indián vagyok. Minden indián hazudik.

User home-ja bárhol lehet, de a /home alá is felcsatolhatsz single diszket és akkor még trükkölni sem kell.
Nálam pl./ sima partíció, a /home titkosítva van és a /home-ba vannak bind mountolva az egyéb általam használt nagy mappák, pl. /mnt/archiv (ami a bind mount miatt szintén a /home -ban van fizikailag, a titkosított partíción)

Érdekesen hangzik! Kösz a tippet. Én is mountolok dolgokat a /home alá, de titkosítás viszont nincs.
Viszont megoldaná a következő kérdésemet - miképpen lehet korlátzoni, hogy mennyi területet használhat az sftp felhasználó?
Amit eddig láttam az a qouta - sajna még nem tudom, hogy mennyiben érinti az eddigi felhasználókat.
Mondjuk megtehetem, hogy figyelem (cron) a felhasznált területet és ha túllépi az általam beállított értéket, akkor letiltom az írhatóságát a mappának. Viszont így törölni sem tud - nem túl jó megoldás :(

* Én egy indián vagyok. Minden indián hazudik.