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:
- setools - ovaj se paket koristi za nadgledanje dnevnika, pravila za upite i upravljanje kontekstnim datotekama.
- policycoreutils-python - pruža osnovne uslužne programe pythona za upravljanje SELinuxom
- policycoreutils - ovaj paket također nudi uslužne programe za upravljanje SELinuxom.
- mcstrans - mcstrans nudi SELinux daemon prijevod, koji prevodi različite razine u jednostavne formate koji se lako mogu razumjeti.
- setools-console - slično setools.
- Selinux-policy - pruža referencu za konfiguriranje SELinux politike
- Selinux-policy-target - slično SELinux-policyu
- Libselinux-utils - SELinux libselinux uslužni programi koji pomažu u upravljanju SELinuxom
- 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 selinuxlibselinux-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 mcstransNač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:
- Provođenje
- Dopušteno
- Onemogućeno
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:
getenforceOnemogućeno
Gornji izlaz pokazuje da je SELinux trenutno onemogućen.
Također možete koristiti naredbu sestatus kao što je prikazano dolje:
sestatusSELinux 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 / configSada uredite SELINUX direktivu kao:
SELINUX = dopuštajućiNakon što spremite datoteku, izdajte ponovno pokretanje sustava.
ponovno podizanje sustavaNAPOMENA: 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ćenoSELinuxfs 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 permisiveOvaj je način privremen i vratit će se na jedan u konfiguracijskoj datoteci nakon ponovnog pokretanja.
sestatus SELinux status: omogućenoSELinuxfs 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_dirls -Z ~ / | grep linuxhint
Ovo će prikazati izlaz kao što je prikazano u nastavku:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirTakođer možete pronaći i druge direktorije sa sigurnosnim kontekstom kao:
sustav: _u: object_r: user_home_t: s0Mož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.