Author: qwiat Date: Sat Feb 11 17:17:56 2006 New Revision: 6967 Added: PLD-doc/queue/sys-chroot.txt Log: - nowy rozdzial
Added: PLD-doc/queue/sys-chroot.txt ============================================================================== --- (empty file) +++ PLD-doc/queue/sys-chroot.txt Sat Feb 11 17:17:56 2006 @@ -0,0 +1,132 @@ +PLD SYS-CHROOT +============== + + +WstÄp +----- +Jednym z bardziej niezawodnych metod zabezpieczania serwerĂłw jest umieszczanie +usĹug sieciowych w autonomicznych Ĺrodowiskach typu chroot. PodstawowÄ ich +cechÄ jest ĹatwoĹÄ tworzenia i stosunkowo dobry poziom bezpieczeĹstwa. +PLD uĹatwia obsĹugÄ Ĺrodowisk chroot dziÄki mechanizmowi sys-chroot. W naszych +przykĹadach zainstalujemy w "klatce" serwer Apache. + +Mechanizm chroot w niektĂłrych sytuacjach nie oferujÄ wystarczajÄ cego +poziomu izolacji, a co za tym idzie bezpieczeĹstwa. Osobom szukajÄ cym +bardziej wyrafinowanych rozwiÄ zaĹ moĹźna poleciÄ Linux-VServer +(http://linux-vserver.org/) ktĂłrego konfiguracjÄ dla PLD opisano w tutaj: +http://pld-linux.org/Vserver. + + +BezpieczeĹstwo +-------------- + +W zaleĹźnoĹci od budowy takiego Ĺrodowiska moĹźemy je podzieliÄ na +dwie zasadnicze grupy: klatki peĹne i ĹcisĹe. Pierwsze sÄ +kompletnymi systemami z niewielkimi zmianami dokonanymi po +instalacji, zaĹ drugie sÄ precyzyjnie przygotowanymi Ĺrodowiskami, +ktĂłre skĹadajÄ siÄ jedynie z koniecznych do pracy elementĂłw: +biblioteki, programy itp. + +Pierwsze rozwiÄ zanie jest bardziej elastyczne i wygodne, gdyĹź umoĹźliwia +ĹatwÄ aktualizacjÄ, co niekiedy jest bardzo waĹźnÄ cechÄ . ĹcisĹe klatki sÄ +bezpieczniejsze, jednak jakakolwiek aktualizacja jest zĹoĹźona i sprowadza +siÄ na dobrÄ sprawÄ do tworzenia od poczÄ tku caĹego Ĺrodowiska. + +Mechanizm sys-chroot jest przystosowany do pierwszego z rozwiÄ zaĹ, wymaga +kompletu rc-skrytĂłw, powĹoki i kilku programĂłw do pracy, dziÄki czemu +otrzymujemy bardzo wygodne narzÄdzie. + + +Instalacja +---------- +Tworzymy katalog dla Ĺrodowiska: +# mkdir -p /chr-apache +Tworzymy bazÄ pakietĂłw RPM: +# rpm --root /chr-apache --initdb +Instalujemy docelowy pakiet: +# poldek --root=/chr-apache -i apache +PowyĹźsze polecenie zainstaluje wszystkie wymagane pakiety wymagane przez +serwer SSH. + + +Konfiguracja +------------ + +Musimy jeszcze przygotowaÄ system wewnÄtrzny np. dodaÄ uĹźytkownikĂłw: +chroot /chr-apache useradd -m jkowalski +chroot /chr-apache passwd jkowalski + +Na poczÄ tek dodajemy ĹcieĹźkÄ naszej klatki do zmiennej SYSTEM_CHROOTS w pliku +/etc/sysconfig/system , np.: +SYSTEM_CHROOTS=/chr-apache + +NastÄpnie startujemy podsystem klatek +# service sys-chroot start + +Nasz chroot juĹź dziaĹa powinien juĹź dziaĹaÄ, teraz musimy go +dodatkowo zabezpieczyÄ. + + +"Utwardzanie" klatki +-------------------- + +W Ĺrodowisku chroot nie powinny siÄ znaleĹşÄ Ĺźadne elementy ktĂłre +mogĹy by umoĹźliwiÄ ucieczkÄ z klatki nawet po uzyskaniu +praw root-a. + +Bardzo niebezpieczne jest posiadanie kompletu urzÄ dzeĹ w katalogu /dev, +musimy pozostawiÄ jedynie urzÄ dzenia konieczne do pracy danej uslugi. KaĹźda +usĹuga ma inne wymagania pod tym wzglÄdem, jednak jest kilka najczÄĹciej +uĹźywanych plikĂłw, oto ich lista: +/dev/zero +/dev/null +/dev/random +/dev/urandom +katalogu /dev/pts + +NastÄpnie usuwany niebezpieczne narzÄdzia: +/bin/mknod +/usr/sbin/chroot + + +/etc/fstab - plik ten dla chroota moĹźe byÄ znacznie ograniczony, w +wiÄkszoĹci wypadkĂłw konieczne jest tylko podmontowanie /proc. Systemy plikĂłw +powinny byÄ montowane z zewnÄ trz tak by nie byĹo potrzeby umieszczania /dev +Ĺźadnych urzÄ dzeĹ zwiÄ zanych z partycjami. Sprawa siÄ komplikuje jeĹli mamy +uĹźywaÄ quoty, niestety wtedy musimy umieĹciÄ odpowiedni plik w /dev/ i +dokonaÄ wpisu do /etc/fstab + +Musimy jeszcze zadecydowaÄ o sposobie zarzÄ dzania pakietami, +ktĂłre zostaĹo opisane dalej. + + +ZarzÄ dzanie pakietami +--------------------- + +Mamy moĹźliwoĹÄ zarzÄ dzania pakietami z chroota lub z systemu "gospodarza". +Pierwsze rozwiÄ zanie uĹatwia przenoĹnoĹÄ i niezaleĹźnoĹÄ klatki, drugie zaĹ +zwiÄksza bezpieczeĹstwo i wydaje siÄ byÄ bardziej eleganckie. + +Pierwsze rozwiÄ zanie wymaga instalacji poldka w klatce: +# poldek --root=/chr-apache -i poldek +od tej pory bÄdziemy nastÄpujÄ co zarzÄ dzaÄ pakietami: +# chroot /chr-apache poldek + +W drugim wypadku jedynie kopiujemy z gĹĂłwnego systemu plik /etc/sysconfig/rpm. +Poldka bÄdziemy wywoĹywaÄ nastÄpujÄ co: +# poldek --root=/chr-apache + + +Uwagi +----- + +- Bind domyĹlnie pracuje chroocie w katalogu /var/lib/named, dlatego nie +musimy sie o niego martwiÄ. +- syslog moĹźe pracowaÄ na zewnÄ trz, bez problemu bÄdzie zbieraĹ komunikaty z +usĹug w klatkach (o ile dana usĹuga korzysta z syslog-a). +- cron - musimy zadecydowaÄ czy kaĹźda klatka ma mieÄ wĹasnego demona +zegarowego czy ma pracowaÄ jeden wspĂłlny. Jeden demon bÄdzie zuĹźywaĹ mniej +zasobĂłw, oraz zarzÄ dzanie nim bÄdzie Ĺatwiejsze, jednak musimy +zmodyfikowaÄ wszystkie wywoĹania crona z klatek np. dotyczÄ ce logrotate. + + _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
