SELinux

SELinux za začetnike, ki uporabljajo CentOS

SELinux za začetnike, ki uporabljajo CentOS
Varnostni sistem Linux ali SELinux, ki ga je razvila NSA za preprečevanje zlonamernega dostopa in vdorov, je napredna funkcija nadzora dostopa, ki je priložena večini sodobnih distribucij Linuxa. SELinux je opredeljen kot sistem obveznega nadzora dostopa (MAC), razvit kot zamenjava za sistem diskrecijskega nadzora dostopa (DAC).

SELinux se lahko zdi zastrašujoč in ga je v večini sodobnih sistemov zelo težko implementirati. Vendar ima konfiguracija SELinux velike prednosti tako pri uveljavljanju varnosti kot pri odpravljanju težav.

Ta vadnica bo obravnavala različne koncepte, ki jih izvaja SELinux, in raziskovala različne praktične metode izvajanja SELinux.

OPOMBA: Preden začnemo, je dobro uporabiti ukaze v tej vadnici kot korenski uporabnik ali uporabnik v skupini sudoers.

Namestite pakete SELinux

Namestite nam različne pakete SELinux, ki bodo pomagali pri delu s pravilniki SELinux.

Preden nadaljujemo z namestitvijo paketov SELinux, je dobro preveriti, kateri so nameščeni v trenutnem sistemu.

V večini namestitev distribucij REHL so nekateri paketi privzeto nameščeni. Ti paketi vključujejo:

  1. setools - ta paket se uporablja za spremljanje dnevnikov, pravilnikov poizvedb in upravljanja kontekstnih datotek.
  2. policycoreutils-python - ponuja osnovne pripomočke python za upravljanje SELinux
  3. policycoreutils - ta paket ponuja tudi pripomočke za upravljanje SELinux.
  4. mcstrans - mcstrans ponuja demon za prevajanje SELinux, ki prevede različne ravni v enostavne formate, ki jih je mogoče enostavno razumeti.
  5. setools-console - podobno kot setools.
  6. Politika Selinux - vsebuje referenco za konfiguriranje politike SELinux
  7. Selinux-policy-target - podobno kot SELinux-policy
  8. Libselinux-utils - pripomočki SELinux libselinux, ki pomagajo upravljati SELinux
  9. Setroubleshoot-server - orodja za odpravljanje težav SELinux

Če želite preveriti, kateri paketi so že nameščeni v vašem sistemu, lahko z ukazom rpm -qa in rezultat pripeljete v grep za SELinux kot:

vrt / min -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-target-3.14.3-54.el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64

To vam bo dalo rezultate vseh paketov, nameščenih za podporo za SELinux

Če v vašem sistemu niso nameščeni vsi paketi SELinux, jih namestite z yumom, kot je prikazano v spodnjem ukazu:

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

Načini in stanja SELinux

Začnimo se zdaj igrati s SELinuxom, natančneje z načini SELinux.

Načini SELinux

Ko je omogočen, so lahko SELinux trije možni načini:

Izvršilni način

Če bo SELinux uveljavil način, bo zagotovil, da noben uporabnik ali proces ne bo zavrnil nobenega nepooblaščenega dostopa do sistema. Izvršilni način vodi tudi dnevnike vseh poskusov nepooblaščenega dostopa.

Permisivni način

Dovoljen način deluje kot delno omogočeno stanje SELinux. V tem načinu dostop ni zavrnjen, saj SELinux v tem načinu ne uveljavlja svojih pravilnikov. Vendar dovoljeni način vodi dnevnik vseh poskusov kršitve pravilnika. Ta način je zelo učinkovit za testiranje, preden ga v celoti omogoči, saj lahko uporabniki in komponente še vedno komunicirajo s sistemom, vendar še vedno zbirajo dnevnike. To vam omogoča natančno nastavitev sistema na način, ki se vam zdi primeren.

Onemogočen način

Način onemogočenja lahko vidimo tudi kot onemogočeno stanje, v katerem je SELinux onemogočen in ne ponuja nobene varnosti.

Države SELinux

Ko je SELinux nameščen v sistem. Lahko ima binarna stanja: omogočena in onemogočena. Če si želite ogledati stanje SELinux, uporabite ukaz:

getenforce
Onemogočeno

Zgornji izhod kaže, da je SELinux trenutno onemogočen.

Uporabite lahko tudi ukaz sestatus, kot je prikazano spodaj:

sestatus
Stanje SELinux: onemogočeno

Omogoči in onemogoči SELinux

Stanja in konfiguracijo SELinux-a ureja konfiguracijska datoteka, ki se nahaja v / etc / selinux / config. Za ogled vsebine lahko uporabite ukaz cat.

mačka / etc / selinux / config
# Ta datoteka nadzoruje stanje SELinux v sistemu.
# SELINUX = lahko zavzame eno od teh treh vrednosti:
#enforcing - Izvaja se varnostna politika SELinux.
#permissive - SELinux natisne opozorila, namesto da bi jih vsilil.
#disabled - Noben pravilnik SELinux ni naložen.
SELINUX = uveljavljanje
# SELINUXTYPE = lahko zavzame eno od teh treh vrednosti:
# target - ciljni procesi so zaščiteni,
# minimum - Sprememba ciljne politike. Zaščiteni so samo izbrani procesi.
# mls - Varnostna zaščita na več ravneh.
SELINUXTYPE = ciljno usmerjen

Iz zgornjega izhoda imamo omogočeni dve glavni direktivi. Direktiva SELINUX je določila način, v katerem je konfiguriran SELinux. Direktiva SELINUXTYPE določa nabor pravilnikov SELinux. SELinux privzeto uporablja ciljni pravilnik, ki vam omogoča prilagajanje dovoljenj za nadzor dostopa. Druga politika je varnost na več ravneh ali MLS.

V nekaterih različicah lahko najdete minimalno politiko.

cd / etc / selinux /
[ls -l
skupaj 4
-rw-r - r-- 1 korenski koren 548 16. februar 22:40 konfig
drwxr-xr-x 1 korenski koren 4096 16. februar 22:43 mls
-rw-r - r-- 1 korenski koren 2425 21. julij 2020 semanage.conf
drwxr-xr-x 1 korenski koren 4096 16. februar 22:40 ciljno

Poglejmo zdaj, kako omogočiti SELinux v sistemu. Priporočamo, da najprej nastavite način SELINUX na permisivni in neizvršen.

nano / etc / selinux / config

Zdaj uredite direktivo SELINUX kot:

SELINUX = dovoljeno

Ko datoteko shranite, izdajte ponovni zagon sistema.

znova zaženite

OPOMBA: Toplo priporočamo, da pred uveljavitvijo SELinux-a nastavite direktivo SELINUX na permisivno.

Ko ponovno zaženete sistem, preverite, ali so v / var / log / messages prijavljeni dnevniki, ki jih poroča SELinux.

Nato se prepričajte, da nimate napak, in uveljavite SELinux, tako da nastavite direktivo za uveljavitev v / etc / selinux / config

Na koncu si lahko stanje SELinux ogledate z ukazom sestatus:

Stanje SELinux: omogočeno
SELinuxfs mount: / sys / fs / selinux
Korenski imenik SELinux: / etc / selinux
Naloženo ime pravilnika: ciljno
Trenutni način: uveljavljanje
Način iz konfiguracijske datoteke: napaka (uspeh)
Stanje MLS pravilnika: omogočeno
Stanje pravilnika deny_unknown: dovoljeno
Preverjanje zaščite pomnilnika: dejansko (varno)
Najvišja različica pravilnika jedra: 31

Ukaz setenforce lahko uporabite tudi za preklop med različnimi načini SELinux. Če želite na primer način nastaviti na permisivni način, uporabite ukaz:

setenforce permisive

Ta način je začasen in bo po ponovnem zagonu obnovljen na enega v konfiguracijski datoteki.

sestatus SELinux status: omogočeno
SELinuxfs mount: / sys / fs / selinux
Korenski imenik SELinux: / etc / selinux
Naloženo ime pravilnika: ciljno
Trenutni način: dovoljen
Način iz konfiguracijske datoteke: uveljavljanje
Stanje MLS pravilnika: omogočeno
Stanje pravilnika deny_unknown: dovoljeno
Preverjanje zaščite pomnilnika: dejansko (varno)
Najvišja različica pravilnika jedra: 31

Politika in kontekst SELinux

Da ne bi prišlo do zmede pri začetnikih SELinux, se ne bomo poglobili v to, kako se izvajajo politike SELinux, ampak se ga preprosto dotaknemo, da vam predstavimo.

SELinux deluje tako, da izvaja varnostne politike. Pravilnik SELinux se nanaša na pravilo, ki se uporablja za določanje pravic dostopa za vsak predmet v sistemu. Predmeti se nanašajo na uporabnike, procese, datoteke in vloge.

Vsak kontekst je definiran v obliki uporabnik: vloga: tip: raven.

Na primer, ustvarite imenik v domačem imeniku in si oglejte njegov varnostni kontekst SELinux, kot je prikazano v spodnjih ukazih:

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

To bo prikazalo izhod, kot je prikazano spodaj:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Lahko najdete tudi druge imenike z varnostnim kontekstom kot:

sistem: _u: object_r: user_home_t: s0

Morda se zavedate, da zgornji izhod sledi skladnji uporabnik: vloga: tip: raven.

Zaključek

To je bila začetniška vadnica za SELinux z uporabo CentOS 8. Čeprav je vadnica namenjena začetnikom, je več kot dovolj, da se noge zaženejo v SELinuxu in odstranijo zastrašujočo naravo SELinux.

Hvala za branje.

10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...
Bitka za Wesnoth 1.13.6 Razvoj izdan
Bitka za Wesnoth 1.13.6, ki je izšel prejšnji mesec, je šesta razvojna izdaja v 1.13.x series in prinaša številne izboljšave, predvsem uporabniški vme...