[FreeBSD] Jail kerdes
Attila Nagy
bra at fsn.hu
2001. Már. 25., V, 15:40:45 CEST
Hello,
> Azon gondolkodom egyfolytaban, mikor a jail() szoba kerul, hogy miben
> tud ez tobbet, mint a chroot? Mert mit is csinal a dolog
> tulajdonkeppen?
http://docs.FreeBSD.org/44doc/papers/jail/jail.html
A lenyege roviden:
a jail egy IP-hez rendelt kompartmentalt kornyezet, amelybol (legjobb
szandek szerint) nem lehet kijonni.
Gyakorlatilag valami olyasmi mintha linux alatt csinalnal egy chrootot,
plusz beallitanad a capabilitiest a processzre, letiltva minden olyan
lehetoseget (pld mknod, mount, stb) amivel ki tudna torni abbol a
kornyezetbol.
A kulonbseg csak annyi, hogy itt ebben a jailben minden IP-hez van kotve
es lehet root is benne valaki, olyan kepessegekkel mint egyeb UID-ju
processzeknek signal kuldese, 1024 alatti portra bindeles, setuid, setgid,
stb.
A fenti URL-en reszletesebben le van irva :)
> Ahogy egy elozo levelben volt leirva, es a chroot()-ot is mindig igy
> intezte az emberfia, ldd-vel megnezed, hogy mi kell a program
> mukodesehez, azokat bemasolod az adott particiora (legalabbis en
> minden chroot-ot kulon partira tettem mindig). Bemasolja az ember a
> konfig meg egyeb szukseges fileokat is plusszba es az inditoszkriptben
> erre hivatkozik. Aztan ennyi. Ha root jogosultsag van, akkor sanyi,
> mert ki lehet torni a jailbol.
Attol fugg, melyik modszerrel.
Ha pld a fent emlitett modszer helyett statikusan forditod a binarisokat
es a particiokat -noexec,nodev mountolod, akkor a script kiddie rogton
leblokkol.
Nem tud letrehozni egy device fajlt, amivel fel tudna mountolni a kinti
particiokat es nem tud sajat binarist felmasolni/futtatni.
Persze ebbol is ki lehet jonni, de nem mindenki fogja tudni megcsinalni.
Es ritka az, amikor root kell. Meg egy MTA-t is lehet userkent futtatni :)
> Igazabol valami olyasmire vagynek, mint ami linux alatt letezik mar,
> hogy le lehet szedni a CAP_SYS_CHROOT -ot dinamikusan az
> alkalmazasrol. Szoval eliditom, majd ahogy elindul egy megfelelo API-n
> keresztul leszedem rola ezt a capability-t. Van valamilyen
> capabilities kiegeszites BSD ala ? Talan a TrustedBSD tud ilyet?
Itt ha jailt hasznalsz abban nyugodtan chrootolhatsz, ezt nem tiltja a
rendszer.
Ha linuxon csak a CAP_SYS_CHROOT-ot szeded le a poweruser a chrooton belul
tud trace-elni kulso processzeket (ha ezt a capabilityt nem veszed el),
meg hasonlo gonosz dolgokat is meg tud oldani. Igaz ezt mind lehet
szabalyozni, egeszen odaig, hogy a chrootban ket fele rootot tudsz
csinalni:
1. "valodi" root, de akkor majdnem biztos, hogy megvan a lehetoseg a
kitoresre
2. egy olyan root, akinek gyakrolatilag nincs semmivel tobb joga sem mint
egy usernek
A FreeBSD jailjenel mas volt az elv. Itt virtualis gepeket akartak
letrehozni. A cel az volt, hogy vehess egy x processzoros PC-t x GB
RAMmal, amin minden felhasznalonak adhass egy sajat teruletet, ahova
felpakolhat azt, amit akar.
Nekem pld egy Debian Woody fut egy jailben egy sajat IP-n. FreeBSD alatt.
Ja igen, a jailnel a processz nevter kulon van, tehat a jailben futo
programok nem latjak a tobbi jail, vagy az igazi rendszer (mag talan
TCB-nek mondana :) processzeit.
A TrustedBSD-ben valoban van (lesz) capabilities, MAC es sok aprobb dolog
is. Robert Watson (az o nevehez fuzodik ez) szep lassan teszi is bele a
hozza szukseges keretet mind a -CURRENT, mind a -STABLE agba.
Szerintem erdemes kiprobalni...
--------------------------------------------------------------------------
Attila Nagy e-mail: Attila.Nagy at fsn.hu
Budapest Polytechnic (BMF.HU) @work: +361 210 1415 (194)
H-1084 Budapest, Tavaszmezo u. 15-17. cell.: +3630 306 6758
További információk a(z) BSD levelezőlistáról