Varnost

Kako nastaviti Linux Chroot Jails

Kako nastaviti Linux Chroot Jails
Sistemi Linux, še posebej tisti, ki so namenjeni kritičnim storitvam, zahtevajo strokovno znanje za delo in osnovne varnostne ukrepe.

Na žalost tudi po sprejemu ključnih varnostnih ukrepov varnostne ranljivosti še vedno najdejo pot v varne sisteme. Eden od načinov upravljanja in zaščite vašega sistema je omejevanje škode, ki je možna po napadu.

V tej vadnici bomo obravnavali postopek uporabe zapora chroot za obvladovanje sistemskih poškodb v primeru napada. Preučili bomo, kako postopke in podprocese izolirati v določeno okolje z lažnimi korenskimi privilegiji. S tem boste postopek omejili na določen imenik in zavrnili dostop do drugih sistemskih področij.

Kratek uvod v Chroot zapor

Chroot zapor je metoda izolacije procesov in njihovega podprocesa iz glavnega sistema z uporabo lažnih korenskih pravic.

Kot smo že omenili, izolacija določenega postopka z lažnimi korenskimi privilegiji omejuje škodo v primeru zlonamernega napada. Chrootirane storitve so omejene na imenike in datoteke v njihovih imenikih in ob ponovnem zagonu storitve niso trajne.

Zakaj uporabljati chroot zapor

Glavni namen zapora chroot je varnostni ukrep. Chroot je uporaben tudi pri obnavljanju izgubljenih gesel z namestitvijo naprav iz medija v živo.

Nastavitev zapora Chroot ima različne prednosti in slabosti. Tej vključujejo:

Prednosti

Slabosti

Kako ustvariti osnovni zapor Chroot

V tem postopku bomo ustvarili osnovni zapor chroot s 3 ukazi, omejenimi na to mapo. To bo pomagalo ponazoriti, kako ustvariti zapor in dodeliti različne ukaze.

Začnite z ustvarjanjem glavne mape. To mapo si lahko predstavljate kot mapo / v glavnem sistemu. Ime mape je lahko poljubno. V našem primeru ga imenujemo / chrootjail

sudo mkdir / chrootjail

Ta imenik bomo uporabili kot ponarejen koren, ki vsebuje ukaze, ki mu jih bomo dodelili. Z ukazi, ki jih bomo uporabili, bomo potrebovali imenik bin (vsebuje izvršljive datoteke ukazov) in itd., imenik (vsebuje konfiguracijske datoteke za ukaze).

V mapi / chrootjail ustvarite ti dve mapi:

sudo mkdir / chrootjail / itd, bin

Naslednji korak je ustvariti imenike za dinamično povezane knjižnice za ukaze, ki jih želimo vključiti v zapor. V tem primeru bomo uporabili ukaze bash, ls in grep.

Z ukazom ldd poiščite odvisnosti teh ukazov, kot je prikazano spodaj:

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

Če niste v mapi bin, morate prenesti celotno pot do ukazov, ki jih želite uporabiti. Na primer ldd / bin / bash ali ldd / bin / grep

Iz zgornjega izhoda ldd potrebujemo imenika lib64 in / lib / x86_64-linux-gnu. V imeniku zapora ustvarite te mape.

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

Ko smo ustvarili dinamične imenike knjižnic, jih lahko naštejemo z drevesom, kot je prikazano spodaj:

Ko bomo napredovali, boste začeli dobivati ​​jasno sliko o tem, kaj pomeni zapor chroot.

Ustvarjamo okolje, podobno običajnemu korenskemu imeniku sistema Linux. Razlika je v tem, da so znotraj tega okolja dovoljeni samo določeni ukazi in dostop omejen.

Zdaj, ko smo ustvarili koš. itd., lib in lib64, lahko dodajamo zahtevane datoteke v ustrezne imenike.

Začnimo z binarnimi datotekami.

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

Ko smo kopirali binarne datoteke za ukaze, ki jih potrebujemo, potrebujemo knjižnice za vsak ukaz. Z ukazom ldd si lahko ogledate datoteke, ki jih želite kopirati.

Začnimo z bash. Za bash potrebujemo naslednje knjižnice:

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

Namesto da bi kopirali vse te datoteke eno za drugo, lahko s preprostim zanko for kopiramo vsako knjižnico v vseh knjižnicah v / chrootjail / lib / x86_64-linux-gnu

Ponovimo ta postopek za ukaz ls in grep:

Za ukaz ls:

Za ukaz grep:

Nato imamo znotraj imenika lib64 eno knjižnico v skupni rabi v vseh binarnih datotekah. Lahko ga preprosto prekopiramo s preprostim ukazom cp:

Nato uredimo glavno prijavno datoteko za bash (ki se nahaja v / etc / bash.bashrc v Debianu), tako da lahko bash poziv prilagodimo po svojih željah. Uporaba preprostih ukazov echo in tee, kot je prikazano:

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

Ko opravimo vse zgornje korake, se lahko v zaporniško okolje prijavimo z ukazom chroot, kot je prikazano.

sudo chroot / chrootjail / bin / bash

Korenske privilegije boste dobili s pozivom, podobnim tistim, ustvarjenim v zgornjem ukazu echo and tee.

Ko se prijavite, boste videli, da imate dostop samo do ukazov, ki ste jih vključili, ko ste ustvarili zapor. Če potrebujete več ukazov, jih morate dodati ročno.

OPOMBA: Ker ste vključili lupino bash, boste imeli dostop do vseh bash vgrajenih ukazov. To vam omogoča izhod iz zapora z uporabo ukaza za izhod.

Zaključek

Ta vadnica je zajela, kaj je zapor chroot in kako ga lahko uporabimo za ustvarjanje izoliranega okolja iz glavnega sistema. Tehnike, obravnavane v priročniku, lahko uporabite za ustvarjanje izoliranih okolij za ključne storitve.

Če želite vaditi, kar ste se naučili, poskusite ustvariti zapor apache2.

NAMIG: Začnite z ustvarjanjem korenskega imenika, dodajte konfiguracijske datoteke (etc / apache2), dodajte koren dokumenta (/ var / www / html), dodajte binarni (/ usr / sbin / apache2) in na koncu dodajte potrebne knjižnice (ldd / usr / sbin / apache2)

Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...
Kako zajeti in pretakati svojo igralno sejo v Linuxu
V preteklosti je bilo igranje iger le hobi, sčasoma pa je igralniška industrija zabeležila veliko rast glede tehnologije in števila igralcev. Občinstv...
Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...