Központi SSH szerver usereknek

Fórumok

Sziasztok!

Habár lehet nem jól fogalmaztam meg a Tárgy-ban a mondandóm, de itt mindenképpen kifejteném a dolgot.

A harci állás a következő:

  • Van pár gép, ahol a usereknek adataik vannak, ezeket FTP-n keresztül érik el
  • Természetesen van SQL szerver is (MySQL), ez is megtalálható a gépeken
  • Egyre nagyobb igény lenne az SSH hozzáféréshez ezeken a "tárhelyeken" (nevezzük most ezeket annak)
  • Nem szeretnék minden egyes gépre SSH szervert, hanem a következőre gondoltam:
    • 1 központi SSH szerver, ahova felmountolom a userek adatait
    • Itt természetesen szeretnék valamilyen védelmet kialakítani, hogy ne tudjanak kitörni a saját mappájukból (Chroot?)
    • Továbbá nagyon fontos tényező lenne, hogy ne futhassanak állományokat SSH-n keresztül (Szintén biztonsági ok)
    • Utolsó sorban pedig csak adott parancsokat használhassanak (Szintén)

Ahogy kicsit kutakodtam a neten, találtam ezt a Jailkit olivier.sessink.nl/jailkit/ nevű cuccot, de ahogy tudom ez mindenkinek létrehoz úgymond egy "belső rendszert" (saját bin, lib, stb.)
Ezt nem szeretném (helytakarékosságból, meg nem is olyan szép megoldás szerintem), esetleg ha valaki tud ennek egy másik megoldást, azt üdvözölném.

Továbbá bármilyen építő jellegű megoldást "meghallgatok" (ha félreérthetően, esetleg tévesen írtam valamit, nem szakmailag, azt is).

Elsősorban útmutatást, de ha kész megoldás létezik, akkor azt is szívesen fogadok.

Hozzászólások

ne fut[tat]hassanak állományokat SSH-n keresztül

akkor miért SSH kell? aminek az elsõdleges feladata a parancsfuttatás!
ezt a kitételt szerintem egybevehetet az utolsóval, tehát hogy csak bizonyos programokat futtathassanak.

ha pedig csak biztonságos fájlelérés kell, akkor ftp-over-tls, vagy scp (azaz csak sftp-servert futtathassanak, amit scp-féle kliensekkel tudnak managelni elérve vele tárhelyük fájljait).

ha ügyelsz a unix jogok rendeltetésszerũ használatára a szerveren, felesleges a jail/chroot, mivel a user csak ahhoz férend hozzá, amire joga van.
Így saját (home) könyvtárát nem fogja törölni, mivel annak a szülõkönyvtárára (pl. /home) nincs +w joga.

a más könyvtárát nem fogja túrni, mivel azon nincs o+x jog. ha mégis valamiféle csoportalakításra van szükség, adhatsz g+rx jogot egy könyvtárra, melyet az egész csoportja böngészhet...

ha a felsoroltakon kívül más nem köt, ajánlom a legacy unix jogrendszert alkalmazni.

~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7

ne tudjanak kitörni a saját mappájukból

jah, úgy olvastam "ne tudják kitörölni" - mindegy erre is válasz az iménti hozzászólásom.

több, könnyebb-nehezebb lehetõség van attól függõen, miért kell nem kitörniük a hómlyukból...

~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7

nem, természetesen nem teljesen felesleges, csak egy darabig olcsóbb a kiváltása.
vannak sebezhetõségek is, melyek shell hozzáféréssel léptékekkel könnyebben kihasználhatóak, de ez még mindig nem kötelez implicit jailre.
különben miért pont szkript interpretereket hoztál fel mint potenciális exploitokat?
jail nélkül is sok lehetõség van a unix varázsló kamrájában egy biztonságos osztott shell kiszolgáló üzemeltetésére, de ha nem akarunk ezen irányba haladni, akkor már inkább ajánlok még egy lépést megtenni: virtuálisgép.

~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7

Első felvetésedre teljes mértékben bólogatok, rosszul is fogalmaztam meg a dolgokat.
Itt tényleg csak adott dolgok futtatásáról lenne szó ( mc, wget, tar, gzip, bzip2, mcedit, php, mysql, svn, git, mysqldump ). Ezeken kívül semmilyen script-et, programot, semmit ne indíthasson el, állíthasson le, stb stb.

Leginkább pedig azért nem szeretném hogy ne másszon ki a home mappájából, hogy ne tudja kik "laknak" vele egy gépen (kik használják még ezt a "szolgáltatást").

Itt tényleg csak adott dolgok futtatásáról lenne szó

rossz gondolat!
amikor mc-zel, svn-ezel nem csak annyit teszel, hogy beírod a shellnek, hogy ezt futtassa. azaz ezen a ponton nem lehet értelmesen elkapni a usertevékenységet.
a közvetlenül shellbõl futtatott parancsok megannyi más backend parancsot meghívnak, tipikusan a /bin-béli apró unix tool-okat, ezekre pedig ember legyen a talpán, aki listát készít, hogy mit szabadjon és mit nem.

kicsiny tapasztalatom alapján azt mondhatom, unix alatt nem a binárisok futtathatóságán alapul a rendszerbiztonság (kivéve a suid futtathatókat), hanem az erõforrások hozzáférhetõségein.

semmilyen script-et, programot, semmit ne indíthasson el, állíthasson le,

hogy úgy mondjam, ezt alapból tudja *nix.
ha nem a tiéd egy processz, nem küldhetsz neki szágnált, nem állíthatod le (normál mũködés mellett).
futtathatsz dpkg-t (debiános szoftver-csomagkezelõ, nem tudom, milyen alapú rendszerrõl van szó), de programot, szolgáltatást nem tudsz telepíteni, mert te és a teáltalad betöltött processz nem fér hozzá a rendszerkönyvtárakhoz.

a user szkriptek kategórikus tiltása - még ha meg is valósulna - nagy kár lenne, eltiltani õket az automatizálás hasznától... vagy nem tudom, mire gondolsz... ha már van egy shellje, pl. bash, már tud is szkriptelni.

~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7

Toljal be egy freeBSD gepet es tegyel ra Jailt... Ott aztan akar root is lehet a salyat kis jatszoteren. Vagy Solaris Zone

Hmm a Solaris Zone érdekes, de nem egy erőműre raknám ezt az SSH-t. :)

A Jail-el pedig még mindig csak annyi a bajom (konkrétan amit én néztem), hogy mindenkinek a home mappájába létrehoz saját bin-t, lib-et, stb., nem pedig "központilag menedzselhető". Bár lehet lenne erre valami megoldás, csak még én nem találtam meg.

Az ftp az ugye nem pőre ftp, hanem SSL? Amennyiben sima ftp, akkor felesleges biztonságról beszélgetni.

Ötletek:
- scponly
- mindenképpen megnéznék valamilyen teljes rendszert érintő biztonsági megoldást, akkor is ha jail-ben vannak a userek

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

apparmor + pam, nem probaltam, csak multkor lattam, hogy ilyet is tud.

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Egy kis értetlenség van bennem: miért van igény ssh-hozzáférésre az ftp-szerverekre?
Szerintem ettől függhet sok minden: ha pl. csak azért, hogyha egy 100 megás fájlt netről oda akarok tolni, de felesleges otthon letölteni és onnan fel az ftp-re (ssh-val: bejelentkezek a szerverre, ott kiadom a wget/curl/... parancsot, így az otthoni sávszélt nem "pazarlom"), akkor felesleges szerintem csak ezért ssh-t adni.

Vagy a szerveren levő programok segítségével akarnak valamit kezdeni a fájljaikkal, a szerver erőforrásait használva?

Centrify DirectControl restricted shell (dzsh).