Що таке поддерево chroot

Що таке поддерево chroot
Advanced Linux Networking "id =" b_cover ">

У цій книзі описані принципи дії та область застосування багатьох серверів, що виконуються в системі Linux. Тут розглядаються DHCP-сервер, сервери Samba і NFS, сервери друку, NTP-сервер, засоби віддаленої реєстрації та система X Window. He забуті і засоби, які традиційно використовуються для забезпечення роботи Internet-служб: сервери DNS, SMTP, HTTP і FTP. Велику увагу приділено питанням безпеки мережі. У даній книзі знайшли відображення також засоби віддаленого адміністрування - інструменти Linuxconf, Webmin і SWAT.

Дана книга безсумнівно буде корисною як початківцям, так і досвідченим системним адміністраторам.

Мережеві засоби Linux

З'явилася прекрасна книга по Linux, залишилося скористатися нею. Не пропустіть свій шанс.

Олександр Стенцін, Help Net Security,

Якщо ви прагнете повною мірою використовувати мережеві можливості Linux - ця книга для вас. Я настійно рекомендую прочитати її.

Роджер Бертон, West, DiverseBooks.com

Книга: Мережеві засоби Linux

Що таке поддерево chroot

Що таке поддерево chroot

Коренем дерева файлової системи Linux є каталог /. Щодо цього каталогу визначається шлях до будь-якого іншого каталогу. При створенні поддерева chroot кореневої каталог переопределяется; замість нього призначається один з каталогів файлової системи. Принцип створення поддерева chroot показаний на рис. 23.1. Якщо в якості нового кореневого каталогу задати, наприклад, каталог / opt / chroot. то шлях до будь-якого файлу або каталогу буде визначатися не щодо каталогу /. а щодо / opt / chroot. В результаті, якщо сервер потрапить під контроль зломщика і той модифікує файл / etc / passwd. файл / opt / chroot / etc / passwd буде змінений, а системний файл паролів залишиться в колишньому вигляді.

Що таке поддерево chroot

Мал. 23.1. Піддерево chroot полягає в спеціальному оточення, що містить лише ті файли, які необхідні для роботи сервера

Для створення поддерева chroot використовується системний виклик chroot (). Функцію chroot () може викликати або сам сервер, або програма chroot. застосовується для запуску сервера. Детально це питання буде розглянуто далі в цьому розділі.

При використанні поддерева chroot повинні виконуватися наступні умови.

• Якщо програма використовує конфігураційні файли або бібліотеки, а також надає клієнту або приймає від нього деякі файли, всі ці файли повинні розміщуватися в поддереве chroot. В результаті для ряду серверів розміри поддерева повинні бути дуже великими. Однак якщо сервер самостійно викликає функцію chroot (). він зможе прочитати вміст необхідних файлів до виклику chroot (). тобто в той момент, коли область його дій ще не буде обмежена піддерево chroot. У цьому випадку частина файлів, з якими працює сервер, може лежати за межами поддерева chroot.

• Сервер може звертатися тільки до тих файлів, які знаходяться в поддереве chroot. Скоротивши до необхідного мінімуму число файлів, що містяться в каталогах поддерева, можна зменшити ризик пошкодження системи в разі, якщо зломщик отримає контроль над сервером.

• Якщо в поддереве chroot має виконуватися кілька серверів, для кожного з них необхідно створити окреме поддерево. В цьому випадку зловмисникові не вдасться використовувати один сервер для зміни конфігурації інших.

• Оскільки поддерево chroot є підмножиною файлової системи Linux, програми, що виконуються за межами даного поддерева, можуть записувати файли в каталоги, що належать Піддерево chroot. Залежно від конкретних обставин, цей факт можна розглядати або як перевага, або як можливе джерело проблем. Питання доступу локальних програм до каталогів поддерева chroot будуть розглядатися далі в цій главі.

Незважаючи на те що використання поддерева chroot дозволяє істотно знизити небезпеку для комп'ютера, на якому виконуються сервери, даний підхід має свої недоліки і обмеження. Одне з обмежень полягає в тому, що не всі сервери можуть виконуватися в рамках поддерева chroot. Для одних серверів подібний режим роботи є цілком природним (як приклад можна привести сервер FTP). Інших серверів, наприклад Telnet, потрібно більш-менш повний доступ до файлової системи Linux. Таким чином, деякі сервери неминуче доведеться запускати за межами поддерева chroot.

Піддерево chroot не встановлюється автоматично програмою інсталяції пакета, його створює системний адміністратор. З цієї причини не може установка доповнень до сервера. Якщо ви забудете скопіювати змінені файли в потрібний каталог, конфігурація сервера, що виконується в межах chroot. залишиться незмінною.

Не слід також забувати, що процес, що виконується в рамках поддерева chroot з повноваженнями root, може викликати функцію chroot () і розширити область своїх дій на всю файлову систему. (Організувати такий виклик досить складно, але цілком можливо.) Тому надаючи привілеї root сервер, що виконує в межах поддерева chroot. необхідно дотримуватися обережності. Як відомо, в захисті практично кожного сервера були знайдені недоліки, і, без сумніву, подібні недоліки будуть виявлені і в подальшому. Таким чином, незважаючи на те, що поддерево chroot є надзвичайно корисним інструментом, воно зовсім не гарантує безпеку системи.

Піддерево chroot захищає комп'ютер від атаки ззовні, але воно не може перешкодити використовувати сервер для злому іншого комп'ютера. Так, наприклад, якщо в межах поддерева chroot виконується сервер DNS і зловмисникові вдалося отримати контроль над ним, він не обов'язково буде намагатися проникнути з його допомогою в вашу систему. Замінивши записи в файлі конфігурації сервера, він може перенаправити запити клієнтів на свій комп'ютер. Якщо ж, зламавши сервер, що працює в рамках поддерева chroot. зловмисник організовує з його допомогою атаку на віддалені вузли, то з точки зору адміністратора віддаленої мережі це буде виглядати так, як ніби атака робиться користувачем, що працює на вашому комп'ютері.

І нарешті, якщо ви запустили один сервер в рамках поддерева chroot. інші сервери можуть виконуватися за межами поддерева, створюючи тим самим небезпеку для системи. Більш того, якщо області файлової системи, доступні різних серверів, перекриваються, то не виключено, що один сервер можна буде використовувати для зміни конфігурації іншого, що створить додаткові можливості для незаконного проникнення в систему.