"klasszikus" chroot vs mod_chroot

Fórumok

Sziasztok!

Szeretnék összeállítani egy webszervert amin Apache + PHP és még esetleg majd pear is lenne (na meg még jópár dolog :) ). Ezeket persze szeretném bezárni jail-be.
Már átrágtam magam sok szakirodalmon, de nem látom a különbséget a hagyományos (debootstrap-es) chroot és az Apache mellé kínált mod_chroot között. Mindkettőnél (idézőjelesen) kétszer kell frissíteni a rendszert.
Ráadásul a mod_chroot-os dolognál sok dolgot be kell másolni a chroot könyvtárba kézzel ami egy frissítés folyamán nem fog automatikusan frissülni. Mégis sok helyen a mod_chroot-ot ajánlják, meg tudnátok mondani, hogy miben jobb, miért érdemes azt felrakni (kínlódni vele)?
Én egyedül a helytakarékosságot látom előnyének (ami talán nem annyira lényeges).

Hozzászólások

man 8 jailer

szerintem ezzel csináld meg (vagy debootstrap), utána elég könnyű frissíteni.

Ha mod_chroot-ot használsz, sokkal nehezebb karbantartani a rendszert, ill ha valamit félrekonfigurálsz, könnyen becsúszhat valami hiba...

a.

A jailer-t is nézegettem, de azzal is az a bajom, hogy a mod_chroot-hoz hasonlóan (csak itt symlink jellegűen) a gazdarendszerből be kell illeszteni a szükséges állományokat, ami egy nagy rendszernél már nehézkes (tervként még van tomcat is a szerverre). Ezért kérdés, hogy megéri-e küzdeni, vagy a klasszikus megoldás is ugyanolyan jó.

"symlink jellegűen"? hol? mi? lemaradtam valamiről? :)
Szó nincs erről, a jailer bemásolja a chroot-ba a megadott fájlokat, ill ami tetszik, h a megadott csomagok fájljait. Egy apró gond van, pl ha a postinst valamit csinál a rendszeren, az nem vezetődik át (pl Python modulok installálásával voltak gondok), de ezt lehet kezelni.
"a gazdarendszerből be kell illeszteni" - ez a feladata a jailernek, nekem pont emiatt szimpatikus, hogy gyak konzisztens a "gazdarendszerrel".

a.

Hát a symlinket itt olvastam:
http://www.tilb.sze.hu/tilb/targyak/NGB_TA0028_1/jailing.pdf

"Mivel a létrehozott chroot-olt környezet sok esetben
symlinkeket hoz létre a „gazdarendszerből”..."

Hát elgondolkoztató ez a jailer...
Akkor, ha jól veszem ki szavad, akkor a gazda rendszer frissítésekor a jailer-hez kapcsolódó fájlok is automatikusan az új fájlok lesznek (vagy erre a problémára gondoltál a postinst-nál?), nem kell több rendszeren végrehajtani a frissítést, mint a hagyományos chroot-nál?

Hello,

szvsz összekevertél valamit: a megadott doksiban nagyon jó a példa, ott pont a gazdarendszerBE mutat a chroot, tehát a gazdarendszerben futó shell-ben készítesz egy linket a chroot filerendszeréből a gazdarendszer egyéb helyére. Ez azért jó, mert ha pl megadod a jailernek, hogy másolja be a /etc/apache2 könyvtárat, majd azt utána "visszalinkeled", akkor az csak tényleg az upgrade-del járó módosítást vinné át, de azt nem fogja, mert egyezik a dátumuk. Ha nem csinálnál symlinket, akkor is működne a chroot, csak figyelni kellene upgrade-kor, hogy egy esetleges apache upgradekor megjelenő konfig módosulás ne írja felül a chroot-on belüli beállításodat.

ha jól veszem ki szavad, akkor a gazda rendszer frissítésekor a jailer-hez kapcsolódó fájlok is automatikusan az új fájlok lesznek
A jailer fájlokat másol, amit leírhatsz egyesével, vagy csomagként, tehát beleírsz egy csomagnevet, pl: libapache2-mod-php5, ekkor a csomag összes fájlját bemásolja. Viszont van, mikor a csomag telepítése után kell még néhány dolgot futtatni, ez a jailer nem csinálja meg, nekem nemrég ilyen volt egy chroot-on belüli Python modul. Ez esetben kézzel chroot, és ott a megfelelő parancsok kiadása megoldotta a problémát.

Még annyi megjegyzés a fenti doksihoz (amit nem olvastam végig), hogy én soha nem csinálok debootstrap-al alap rendszert apache-nak, elég a jailer által bemásolt (itt a jailer.conf etch-hez: http://pastebin.com/m69c83d2d). Ill van olyan, hogy pl PHP-ból exec-el hívott processznek kell a /proc, azt nem árt mountolni, de nem kötelező. Aztán javasolt az egész chroot-ol rendszernek külön partíciót adni, ro-val mountolva, az azon belüli /home (vagy ahol vannak a vhost docroot-ok) szintén külön partíció noexec,nodev,...-el, a /tmp detto... csak hogy legyen értelme is annak a chroot-nak :)

a.

Barátod a bind mount. Csomó könyvtárat (lib, stb) bemountolsz a chroot alá, máris nincs ez a probléma.