Udhëzues i plotë për krijimin e një burgu chroot në Linux: hapa, përdorime dhe këshilla

Përditësimi i fundit: 26/05/2025
Author: Isaac
  • Teknika chroot ju lejon të izoloni proceset ose përdoruesit në një mjedis të sigurt brenda Linux.
  • Ngritja e një burgu funksional kërkon përgatitjen e skedarëve binare, bibliotekave dhe strukturave të drejtorive të nevojshme.
  • chroot është i dobishëm si për kufizimin e shërbimeve ashtu edhe për rikuperimin e sigurt të sistemeve ose testimin e softuerëve.

kroot

A keni menduar ndonjëherë se si ta izoloni vërtet një proces ose shërbim në sistemin tuaj Linux? Përgjigja më tradicionale dhe e gjithanshme është krijimi i një kafazi chroot , një teknikë e fuqishme, por shpesh e nënvlerësuar, që është çelësi për mbrojtjen e sistemit tuaj dhe eksperimentimin pa frikën e fatkeqësive. Në këtë artikull, do të gjeni një udhëzues të hollësishëm se çfarë është një kafaz chroot, për çfarë përdoret dhe, më e rëndësishmja, si ta krijoni vetë një të tillë në Linux, pavarësisht nëse po kërkoni një mjedis të sigurt testimi, keni nevojë të kufizoni përdoruesit ose të rikuperoni sistemet. Dhe e gjitha shpjegohet në gjuhë të thjeshtë me shembuj praktikë, në mënyrë që të mund të filloni ta zbatoni menjëherë.

Nëse keni kohë që merreni me Linux, ndoshta keni dëgjuar për burgjet chroot, por nuk keni arritur kurrë t'i përdorni ato sepse dukeshin si diçka e rezervuar për administratorët e përparuar. Megjithatë, krijimi i një burgu chroot është më i thjeshtë nga sa duket dhe, për më tepër, tepër i dobishëm në situata të botës reale: nga mbrojtja e sistemit nga ekzekutimi i softuerëve të dyshimtë, deri te izolimi i shërbimeve të rrjetit si SSH ose FTP, apo edhe shpëtimi i sistemeve të dëmtuara kur gjithçka duket e humbur. Përgatitni tastierën tuaj, sepse pasi të lexoni këtë udhëzues, do të dini jo vetëm se si funksionon chroot, por edhe si ta përfitoni sa më shumë prej tij.

Çfarë është një kafaz chroot dhe kur duhet ta përdorni?

Një kafaz chroot (shkurtim për "ndrysho rrënjën") është një mjedis i izoluar brenda sistemit ku direktoria rrënjë ( / ) ripërcaktohet përkohësisht për një proces ose përdorues. Në praktikë, kjo kufizon aksesin e procesit ose përdoruesit vetëm në skedarët dhe direktoritë brenda atij kafazi , duke i penguar ata të shohin ose modifikojnë asgjë jashtë tij. Çdo gjë që ndodh brenda kafazit është e kapsuluar dhe nuk mund të ndikojë në pjesën tjetër të sistemit.

Dhe për çfarë është kjo? Aplikimet janë shumë të larmishme. Për shembull:

  • Ekzekutoni programe të dyshimta ose të pabesueshme pa qenë në gjendje të dëmtojnë të gjithë sistemin.
  • Kufizo përdoruesit, veçanërisht në shërbimet e rrjetit, duke i penguar ata të hyjnë në informacione të ndjeshme në sistemin kryesor, siç është rasti me FTP ose SSH.
  • Jepni akses të kufizuar në pajisje të caktuara, duke lejuar vetëm funksione specifike.
  • Riparoni sistemet e dëmtuara nisja nga një LiveCD dhe jailbreakimi i sistemit për të kryer riparime në mënyrë të sigurt.
  • Testoni konfigurime ose instalime komplekse pa rrezikuar stabilitetin e sistemit kryesor.
  Si të konfiguroni një lidhje Ethernet me shpejtësi të lartë në Linux

Kjo metodë është një mjet efektiv për siguri dhe administrim të avancuar në Linux . Pengesa kryesore për hyrjen është zakonisht mungesa e njohurive se si të konfigurohet siç duhet burgu dhe të kopjohen të gjithë komponentët e nevojshëm, por do të shihni se duke ndjekur disa hapa specifikë, është plotësisht e realizueshme.

Funksionimi i përgjithshëm dhe kufizimet e chroot

kroot

Komanda `chroot` përfshihet në shumicën e shpërndarjeve Linux dhe ndryshon direktorinë rrënjë ( `/` ) për procesin që ekzekutohet brenda mjedisit chroot, duke e izoluar atë nga sistemi origjinal. Pasi të jetë brenda, çdo komandë ose program do të shohë vetëm skedarët në atë mjedis të izoluar dhe nuk do të ketë qasje në asgjë jashtë chroot.

Jo çdo gjë është perfekte dhe jo çdo program do të funksionojë brenda një kafazi chroot . Disa shërbime komplekse ose ato që presin shtigje absolute, siç është sendmail në versione të caktuara, mund të mos funksionojnë siç duhet. Është thelbësore të planifikoni se cilat aplikacione do të përdorni dhe të verifikoni varësitë e tyre përpara se t'i vendosni në një mjedis chroot.

Për më tepër, ndryshe nga zgjidhjet e virtualizimit të plotë, chroot nuk ofron izolim të burimeve në nivel kernel . Mjedisi chroot është i izoluar në nivelin e sistemit të skedarëve, por ndan kernelin dhe burimet e sistemit pritës. Prandaj, është një alternativë e lehtë që është e dobishme kur ju duhet vetëm të ndani hapësirat e skedarëve dhe aksesin, pa kërkuar një mjedis plotësisht të pavarur.

Konfigurimi i një burgu chroot hap pas hapi: struktura dhe varësitë

Për të krijuar një burg funksional, është thelbësore të përgatitni strukturën e direktorive dhe të kopjoni të gjitha skedarët binare dhe libraritë e nevojshme . Thjesht krijimi i një dosjeje bosh nuk do të mjaftojë: çdo gjë që duhet të funksionojë brenda saj, si /bin/bash , /bin/ls dhe varësitë e tyre, duhet të jetë e pranishme, duke respektuar strukturën origjinale të sistemit.

Hapat bazë janë:

  1. Krijo direktorinë e burgut, për shembull në /opt/chroot_dir ose /usr/src/jaula.
  2. Kopjoni skedarët binare thelbësorë (të tilla si përplas y ls) në vendet e tyre përkatëse brenda kafazit.
  3. Përdorni komandën ldd në skedarët binarë për të identifikuar bibliotekat e nevojshme (shembull: ldd /bin/bash y ldd /bin/ls).
  4. Kopjoni ato biblioteka në strukturën e kafazit, duke ruajtur të njëjtin organizim si në sistemin origjinal, në / lib y /lib64.
  5. ai përfshin skedarët bazë të konfigurimit si /etc/passwd dhe /etc/group nëse doni të menaxhoni përdoruesit në burg.
  6. Nëse dëshironi një seancë interaktive, shtoni një përkthyes. komandat dhe personalizoni skedarët si p.sh. /etj/bash.bashrc për të konfiguruar mjedisin.
  Ju jeni të dëshpëruar për para! Ju mund t'i merrni parasysh këto 26 ide befasuese

Me strukturën e përgatitur dhe skedarët e kopjuar, mund të përdorni komandën chroot për të aksesuar dhe punuar në mjedisin e izoluar.

Shembull klasik: krijimi i një burgu chroot për të ekzekutuar bash dhe ls

Le të themi se dëshironi një kafaz të thjeshtë ku mund të ekzekutoni bash dhe ls . Hapat do të ishin:

  1. Krijo dosjen e kafazit:
    sudo mkdir /opt/chroot_dir
  2. Kopjoni skedarët binare të nevojshëm:
    sudo cp /bin/bash /opt/chroot_dir/bin/ sudo cp /bin/ls /opt/chroot_dir/bin/
  3. Përdorni ldd për të identifikuar dhe kopjuar libraritë:
    ldd /bin/bash /bin/ls

    Gjeni bibliotekat e listuara dhe ndani ato në strukturën chroot në /opt/chroot_dir/lib/ dhe /opt/chroot_dir/lib64/.

Nëse doni ta bëni përvojën më të lehtë, mund ta modifikoni kërkesën:

jehonë "PS1='KAFAZ $'" | sudo tee /opt/chroot_dir/etc/bash.bashrc

Për të aksesuar, ekzekutoni:

sudo chroot /opt/chroot_dir /bin/bash

Në këtë mënyrë, do të jesh në kafaz, plotësisht i izoluar . Mos harro se nëse ke nevojë për më shumë mjete brenda, duhet t'i kopjosh ato së bashku me varësitë e tyre.

Montimi i sistemeve kritike: /proc, /dev dhe /sys

Që një mjedis chroot të jetë vërtet i dobishëm, veçanërisht për detyrat e rikuperimit ose ekzekutimin e programeve që kërkojnë akses në pajisje, është e nevojshme të montohen /proc, /dev dhe /sys brenda mjedisit chroot . Kjo arrihet duke përdorur montimet bind.

  1. Krijo strukturën dhe monto ndarjen:
    sudo mkdir /media/cage sudo mount /dev/sda1 /media/cage
  2. Montoni sistemet virtuale:
    sudo mount --bind /proc /media/jaula/proc sudo mount --bind /dev /media/jaula/dev sudo mount --bind /sys /media/jaula/sys

Me këto montime, programet brenda chroot do të jenë në gjendje të qasen në burimet e nevojshme për të funksionuar siç duhet. Për të hyrë në kafaz:

sudo chroot /media/cage

Nga ajo pikë e tutje, komandat që ekzekutoni do të ndikojnë vetëm në sistemin e montuar, ideal për detyra rikuperimi ose modifikime pa ndikuar në sistemin kryesor.

Kufizimi i përdoruesve nëpërmjet chroot: OpenSSH dhe opsioni ChrootDirectory

Një përdorim i zakonshëm i burgjeve chroot është kufizimi i aksesit të përdoruesve të SSH në drejtori të caktuara duke përdorur opsionin ChrootDirectory në OpenSSH. Në versionet e fundit, kjo mund të konfigurohet pa programe të jashtme.

Procesi i përgjithshëm përbëhet nga:

  1. Përgatitni strukturën e kafazit, duke përfshirë mjetet dhe bibliotekat e nevojshme.
  2. Kopjoni skedarët binare dhe varësitë, si p.sh. përplas.
  3. Konfiguro skedarët e përdoruesit (/ Etc / passwd, / etj / grupi), duke rregulluar guaskën nëse është e nevojshme.
  4. Ndrysho skedarin / Etc / ssh / sshd_config për të përfshirë një direktivë të tillë si:
Përputh përdoruesin jaildouser ChrootDirectory /path/to/the/jail

Pas rinisjes së SSH, përdoruesi automatikisht do të kufizohet në atë drejtori, pa qasje jashtë saj. Është thelbësore të verifikohet se cilat skedarë binare dhe biblioteka janë të disponueshme në burg për një seancë funksionale dhe të sigurt.

Këshilla të avancuara: përshtatja e kafazit në çdo rast dhe automatizimi

Pasi të keni zotëruar bazat, mund t'i personalizoni dhe optimizoni kafazet tuaja:

  • Përfshi vetëm komandat e nevojshme për secilin përdorues, duke forcuar sigurinë.
  • Përdorni mjete si zhveshje në Debian për të krijuar shpejt mjedise të plota dhe funksionale.
  • Personalizoni skriptet e nisjes, njoftimin dhe cilësimet bazë për të përmirësuar përvojën e përdoruesit.
  • Në shpërndarje si Gentoo, duke përdorur systemd-nspawn për të menaxhuar chroot-et në mënyrë më efikase.

Gjëra për t'u marrë në konsideratë: kufizimet e chroot dhe izolimi real

Është e rëndësishme të mbani mend se chroot nuk ofron izolim të plotë të kernelit . Proceset e privilegjuara mund të shpëtojnë nëse ekzistojnë dobësi ose aftësi specifike. Për siguri më të madhe, merrni në konsideratë përdorimin e kontejnerëve si Docker ose zgjidhjeve të plota të virtualizimit.

Për softuerët që kërkojnë një ndërfaqe grafike ose akses në audio/video, do t'ju duhet të ndani socket-et dhe lejet e duhura, duke përdorur lidhjet e lidhjes dhe duke sinkronizuar ID-të e përdoruesve. Planifikimi i kujdesshëm i burimeve dhe varësive do të jetë çelësi i një mjedisi të qëndrueshëm dhe të sigurt.

pemë
Artikuj të ngjashëm:
Pulsi elektromagnetik (EMP): Çfarë është, efektet e tij dhe si të mbroni veten