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ú:
- setools - tento balík sa používa na monitorovanie protokolov, politiky dopytovania a správu kontextových súborov.
- policycoreutils-python - poskytuje základné obslužné programy pythonu pre správu SELinuxu
- policycoreutils - tento balík poskytuje aj pomocné programy na správu SELinuxu.
- mcstrans - mcstrans poskytuje prekladový démon SELinux, ktorý prekladá rôzne úrovne do ľahkých formátov, ktorým sa dá ľahko porozumieť.
- setools-console - podobne ako setools.
- Selinux-policy - poskytuje referenciu pre konfiguráciu politiky SELinux
- Selinux-policy-cílené - podobné ako SELinux-policy
- Libselinux-utils - nástroje SELinux libselinux, ktoré pomáhajú spravovať SELinux
- 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 selinuxlibselinux-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 mcstransRež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:
- Presadzovanie
- Tolerantný
- Zakázané
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:
sestatusStav 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 / configTeraz 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_dirls -Z ~ / | grep linuxhint
Zobrazí sa výstup, ako je uvedené nižšie:
unconfined_u: object_r: user_home_t: s0 linuxhint_dirMôžete tiež nájsť ďalšie adresáre s kontextmi zabezpečenia ako:
system: _u: object_r: user_home_t: s0Môž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.