Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 28349|Odpoveď: 4

[linux] Dôkladné pochopenie toho, čo je SELinux v Linuxe

[Kopírovať odkaz]
Zverejnené 5. 7. 2019 11:25:50 | | | |
1. Preambula

Bezpečnostne vylepšený Linux (SELinux) je modul jadra Linuxu a bezpečnostný podsystém Linuxu.

SELinux bol primárne vyvinutý NSA. Linuxové jadrá 2.6 a vyššie už integrujú SELinux moduly.

SELinux je veľmi komplexný a obsahuje veľa konceptuálnych vecí, ktoré sa ťažko učia. Mnohí administrátori systémov Linuxu SELinux vypli, pretože ich považujú za problematický.

Ak ovládate SELinux a používate ho správne, myslím, že celý systém môže v podstate dosiahnuť úroveň "nezničiteľnosti" (vždy si pamätajte, že neexistuje absolútna bezpečnosť).

Zvládnutie základných konceptov SELinuxu, ako aj jednoduchých konfiguračných metód, je povinným kurzom pre každého správcu systému Linux.

Tento článok je založený na CentOS 7.4.1708.

Tento článok je čisto osobným vzdelávacím zážitkom, zdieľaním a výmenou, chyby sú nevyhnutné, len pre referenciu! Ak nájdete chybu, prosím, upozornite na ňu, veľmi pekne ďakujem!

2. Úloha SELinuxu a mechanizmus správy povolení

2.1 Úloha SELinuxu

Hlavnou funkciou SELinuxu je minimalizovať zdroje, ku ktorým môžu pristupovať servisné procesy v systéme (princíp najmenšej privilégiá).

Predstavte si, že ak sieťová služba bežiaca ako root má zraniteľnosť 0day, hackeri ju môžu využiť na to, aby robili čokoľvek na vašom serveri ako root. Nie je to desivé?

SELinux je tu, aby tento problém vyriešil.

2.2 DAC

V operačnom systéme, ktorý nepoužíva SELinux, faktorom určujúcim, či je zdroj prístupný, je to, či má zdroj oprávnenia príslušného používateľa (čítať, zapisovať, vykonávať).

Pokiaľ proces pristupujúci k tomuto zdroju spĺňa vyššie uvedené podmienky, je k nemu prístupný.

Najzávažnejším problémom je, že root používatelia nepodliehajú žiadnej regulácii a akékoľvek zdroje v systéme sú prístupné bez obmedzení.

Hlavnou súčasťou tohto mechanizmu správy oprávnení je používateľ, známy aj ako autonómna kontrola prístupu (DAC).

2.3 MAC

V operačnom systéme používajúcom SELinux faktory, ktoré určujú, či je zdroj prístupný, nie sú len vyššie uvedené faktory, ale aj to, či má každý typ procesu prístup k určitému typu zdroja.

Týmto spôsobom, aj keď proces beží ako root, je potrebné určiť typ procesu a typy zdrojov, ku ktorým je možné pristupovať, ešte predtým, než sa rozhodne, či povoliť prístup k zdroju. Aktívny priestor procesu môže byť tiež stlačený na minimum.

Dokonca aj servisný proces bežiaci ako root má zvyčajne prístup len k potrebným zdrojom. Aj keď je program zraniteľný, rozsah dopadu je obmedzený na zdroje, ku ktorým má prístup. Bezpečnosť je výrazne zvýšená.

Hlavnou súčasťou tohto mechanizmu správy oprávnení je proces, známy aj ako povinná kontrola prístupu (MAC).

MAC sa delí na dva spôsoby, jeden sa nazýva režim kategóriovej bezpečnosti (MCS) a druhý režim viacúrovňovej bezpečnosti (MLS).

Nasledujúce akcie sú v režime MCS.

2.4 Porovnanie DAC a MAC

Tu je obrázok na ilustráciu.



Ako vidíte, v režime DAC, pokiaľ má príslušný adresár oprávnenia príslušného používateľa, je prístupný. V MAC režime je tiež obmedzený rozsahom adresárov, ku ktorým môžu procesy pristupovať.

3. Základné koncepty SELinuxu

3.1 Predmet

Dá sa úplne prirovnať k procesu.

Poznámka: Pre jednoduchšie pochopenie, pokiaľ nie je uvedené inak, sa tento proces považuje za hlavné telo nižšie.

3.2 Cieľ

Zdroje, ku ktorým pristupuje riaditeľ. Môžu to byť súbory, adresáre, porty, zariadenia a podobne.

Poznámka: Pre jednoduchšie pochopenie, pokiaľ nie je uvedené inak, sa nasledujúce dokumenty alebo adresáre považujú za objekty.

3.3 Politika a pravidlá

V systéme je zvyčajne veľké množstvo súborov a procesov, a aby sme ušetrili čas a režijné náklady, zvyčajne selektívne regulujeme len určité procesy.

A ktoré procesy je potrebné regulovať a ako ich kontrolovať, určuje politika.

V poistke je viacero pravidiel. Niektoré pravidlá je možné podľa potreby povoliť alebo vypnúť (ďalej len Booleovské pravidlá).

Pravidlá sú modulárne a rozšíriteľné. Pri inštalácii novej aplikácie môže aplikácia pridávať pravidlá pridaním nových modulov. Používatelia môžu tiež manuálne pridávať alebo odoberať pravidlá.

V systéme CentOS 7 existujú tri sady politík, a to:

1. Targeted: Riadi väčšinu procesov sieťových služieb. Toto je politika, ktorú systém používa štandardne (všetky nižšie uvedené sú použité).

2. Minimum: Na základe cieľových sú regulované len vybrané procesy sieťových služieb. Vo všeobecnosti nie.

3. MLS: Viacúrovňová bezpečnostná ochrana. Regulujte všetky procesy. Toto je najprísnejšia politika a konfigurácia je veľmi náročná. Vo všeobecnosti sa nepoužíva, pokiaľ nie sú extrémne vysoké požiadavky na bezpečnosť.

Politiky je možné nastaviť v /etc/selinux/config.

3.4 Bezpečnostný kontext

Bezpečnostný kontext je jadrom SELinuxu.

Bezpečnostný kontext rozdeľujem na "kontext bezpečnosti procesu" a "kontext bezpečnosti dokumentov".

Kontext bezpečnosti procesu zvyčajne zodpovedá viacerým bezpečnostným kontextom dokumentov.

Iba keď bezpečnostný kontext týchto dvoch súborov zodpovedá, môže proces pristupovať k súboru. Ich korešpondencia je určená pravidlami v poistke.

Bezpečnostný kontext súboru je určený miestom vytvorenia súboru a procesom, ktorý ho vytvoril. Systém má sadu predvolených hodnôt a používatelia si môžu nastaviť aj predvolené hodnoty.

Je dôležité si uvedomiť, že samotné presúvanie súborov nemení bezpečnostný kontext vašich súborov.

Štruktúra a význam bezpečnostného kontextu

Bezpečnostný kontext má štyri polia, oddelené dvojbodkami. Tvar napríklad: system_u:object_r:admin_home_t:s0.


3.5 Pracovný režim SELinux

SELinux má tri režimy fungovania, a to:

1. vynucovanie: Vynútený režim. Porušenia pravidiel SELinux budú blokované a zaznamenávané do logov.

2. Permisívne: Režim tolerancie. Porušenia pravidiel SELinux sa zaznamenávajú len v logoch. Väčšinou na ladenie.

3. deaktivované: Vypnite SELinux.

Pracovný režim SELinux je možné nastaviť v /etc/selinux/config.

Ak chcete prejsť z deaktivovaného režimu na vynucovanie alebo povolenie, budete musieť systém reštartovať. A naopak.

Režim vynucovania a povolenia je možné rýchlo prepínať príkazom Setenforce 1|0.

Je dôležité poznamenať, že ak systém beží so SELinuxom vypnutým už nejaký čas, prvé reštartovanie po zapnutí SELinuxu môže byť pomalšie. Pretože systém musí vytvoriť bezpečný kontext pre súbory na disku (povedal som, že som reštartoval asi 10 minút a myslel som si, že je mŕtvy...... )。

SELinux logy je potrebné zaznamenávať pomocou auditd.service, prosím, nedeaktivujte ho.

3.6 Workflow SELinux

Tu je citát z obrázka, bez veľkého vysvetlenia.



Poznámka: Bezpečnostný text vyššie sa vzťahuje na bezpečnostný kontext.

4. Základné operácie SELinuxu

4.1 Dotaz na bezpečnostný kontext súboru alebo adresára

Základné použitie príkazov

ls -Z

Príklady použitia

Opýtajte sa na bezpečnostný kontext /etc/hosts.

ls -Z /atď/hostitelia

Výsledky vykonania

-RW-r--R--. koreňový system_u:object_r:net_conf_t:s0 /etc/hosts

4.2 Dotaz na bezpečnostný kontext procesu

Základné použitie príkazov

ps auxZ | grep -v grep | Grep

Príklady použitia

Dotazujte sa na bezpečnostný kontext procesov súvisiacich s Nginx.

ps auxZ | grep -v grep | Grep Nginx

Výsledky vykonania

system_u:system_r:httpd_t:s0 odmocniny 7997 0.0 0.0 122784 2156 ? SS 14:31 0:00 nginx: master process /usr/sbin/nginx

system_u:system_r:httpd_t:s0 nginx 7998 0.0 0.0 125332 7560 ? S 14:31 0:00 nginx: pracovný proces

4.3 Manuálna úprava bezpečnostného kontextu súboru alebo adresára

Základné použitie príkazov

CHCON [...]

Voliteľná funkcia -u Upraviť používateľské pole bezpečnostného kontextu -r Upraviť pole roly bezpečnostného kontextu -t Upraviť pole typu bezpečnostného kontextu -l Upraviť pole úrovne bezpečnostného kontextu --referencia Upraviť bezpečnostný kontext v súlade so špecifikovaným súborom alebo adresárom -R Rekurzívna operácia -h Upraviť bezpečnostný kontext softvérového odkazu (upraviť príslušný súbor mäkkého odkazu bez tejto možnosti)

Príklady použitia

Upravte bezpečnostný kontext testu na aaa_u:bbb_r:ccc_t:s0.

chcon -u aaa_u -r bbb_r -t ccc_t test

4.4 Vrátiť bezpečnostný kontext súboru alebo adresára na jeho predvolenú hodnotu

Základné použitie príkazov

Restorecon [možnosti] [...]

Voliteľná funkcia - V Tlačová operácia - R Rekurzívna operácia

Príklady použitia

Po pridaní niektorých webových súborov do adresára vášho Nginx servera nastavte správny bezpečnostný kontext pre tieto nové súbory.

restorecon -R /usr/share/nginx/html/

4.5 Dotaz na booleovské pravidlá a ich postavenie v systéme

Základné použitie príkazov

getsebool -a

Keďže príkaz dotazuje buď všetky pravidlá, alebo len jedno pravidlo, zvyčajne najprv dotazuje všetky pravidlá a potom filtruje pomocou grep.

Príklady použitia

Vyhľadajte Booleovské pravidlá týkajúce sa httpd.

getsebool -a | grep httpd

Výsledky vykonania

httpd_anon_write --> preč

httpd_builtin_scripting -->

httpd_can_check_spam -->

httpd_can_connect_ftp --> preč

#以下省略

4.6 Prepínanie booleovského pravidla

Základné použitie príkazov

Setsebool [Možnosť]

Voliteľná funkcia -P reštart stále platí

Príklady použitia

Zapnite httpd_anon_write pravidlá.

setsebool -P httpd_anon_write on

4.7 Pridanie predvoleného bezpečnostného kontextu pre adresár

Základné použitie príkazov

semanage fcontext -a -t "(/.*)?"

Poznámka: Predvolený bezpečnostný kontext adresára alebo súboru je možné zobraziť pomocou príkazu semanage fcontext -l v kombinácii s filtrovaním grep.

Príklady použitia

Po pridaní nového adresára /usr/share/nginx/html2 do Nginx musíte nastaviť rovnaký predvolený bezpečnostný kontext ako pre pôvodný adresár.

semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/html2(/.*)?"

4.8 Pridaj porty, ktoré sú povolené určitými typmi procesov

Základné použitie príkazov

semanage port -a -t -p

Poznámka: Čísla portov povolené pre rôzne typy služieb je možné zobraziť pomocou príkazu semanage port -l s filtrovaním grep.

Príklady použitia

Pre Nginx musíte použiť port 10080 pre HTTP služby.

SeManage port -a -t http_port_t -p TCP 10080

5. Analýza a riešenie chýb SELinux

5.1 Pochopenie SELinux logov

Keď je SELinux povolený, bežné správanie mnohých služieb sa považuje za porušenie (ako v názve, tak aj v chybách nižšie).

V súčasnosti potrebujeme použiť logy porušenia SELinuxu na ich analýzu a vyriešenie.

Záznamy o porušeniach SELinux sa ukladajú v /var/log/audit/audit.log.

/var/log/audit/audit.log 的内容大概是这样的。

type=LOGIN msg=audit(1507898701.391:515): pid=8523 uid=0 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 old-auid=4294967295 auid=0 tty=(žiadny) old-ses=4294967295 ses=25 res=1

type=USER_START msg=audit(1507898701.421:516): pid=8523 uid=0 auid=0 ses=25 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_loginuid,pam_ keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=úspech'

...

Súbor je plný obsahu a je zmiešaný s množstvom systémových auditných logov, ktoré nemajú nič spoločné so SELinux chybami. Na analýzu použijeme nástroj sealert (ak výzva príkaz nenájde, nainštalujeme balík setroubleshoot).

5.2 Analýza chýb pomocou sealertu

Základné použitie príkazov

SEALERT -a /var/log/audit/audit.log

Po vykonaní príkazu musí systém venovať čas analýze porušení v logoch a poskytnúť analytickú správu.




Predchádzajúci:CentOS7 Zobraziť a vypnúť firewall
Budúci:Ovládnite prístup k rozhraniu Java API v HDFS
 Prenajímateľ| Zverejnené 22. 7. 2021 17:17:58 |
Vypnite SELinux

getenforce #查看是否是 zakázané, ak nie, vykonajte nižšie uvedený príkaz
vim /etc/selinux/config
Zmeniť SELINUX=vynucovanie na SELINUX=deaktivovať, uložiť a ukončiť
 Prenajímateľ| Zverejnené 15. 10. 2021 13:21:42 |
 Prenajímateľ| Zverejnené 15. 10. 2021 14:22:40 |
Vypnúť swap partition swap

 Prenajímateľ| Zverejnené 3. 9. 2024 14:16:43 |
Zatvoriť SELINUX





Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com