Безпека

Як налаштувати Linux Chroot Jails

Як налаштувати Linux Chroot Jails
Особливо ті, що присвячені критичним послугам, системи Linux вимагають знань експертного рівня для роботи та основних заходів безпеки.

На жаль, навіть після вживання найважливіших заходів безпеки, вразливі місця все ще знаходять свій шлях до захищених систем. Один із способів керувати системою та захищати її - обмежувати можливий збиток після нападу.

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

Короткий вступ до chroot тюрми

В'язниця chroot - це метод ізоляції процесів та їх підпроцесу від основної системи за допомогою помилкових кореневих привілеїв.

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

Навіщо використовувати тюремну в'язницю

Основне призначення тюремного в'язниці - це захід безпеки. Chroot також корисний при відновленні втрачених паролів шляхом монтажу пристроїв із живих носіїв.

Існують різні переваги та недоліки встановлення в'язниці Chroot. До них належать:

Переваги

Недоліки

Як створити базову в'язницю Chroot

У цьому процесі ми створимо базову в’язницю chroot із 3 командами, обмеженими для цієї папки. Це допоможе проілюструвати, як створити тюрму та призначити різні команди.

Почніть із створення головної папки. Ви можете вважати цю папку папкою / в основній системі. Ім'я папки може бути будь-яким. У нашому випадку ми називаємо це / chrootjail

sudo mkdir / chrootjail

Ми використовуватимемо цей каталог як підроблений корінь, що містить команди, які ми йому призначимо. Для команд, якими ми будемо користуватися, нам знадобиться каталог bin (містить виконувані файли команд) та файл тощо., каталог (що містить файли конфігурації для команд).

Всередині папки / chrootjail створіть ці дві папки:

sudo mkdir / chrootjail / etc, bin

Наступним кроком є ​​створення каталогів для динамічно пов'язаних бібліотек для команд, які ми хочемо включити до в'язниці. У цьому прикладі ми будемо використовувати команди bash, ls та grep.

За допомогою команди ldd перелічіть залежності цих команд, як показано нижче:

sudo ldd / bin / bash / bin / ls / bin / grep

Якщо ви знаходитесь не всередині папки bin, вам потрібно пройти повний шлях до команд, які ви хочете використовувати. Наприклад, ldd / bin / bash або ldd / bin / grep

З вищевикладеного ldd нам потрібні каталоги lib64 та / lib / x86_64-linux-gnu. Створіть ці папки всередині каталогу в'язниці.

sudo mkdir -p / chrootjail lib / x86_64-linux-gnu, lib64

Після того, як ми створили динамічні каталоги бібліотек, ми можемо перерахувати їх за допомогою дерева, як показано нижче:

У міру прогресу ви почнете отримувати чітке уявлення про те, що означає в’язниця chroot.

Ми створюємо середовище, подібне до звичайного кореневого каталогу системи Linux. Різниця полягає в тому, що всередині цього середовища дозволяються лише певні команди, а доступ обмежений.

Тепер, коли ми створили смітник. тощо., lib та lib64, ми можемо додати необхідні файли до відповідних каталогів.

Почнемо з бінарних файлів.

sudo cp / bin / bash / chrootjail / bin && sudo cp / bin / ls / chrootjail / bin && sudo cp / bin / grep / chrootjail / bin

Скопіювавши двійкові файли для потрібних команд, нам потрібні бібліотеки для кожної команди. Ви можете використовувати команду ldd для перегляду файлів для копіювання.

Почнемо з bash. Для bash нам потрібні наступні бібліотеки:

/ lib / x86_64-linux-gnu / libtinfo.так.6
/ lib / x86_64-linux-gnu / libdl.так.2
/ lib / x86_64-linux-gnu / libc.так.6
/ lib64 / ld-linux-x86-64.так.2

Замість того, щоб копіювати всі ці файли по одному, ми можемо скористатися простим циклом for, щоб скопіювати кожну бібліотеку з усіх бібліотек в / chrootjail / lib / x86_64-linux-gnu

Повторимо цей процес як для команди ls, так і для grep:

Для команди ls:

Для команди grep:

Далі, всередині каталогу lib64, у нас є одна спільна бібліотека для всіх двійкових файлів. Ми можемо просто скопіювати його, використовуючи просту команду cp:

Далі давайте відредагуємо головний файл входу до bash (розташований у / etc / bash.bashrc у Debian), щоб ми могли налаштувати підказку bash на свій смак. Використання простих команд echo and tee, як показано:

sudo echo 'PS1 = "CHROOTJAIL #"' | sudo tee / chrootjail / etc / bash.bashrc

Після того, як ми виконали всі наведені вище кроки, ми можемо увійти до в'язниці за допомогою команди chroot, як показано.

sudo chroot / chrootjail / bin / bash

Ви отримаєте привілеї root із запитом, подібним до тих, що створені в команді echo and tee вище.

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

ПРИМІТКА: Оскільки ви включили оболонку bash, ви матимете доступ до всіх вбудованих команд bash. Це дозволяє вам вийти з в'язниці за допомогою команди виходу.

Висновок

У цьому підручнику висвітлено, що таке в’язниця chroot і як ми можемо використовувати її для створення ізольованого середовища від основної системи. Ви можете використовувати методи, обговорені в посібнику, для створення ізольованих середовищ для критичних служб.

Щоб практикувати те, що ви дізналися, спробуйте створити в'язницю apache2.

ПІДКАЗКА: Почніть із створення кореневого каталогу, додайте конфігураційні файли (etc / apache2), додайте корінь документа (/ var / www / html), додайте двійковий файл (/ usr / sbin / apache2) і, нарешті, додайте необхідні бібліотеки (ldd / usr / sbin / apache2)

Корисні інструменти для геймерів Linux
Якщо ви любите грати в ігри на Linux, швидше за все, ви, можливо, використовували додатки та утиліти, такі як Wine, Lutris та OBS Studio, щоб покращит...
HD Remastered Games для Linux, які раніше ніколи не випускали Linux
Багато розробників і видавців ігор випускають HD-ремастер старих ігор, щоб продовжити життя франшизи. Будь ласка, шанувальники просять сумісність із с...
Як використовувати AutoKey для автоматизації ігор Linux
AutoKey - це утиліта автоматизації робочого столу для Linux та X11, запрограмована на Python 3, GTK та Qt. Використовуючи його сценарії та функціональ...