Копіювання системних файлів
Після того як ви розмістите в межах поддерева chroot файли сервера, вам слід скопіювати в каталоги поддерева деякі системні файли. Для роботи серверів часто потрібні такі типи файлів.
• Бібліотеки. Під час роботи багато сервери використовують динамічні бібліотеки. Зазвичай вони зберігаються в каталозі / lib або / usr / lib. З'ясувати, які бібліотеки потрібні конкретного сервера, дозволяє програма ldd. Наприклад, щоб визначити, які бібліотеки використовує сервер імен, треба виконати команду ldd / usr / sbin / named. Файли бібліотек треба помістити в каталог поддерева chroot.
• Програми підтримки. Для роботи деяких серверів потрібні додаткові програми. Наприклад, якщо Web-сервер підтримує CGI-сценарії, йому можуть знадобитися інтерпретатор Perl (/ usr / bin / perl) і файли, що забезпечують роботу цього інтерпретатора. Виконуваний файл Perl і додаткові файли треба скопіювати у відповідний каталог поддерева chroot. Крім того, програми, необхідні для роботи сервера, можуть, в свою чергу, використовувати файли бібліотек. У деяких випадках обсяг даних, що застосовуються для підтримки мов сценаріїв, набагато перевищує обсяг Web-сервера.
• Файли пристроїв. Ряд серверів безпосередньо звертається до периферійних пристроїв. Наприклад, сервер резервного копіювання взаємодіє з накопичувачем на магнітних стрічках, а деяким бібліотекам і програмам потрібні спеціальні файли пристроїв, такі як / dev / zero або / dev / null. Зазвичай файли пристроїв розташовуються в каталозі / dev. Копіювати файли з цього каталогу безглуздо, замість цього треба повторно створити їх в поддереве за допомогою mknod. Відповідна команда може виглядати наступним чином: mknod / opt / chroot / dev / st0 з 9 0. Файли пристроїв надають доступ до ресурсів комп'ютера, тому створювати їх в поддереве chroot слід тільки в тому випадку, коли вони дійсно необхідні.
• Спеціальні файлові системи. Іноді сервери використовують спеціальні файлові системи або інструменти, призначені для роботи з такими файловими системами. Наприклад, деякі сервери звертаються до / proc. Подібні каталоги не можна безпосередньо копіювати. Замість цього треба створити додаткову запис у файлі / etc / fstab і змонтувати файлову систему в межах поддерева chroot. Вихідну систему / proc не можна видаляти, її треба дублювати. Необхідно пам'ятати, що при наявності доступу сервера к / proc зломщику автоматично надаються додаткові можливості для контролю над системою.
• Бази даних з інформацією про користувачів. Під час роботи ряд серверів звертається до / etc / passwd. / Etc / group. / Etc / shadow і інших файлів, що містять інформацію про користувачів. Серверів, які використовують Pluggable Authentication Module, необхідна інфраструктура РАМ, зокрема, файл /etc/pam.conf. вміст /etc/pam.d і / etc / security. а також бібліотеки в файлах / lib і / lib / security (в іменах файлів бібліотек містяться символи pam). Для того щоб з'ясувати, які файли необхідно скопіювати в каталоги поддерева chroot. треба проаналізувати вміст пакета РАМ.
• Файли протоколів. Якщо сервер створює під час роботи файли протоколів, вам необхідно підготувати каталоги для їх розміщення. Деякі сервери використовують при створенні файлів протоколів демон syslogd. в цьому випадку вам треба скопіювати цю програму в поддерево chroot. Багато сервери можна конфігурувати так, щоб протоколювання виконувалося без використання syslogd.
Для серверів, самостійно викликають функцію chroot (). зазвичай доводиться копіювати в каталоги поддерева набагато менше файлів, ніж для серверів, що запускаються за допомогою програми chroot. Якщо сервер викликає chroot (). то перед викликом цієї функції він зазвичай завантажує бібліотеки, системні файли і інші необхідні йому дані.
Щоб не створювати загрозу безпеці системи, пишіть в каталоги поддерева chroot лише мінімальний набір файлів. Копіювати файл слід тільки в тому випадку, якщо ви твердо знаєте, що цей файл використовується в роботі сервера. Що ж стосується інших файлів, з'ясувати, чи потрібні вони, можна, запустивши сервер на виконання (якщо в сервері передбачений режим налагодження, бажано включити його). Якщо серверу бракує будь-якого файлу, він повідомить про це.
Поділіться на сторінці