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