Сигурност

Как да настроите Linux Chroot Jails

Как да настроите Linux Chroot Jails
Особено тези, посветени на критични услуги, Linux системите изискват знания на експертно ниво за работа и основни мерки за сигурност.

За съжаление, дори след предприемане на важни мерки за сигурност, уязвимостите в сигурността все още намират път в сигурни системи. Един от начините за управление и защита на вашата система е чрез ограничаване на възможните щети след настъпване на атака.

В този урок ще обсъдим процеса на използване на chroot jail за управление на системни повреди в случай на атака. Ще разгледаме как да изолираме процеси и подпроцеси в определена среда с фалшиви root права. Това ще ограничи процеса до определена директория и ще откаже достъп до други системни области.

Кратко въведение за chroot затвора

Chroot jail е метод за изолиране на процеси и техния подпроцес от основната система, използвайки фалшиви root права.

Както споменахме, изолирането на определен процес с помощта на фалшиви root права ограничава щетите в случай на злонамерена атака. Chrooted услугите са ограничени до директориите и файловете в техните директории и не са постоянни при рестартиране на услугата.

Защо да използвам chroot jail

Основната цел на chroot jail е като мярка за сигурност. Chroot е полезен и при възстановяване на загубени пароли чрез монтиране на устройства от медии на живо.

Има различни предимства и недостатъци при настройването на затвора за chroot. Те включват:

Предимства

Недостатъци

Как да създадете основен затвор Chroot

В този процес ще създадем основен chroot затвор с 3 команди, ограничени до тази папка. Това ще ви помогне да илюстрирате как да създадете затвор и да задавате различни команди.

Започнете със създаване на основна папка. Можете да мислите за тази папка като / папката в основната система. Името на папката може да бъде всяко. В нашия случай го наричаме / chrootjail

sudo mkdir / chrootjail

Ще използваме тази директория като фалшив корен, съдържащ командите, които ще й присвоим. С командите, които ще използваме, ще ни е необходима директория bin (съдържа изпълнимите команди) и и т.н., директория (съдържаща конфигурационни файлове за командите).

В папката / chrootjail създайте тези две папки:

sudo mkdir / chrootjail / и т.н., 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 по наш вкус. Използване на прости команди за ехо и тройник, както е показано:

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

След като изпълним всички стъпки по-горе, можем да влезем в затвора, използвайки командата chroot, както е показано.

sudo chroot / chrootjail / bin / bash

Ще получите root права с подканата, подобна на създадената в командата echo and tee по-горе.

След като влезете, ще видите, че имате достъп само до командите, които сте включили, когато сте създали затвора. Ако се нуждаете от повече команди, трябва да ги добавите ръчно.

ЗАБЕЛЕЖКА: Тъй като сте включили черупката на bash, ще имате достъп до всички вградени команди на bash. Това ви позволява да излезете от затвора с помощта на командата за излизане.

Заключение

Този урок разгледа какво е chroot jail и как можем да го използваме, за да създадем изолирана среда от основната система. Можете да използвате техниките, разгледани в ръководството, за да създадете изолирана среда за критични услуги.

За да практикувате наученото, опитайте се да създадете затвор на apache2.

УКАЗАНИЕ: Започнете със създаване на коренна директория, добавете конфигурационните файлове (etc / apache2), добавете корен на документа (/ var / www / html), добавете двоичен файл (/ usr / sbin / apache2) и накрая добавете необходимите библиотеки (ldd / usr / sbin / apache2)

Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...