SELinux

SELinux za početnike koji koriste CentOS

SELinux za početnike koji koriste CentOS
Razvijen od strane NSA-e kako bi spriječio zlonamjerni pristup i upade, Linux ili SELinux s poboljšanom sigurnošću napredna je značajka kontrole pristupa koja se isporučuje s najmodernijim Linux distribucijama. SELinux je definiran kao sustav obvezne kontrole pristupa (MAC) razvijen kao zamjena za diskrecijski sustav kontrole pristupa (DAC).

SELinux može izgledati zastrašujuće i vrlo ga je teško implementirati u većinu modernih sustava. Međutim, konfiguriranje SELinux-a ima velike prednosti kako u provođenju sigurnosti tako i u rješavanju problema.

Ovaj će vodič raspravljati o različitim konceptima koje implementira SELinux i istražiti razne praktične metode implementacije SELinux-a.

NAPOMENA: Prije nego što započnemo, dobro je koristiti naredbe u ovom vodiču kao korijenski korisnik ili korisnik unutar grupe sudoers.

Instalirajte SELinux pakete

Dopustite nam da instaliramo razne SELinux pakete, što će zauzvrat pomoći u radu sa SELinux pravilima.

Prije nego što nastavimo s instaliranjem SELinux paketa, dobro je provjeriti koji su instalirani na trenutni sustav.

U većini instalacija REHL distribucija neki su paketi instalirani prema zadanim postavkama. Ovi paketi uključuju:

  1. setools - ovaj se paket koristi za nadgledanje dnevnika, pravila za upite i upravljanje kontekstnim datotekama.
  2. policycoreutils-python - pruža osnovne uslužne programe pythona za upravljanje SELinuxom
  3. policycoreutils - ovaj paket također nudi uslužne programe za upravljanje SELinuxom.
  4. mcstrans - mcstrans nudi SELinux daemon prijevod, koji prevodi različite razine u jednostavne formate koji se lako mogu razumjeti.
  5. setools-console - slično setools.
  6. Selinux-policy - pruža referencu za konfiguriranje SELinux politike
  7. Selinux-policy-target - slično SELinux-policyu
  8. Libselinux-utils - SELinux libselinux uslužni programi koji pomažu u upravljanju SELinuxom
  9. Setroubleshoot-server - alati za rješavanje problema SELinux

Da biste provjerili koji su paketi već instalirani na vašem sustavu, možete upotrijebiti naredbu rpm -qa i upotrijebiti rezultat za grep za SELinux kao:

o / min -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-dodatak-selinux-4.14.3-4.el8.x86_64
selinux-policy-target-3.14.3-54 (prikaz, stručni).el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54 (prikaz, stručni).el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64

To bi vam trebalo dati izlaz svih paketa instaliranih za SELinux podršku

Ako na vašem sustavu nisu instalirani svi SELinux paketi, upotrijebite yum da biste ih instalirali kako je prikazano u naredbi ispod:

yum instalirati policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-target libselinux-utils setroubleshoot-server setools setools-console mcstrans

Načini i stanja SELinux-a

Počnimo se sada igrati sa SELinuxom, konkretno, sa SELinux modovima.

Načini SELinux

Kad je omogućen, SELinux mogu biti tri moguća načina:

Način provođenja

Ako se SELinux način primijeni, osigurat će da nijedan korisnik ili proces neovlašteno pristupi sustavu. Način provođenja također vodi zapise svih pokušaja neovlaštenog pristupa.

Dozvoljeni način

Dopušteni način ponašanja djeluje kao djelomično omogućeno stanje SELinux. U ovom načinu nije odbijen pristup jer SELinux ne provodi svoja pravila u ovom načinu. Međutim, dopušteni način rada vodi evidenciju svih pokušaja kršenja pravila. Ovaj je način vrlo učinkovit za testiranje prije nego što ga omogući u potpunosti jer korisnici i komponente i dalje mogu komunicirati sa sustavom, ali i dalje prikupljaju zapisnike. To vam omogućuje fino podešavanje vašeg sustava na način koji smatrate prikladnim.

Onemogućeni način rada

Onemogućeni način rada također se može smatrati onemogućenim stanjem u kojem je SELinux onemogućen i ne nudi nikakvu sigurnost.

SELinux države

Jednom kada je SELinux instaliran na sustav. Može imati binarna stanja: omogućeno i onemogućeno. Da biste pogledali stanje SELinux-a, upotrijebite naredbu:

getenforce
Onemogućeno

Gornji izlaz pokazuje da je SELinux trenutno onemogućen.

Također možete koristiti naredbu sestatus kao što je prikazano dolje:

sestatus
SELinux status: onemogućen

Omogućite i onemogućite SELinux

Stanjem i konfiguracijom SELinux-a upravlja datoteka konfiguracije koja se nalazi u / etc / selinux / config. Pomoću naredbe cat možete pregledati njezin sadržaj.

mačka / etc / selinux / config
# Ova datoteka kontrolira stanje SELinux-a u sustavu.
# SELINUX = može uzeti jednu od ove tri vrijednosti:
#eforcing - SELinux sigurnosna politika se provodi.
#permissive - SELinux ispisuje upozorenja umjesto da ih provodi.
#disabled - Nije učitana nijedna SELinux politika.
SELINUX = provođenje
# SELINUXTYPE = može uzeti jednu od ove tri vrijednosti:
# ciljano - ciljani procesi su zaštićeni,
# minimum - Izmjena ciljane politike. Zaštićeni su samo odabrani procesi.
# mls - Višerazinska sigurnosna zaštita.
SELINUXTYPE = ciljano

Iz gornjeg izlaza omogućene su nam dvije glavne smjernice. Direktiva SELINUX specificirala je način u kojem je SELinux konfiguriran. Direktiva SELINUXTYPE specificira skup pravila SELinux. Prema zadanim postavkama, SELinux koristi ciljano pravilo koje vam omogućuje prilagodbu dozvola za kontrolu pristupa. Druga je politika višerazinska sigurnost ili MLS.

Možda ćete pronaći minimalno pravilo u nekim verzijama.

cd / etc / selinux /
[ls -l
ukupno 4
-rw-r - r-- 1 korijenski korijen 548 16. veljače 22:40 konfiguracije
drwxr-xr-x 1 korijen korijena 4096 16. veljače 22:43 mls
-rw-r - r-- 1 korijen korijena 2425 21. srpnja 2020. semanage.konf
drwxr-xr-x 1 korijenski korijen 4096 16. veljače 22:40 ciljano

Pogledajmo sada kako omogućiti SELinux u sustavu. Prvo preporučujemo da SELINUX način rada postavite na permisivan i neprimjenjiv.

nano / etc / selinux / config

Sada uredite SELINUX direktivu kao:

SELINUX = dopuštajući

Nakon što spremite datoteku, izdajte ponovno pokretanje sustava.

ponovno podizanje sustava

NAPOMENA: Preporučujemo da postavite SELINUX direktivu na permisivno prije primjene SELinux-a.

Nakon što ponovno pokrenete sustav, provjerite ima li dnevnika koje je SELinux prijavio u / var / log / messages.

Dalje, osigurajte da nemate pogrešaka i provedite SELinux postavljanjem direktive za provođenje u / etc / selinux / config

Napokon, status SELinuxa možete pogledati pomoću naredbe sestatus:

SELinux status: omogućeno
SELinuxfs montiranje: / sys / fs / selinux
Korijenski direktorij SELinux: / etc / selinux
Učitani naziv pravila: ciljano
Trenutni način rada: provođenje
Način iz konfiguracijske datoteke: pogreška (uspjeh)
Status MLS politike: omogućen
Status deny_unknown status: dopušteno
Provjera zaštite memorije: stvarna (sigurna)
Verzija politike maksimalnog jezgra: 31

Naredbu setenforce možete koristiti i za prebacivanje između različitih načina SELinux-a. Na primjer, da biste način postavili na permisivan, upotrijebite naredbu:

setenforce permisive

Ovaj je način privremen i vratit će se na jedan u konfiguracijskoj datoteci nakon ponovnog pokretanja.

sestatus SELinux status: omogućeno
SELinuxfs montiranje: / sys / fs / selinux
Korijenski direktorij SELinux: / etc / selinux
Učitani naziv pravila: ciljano
Trenutni način rada: permisivan
Način iz konfiguracijske datoteke: provođenje
Status MLS politike: omogućen
Status deny_unknown status: dopušteno
Provjera zaštite memorije: stvarna (sigurna)
Verzija politike maksimalnog jezgra: 31

SELinux politika i kontekst

Da ne bi došlo do zabune za početnike SELinux-a, nećemo zaranjati duboko u to kako se implementiraju SELinux-ove politike, već ćemo ih jednostavno dodirnuti kako bismo vam dali ideju.

SELinux funkcionira primjenom sigurnosnih pravila. SELinux politika odnosi se na pravilo koje se koristi za definiranje prava pristupa za svaki objekt u sustavu. Objekti se odnose na korisnike, procese, datoteke i uloge.

Svaki kontekst definiran je u obliku korisnik: uloga: tip: razina.

Na primjer, stvorite direktorij u svom početnom direktoriju i pogledajte njegov SELinux sigurnosni kontekst kao što je prikazano u naredbama u nastavku:

mkdir ~ / linuxhint_dir
ls -Z ~ / | grep linuxhint

Ovo će prikazati izlaz kao što je prikazano u nastavku:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Također možete pronaći i druge direktorije sa sigurnosnim kontekstom kao:

sustav: _u: object_r: user_home_t: s0

Možda ćete shvatiti da gornji izlaz slijedi sintaksu korisnika: role: type: level.

Zaključak

To je bio početnički vodič za SELinux pomoću CentOS 8. Iako je udžbenik namijenjen početnicima, više je nego dovoljno da pokrenete noge u SELinuxu i uklonite zastrašujuću prirodu SELinux-a.

Hvala na čitanju.

Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...
Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...