LINUX-BG Адрес : http://www.linux-bg.org |
Създаване на chroot среди във Fedora Core и RHEL |
От: Beco Публикувана на: 23-02-2006 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=380235888 |
Създаване на chroot среди във Fedora Core и Red Hat Enterprise Linux чрез yum и rpmCopyright ©2006 Веселин Колев, Софийски Университет Св. Климент ОхридскиЛиценз: CC Attribution-ShareAlike
1. Въведение.Понякога дадено приложение или среда за работа, трябва да се обезопасят чрез заключването им в т.нар. chroot среда. Причините за това са най-различни, били са и продължават да бъдат предмет на дискусии, но няма да бъдат дискутирани тук, доколкото този документ представлява само и единствено едно възможно ръководство за изграждането на chroot средите. Това ръководство не бива да се разглежда като абсолютно и напълно изчерпателно. Описаната в него практика има претенциите да бъде класифицирана като добра, но няма претенциите да отмени другите практики по изграждане на chroot среди. Авторът не носи отговорност за причинени щети, вследствие на използване на описаните тук действия и техники. 2. Уточнения.В примерите по-долу ще се предполага, че chroot средата ще бъде изградена в директория /home/chroot. Такова положение на директорията върху локалната файлова система не е задължиелно и е само примерно. Може да бъде използвана произволна и за предпочитане празна директория върху споменатата вече локалната файлова система. Всички описани по-долу операции се извършват от супер потребител (root). Ориентир за това е наличието на знака # през описанията за изпълнение на команден ред. 3. Създаване на директорията за изграждане на chroot средата.# mkdir /home/chroot 4. Инициализиране на базата от данни на пакетната система RPM.# rpm --root /home/chroot --initdb Изпълнението на този команден ред, създава началната и минимално необходима база данни, която да бъде използвана от пакетния мениджър. Ако операцията е протекла успешно, в директория /home/chroot/var/lib/rpm/ ще се намира файлово дърво със структура подобна на тази:
total 388 5. Зареждане на OpenPGP сертификатите за проверка на електронните подписи върху пакетите.RPM е пакетна система, в която има вградени криптографски електронни подписи върху съдържанието на всеки пакет. За да може да се удостовери източника на пакета, в базата от данни на пакетната система, трябва да бъдат заредени OpenPGP сертификатите на дистрибуторите на пакетите, които ще бъдат инсталирани в chroot средата. Ще предполагаме, че трябва да бъдат инсталирани само базовите за дистрибуцията OpenPGP сертификати, които по подразбиране се намират в директория /usr/share/rhn: # rpm --root /home/chroot/ --import /usr/share/rhn/RPM-GPG-KEY* Ако ще бъде инсталиран OpenPGP сертификат, който не в базовата колекция, той трябва да бъде посочен като файл, например:# rpm --root /home/chroot/ --import /path/to/openpgp-cert.asc Последното може да се наложи да бъде направено по изключение, ако се налага в chroot средата да бъдат инсталирани пакети от външни за дистрибуцията хранилища като това на Dag Wieers.6. Създаване на repo файлове в помощ на инсталирането на пакети в chroot средата.При инсталирането на rpm пакети в chroot средата с помощта на инструмента yum, трябва да се създадат repo файлове (един или повече, в зависимост от нуждите на конкретната инсталация), които отразяват отделните пакетни хранилища. Тези repo файлове ще се използват само за изграждане на chroot средата. Също така в създадените специално за целта repo файлове не трябва да присъстват yum променливите $basearch и $release. Ето как изглежда примерен преработен repo файла за инсталиране на Fedora Core 4 в chroot среда: fedora.repo
[base]
[updates-released] 7. Инсталиране на необходимите пакети в chroot средата.Необходимите за инсталация в chroot средата пакети могат да се разделят на две категории:
Единственият базов пакет, който трябва да бъде инсталиран чрез yum е glibc. При инсталирането му ще бъдат инсталирани (като зависимости) и другите базови пакети. # yum --installroot=/home/chroot -c /home/yum.repo.chroot.i386/fedora.repo install glibc Допълнителните пакети се инсталират в зависимост от целите на изграждането на chroot средата. Един съвсем кратък и нагледен пример може да бъде даден с инсталирането на пакета bash: # yum --installroot=/home/chroot -c /home/yum.repo.chroot.i386/fedora.repo install bash След инсталацията му може да се провери правилността на изграждането на chroot средата така:
# chroot /home/chroot За излизане от chroot средата може да се използва командата exit:
bash-3.00# exit Ако се налага да бъдат инсталирани пакети от външни за дистрибуцията хранилища, просто трябва да се състави правилно (по описаната в точка 6 схема) съответния repo файл и да се използва посочената в тази точка схема за инсталация на пакети с yum. Описаната тук схема позволява актуализация на пакетите в chroot средата с минимални усилия. Ето как изглежда актуализиране на базовите за дистрибуцията пакети, ако следваме пак горния пример на инсталация: # yum --installroot=/home/chroot -c /home/yum.repo.chroot.i386/fedora.repo update Нужно е да се каже, че при стандартно използваните техники на създаване на chroot среди чрез копиране на файлове, много трудно може да се реализира актуализация на пакетите, а това би довело до проблеми в сигурността. << Линукс не е Windows! | КАК ДА печатаме от Windows на CUPS принтер/опашка >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|