PLD-doc/queue/sys-chroot.txt
qwiat
cvs at pld-linux.org
Sat Feb 11 17:18:02 CET 2006
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.
+
+
More information about the pld-cvs-commit
mailing list