SELinux

SELinux pre začiatočníkov používajúci CentOS

SELinux pre začiatočníkov používajúci CentOS
Security-Enhanced Linux alebo SELinux, vyvinutý NSA s cieľom zabrániť zlovolnému prístupu a vniknutiu, je pokročilá funkcia riadenia prístupu, ktorá sa dodáva s väčšinou moderných distribúcií systému Linux. SELinux je definovaný ako systém povinného riadenia prístupu (MAC) vyvinutý ako náhrada za systém ľubovoľného riadenia prístupu (DAC).

SELinux sa môže javiť ako skľučujúci a veľmi ťažko implementovateľný vo väčšine moderných systémov. Konfigurácia SELinuxu má však obrovské výhody pri presadzovaní bezpečnosti aj pri riešení problémov.

Tento tutoriál bude diskutovať o rôznych konceptoch implementovaných SELinuxom a preskúma rôzne praktické metódy implementácie SELinuxu.

POZNÁMKA: Skôr ako začneme, je dobré použiť príkazy v tomto tutoriále ako root alebo ako užívateľ v skupine sudoers.

Nainštalujte si balíčky SELinux

Nainštalujme si rôzne balíčky SELinux, ktoré zase pomôžu pracovať s politikami SELinuxu.

Pred inštaláciou balíkov SELinux je dobré skontrolovať, ktoré sú nainštalované v aktuálnom systéme.

Vo väčšine inštalácií distribúcií REHL sú niektoré balíčky nainštalované predvolene. Tieto balíčky zahŕňajú:

  1. setools - tento balík sa používa na monitorovanie protokolov, politiky dopytovania a správu kontextových súborov.
  2. policycoreutils-python - poskytuje základné obslužné programy pythonu pre správu SELinuxu
  3. policycoreutils - tento balík poskytuje aj pomocné programy na správu SELinuxu.
  4. mcstrans - mcstrans poskytuje prekladový démon SELinux, ktorý prekladá rôzne úrovne do ľahkých formátov, ktorým sa dá ľahko porozumieť.
  5. setools-console - podobne ako setools.
  6. Selinux-policy - poskytuje referenciu pre konfiguráciu politiky SELinux
  7. Selinux-policy-cílené - podobné ako SELinux-policy
  8. Libselinux-utils - nástroje SELinux libselinux, ktoré pomáhajú spravovať SELinux
  9. Setroubleshoot-server - nástroje na riešenie problémov so SELinuxom

Ak chcete overiť, ktoré balíky sú už vo vašom systéme nainštalované, môžete použiť príkaz rpm -qa a výsledok prepísať na grep pre SELinux ako:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-cílené-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

Toto by vám malo poskytnúť výstup zo všetkých balíkov nainštalovaných pre podporu SELinux

Ak vo vašom systéme nie sú nainštalované všetky balíčky SELinux, nainštalujte ich pomocou príkazu yum, ako je uvedené v nasledujúcom príkaze:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-cílené libselinux-utils nastavenie riešenia problémov-server setools setools-console mcstrans

Režimy a stavy SELinux

Začnime teraz hrať so SELinuxom, konkrétne s režimami SELinux.

Režimy SELinux

Ak je to povolené, SELinux môže mať tri možné režimy:

Režim presadzovania

Ak režim SELinux vynúti, zabezpečí to, že nebude odmietnutý žiadny neoprávnený prístup do systému akýmkoľvek používateľom alebo procesmi. Režim vynútenia tiež uchováva protokoly o všetkých pokusoch o neoprávnený prístup.

Povolený režim

Povolený režim funguje ako čiastočne povolený stav SELinux. V tomto režime nie je odmietnutý prístup, pretože SELinux v tomto režime nepresadzuje svoje politiky. Povolený režim však zaznamenáva všetky pokusy o porušenie pravidiel. Tento režim je veľmi efektívny pri testovaní pred úplným povolením, pretože používatelia a komponenty môžu stále komunikovať so systémom, ale stále zhromažďujú protokoly. To vám umožní doladiť váš systém spôsobom, ktorý považujete za vhodný.

Zakázaný režim

Zakázaný režim možno tiež považovať za deaktivovaný stav, v ktorom je SELinux zakázaný a neponúka žiadne zabezpečenie.

Štáty SELinux

Akonáhle je SELinux nainštalovaný v systéme. Môže mať binárne stavy: povolené a zakázané. Na zobrazenie stavu SELinuxu použite príkaz:

posilniť
Zakázané

Vyššie uvedený výstup naznačuje, že SELinux je momentálne zakázaný.

Môžete tiež použiť príkaz sestatus, ako je uvedené nižšie:

sestatus
Stav SELinux: vypnutý

Povoliť a zakázať SELinux

Štáty a konfiguráciu SELinuxu rieši konfiguračný súbor umiestnený v / etc / selinux / config. Na zobrazenie jeho obsahu môžete použiť príkaz cat.

mačka / etc / selinux / config
# Tento súbor riadi stav systému SELinux v systéme.
# SELINUX = môže mať jednu z týchto troch hodnôt:
#enforcing - uplatňuje sa bezpečnostná politika SELinux.
#permissive - SELinux namiesto vynútenia vytlačí varovania.
#disabled - nenačíta sa žiadna politika SELinux.
SELINUX = presadzovanie
# SELINUXTYPE = môže mať jednu z týchto troch hodnôt:
# Targeted - Cielené procesy sú chránené,
# minimum - Úprava zameranej politiky. Chránené sú iba vybrané procesy.
# mls - ochrana viacerých úrovní zabezpečenia.
SELINUXTYPE = cielené

Z vyššie uvedeného výstupu máme povolené dve hlavné smernice. Smernica SELINUX určila režim, v ktorom je nakonfigurovaný SELinux. Smernica SELINUXTYPE určuje sadu politík SELinux. SELinux štandardne používa cielenú politiku, ktorá vám umožňuje prispôsobiť oprávnenia riadenia prístupu. Druhou politikou je viacúrovňové zabezpečenie alebo MLS.

V niektorých verziách nájdete minimálne zásady.

cd / etc / selinux /
[ls -l
celkom 4
-rw-r - r-- 1 koreňový koreň 548 16. februára 22:40 konfigur
drwxr-xr-x 1 koreňový koreň 4096 16. februára 22:43 mls
-rw-r - r-- 1 koreňový koreň 2425 21. júla 2020 semanage.konf
drwxr-xr-x 1 koreňový koreň 4096 16. februára 22:40 cielená

Pozrime sa teraz, ako povoliť SELinux v systéme. Odporúčame najskôr nastaviť režim SELINUX na tolerantný a nevynútený.

nano / etc / selinux / config

Teraz upravte smernicu SELINUX ako:

SELINUX = tolerantný

Po uložení súboru reštartujte systém.

reštartovať

POZNÁMKA: Pred presadením SELinuxu dôrazne odporúčame nastaviť smernicu SELINUX na permisívnu.

Po reštarte systému skontrolujte, či sa v protokole / var / log / messages nenachádzajú protokoly hlásené serverom SELinux.

Ďalej sa uistite, že nemáte žiadne chyby, a vynútite SELinux nastavením smernice na vynútenie v / etc / selinux / config

Nakoniec môžete zobraziť stav SELinux pomocou príkazu sestatus:

Stav SELinux: povolený
Mount SELinuxfs: / sys / fs / selinux
Koreňový adresár SELinux: / etc / selinux
Načítaný názov politiky: zacielený
Aktuálny režim: vynucovanie
Režim z konfiguračného súboru: chyba (úspech)
Stav politiky MLS: povolený
Stav zásady deny_unknown: povolený
Kontrola ochrany pamäte: skutočná (zabezpečená)
Maximálna verzia politiky jadra: 31

Môžete tiež použiť príkaz setenforce na prepínanie medzi rôznymi režimami SELinux. Ak chcete napríklad nastaviť režim na permisívny, použite príkaz:

dohodnúť prípustnosť

Tento režim je dočasný a po reštarte sa obnoví v konfiguračnom súbore.

Stav sestatus SELinux: povolený
Mount SELinuxfs: / sys / fs / selinux
Koreňový adresár SELinux: / etc / selinux
Načítaný názov politiky: zacielený
Aktuálny režim: tolerantný
Režim z konfiguračného súboru: vynucovanie
Stav politiky MLS: povolený
Stav zásady deny_unknown: povolený
Kontrola ochrany pamäte: skutočná (zabezpečená)
Maximálna verzia politiky jadra: 31

Politika a kontext SELinuxu

Aby sme predišli nedorozumeniam pre začiatočníkov v SELinuxe, nebudeme sa hlboko venovať implementácii politík SELinuxu, ale jednoducho sa ho dotkneme, aby sme získali predstavu.

SELinux funguje implementáciou bezpečnostných politík. Politika SELinuxu sa týka pravidla, ktoré sa používa na definovanie prístupových práv pre každý objekt v systéme. Objekty odkazujú na používateľov, procesy, súbory a roly.

Každý kontext je definovaný vo forme užívateľ: rola: typ: úroveň.

Napríklad vytvorte adresár vo svojom domovskom adresári a pozrite si jeho bezpečnostný kontext SELinux, ako je uvedené v nasledujúcich príkazoch:

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

Zobrazí sa výstup, ako je uvedené nižšie:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Môžete tiež nájsť ďalšie adresáre s kontextmi zabezpečenia ako:

system: _u: object_r: user_home_t: s0

Môžete si uvedomiť, že vyššie uvedený výstup sleduje syntax používateľa: role: type: level.

Záver

To bol výukový program pre začiatočníkov pre SELinux pomocou CentOS 8. Aj keď je tento tutoriál určený pre začiatočníkov, je viac než dosť, aby ste si rozbehli nohy v SELinuxe a odstránili zastrašujúcu povahu SELinuxu.

Ďakujem za čítanie.

Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...