Sprievodca SE pre začiatočníkovLinux

Sprievodca SE pre začiatočníkovLinux

Preklad článku pripraveného pre študentov kurzu "Bezpečnosť Linux»

SELinux alebo Zvýšené zabezpečenie Linux MAC je vylepšený mechanizmus riadenia prístupu vyvinutý Národnou bezpečnostnou agentúrou USA (NSA) na predchádzanie škodlivým útokom. Implementuje model povinného riadenia prístupu (MAC) nad rámec existujúceho modelu diskrečného riadenia prístupu (DAC), ktorý zahŕňa oprávnenia na čítanie, zápis a vykonávanie.

Na juhovýchodeLinux Existujú tri režimy:

  1. presadzovanie — odmietnutie prístupu na základe pravidiel politiky.
  2. Povoľný — vedenie denníka akcií, ktoré porušujú politiku, čo by bolo v režime presadzovania zakázané.
  3. invalidný — úplné odstavenie SELinux.

Štandardne sú nastavenia in /etc/selinux/config

Zmena režimov SELinux

Ak chcete zistiť aktuálny režim, spustite

$ getenforce

Ak chcete zmeniť režim na povolený, spustite nasledujúci príkaz

$ setenforce 0

alebo na zmenu režimu liberálne na vymáhanie, vykonať

$ setenforce 1

Ak potrebujete úplne vypnúť SELinux, potom sa to dá urobiť iba prostredníctvom konfiguračného súboru

$ vi /etc/selinux/config

Ak chcete vypnúť, zmeňte parameter SELINUX nasledovne:

SELINUX=disabled

Nastavenie SELinux

Každý súbor a proces je označený kontextom SE.Linux, ktorý obsahuje ďalšie informácie, ako napríklad používateľ, rola, typ atď. Ak povoľujete SE prvýkrátLinux, potom musíte najprv nakonfigurovať kontext a označenia. Proces priraďovania označení a kontextu sa nazýva označovanie. Ak chcete začať s označovaním, zmeňte režim v konfiguračnom súbore na liberálne.

$ vi /etc/selinux/config
SELINUX=permissive

Po nastavení režimu liberálne, vytvorte prázdny skrytý súbor v koreňovom adresári s názvom autorelabel

$ touch /.autorelabel

a reštartujte počítač

$ init 6

Poznámka: Používame režim liberálne na značenie, od používania režimu vymáhanie môže spôsobiť zlyhanie systému počas reštartu.

Nerobte si starosti, ak sa sťahovanie zasekne na nejakom súbore, označovanie chvíľu trvá. Po dokončení označovania a zavedení systému môžete prejsť do konfiguračného súboru a nastaviť režim vymáhaniea tiež spustiť:

$ setenforce 1

Teraz ste úspešne povolili SELinux na vašom počítači.

Monitorovanie protokolov

Počas označovania alebo počas behu systému ste mohli naraziť na nejaké chyby. Ak chcete skontrolovať, či váš SE fungujeLinux Musíte skontrolovať protokoly, aby ste zistili, či sú správne a či blokujú prístup k nejakým portom, aplikáciám atď. SE protokolLinux je v /var/log/audit/audit.log, ale na nájdenie chýb nemusíte čítať celé. Na nájdenie chýb môžete použiť pomôcku audit2why. Spustite nasledujúci príkaz:

$ audit2why < /var/log/audit/audit.log

V dôsledku toho dostanete zoznam chýb. Ak v protokole neboli žiadne chyby, nezobrazia sa žiadne správy.

Nastavenie politiky SELinux

Politika SELinux — je súbor pravidiel, ktoré riadia bezpečnostný mechanizmus SELinuxPolitika definuje súbor pravidiel pre konkrétne prostredie. Teraz sa naučíme, ako nakonfigurovať politiky, ktoré umožnia prístup k obmedzeným službám.

1. Logické hodnoty (prepínače)

Booleovské hodnoty vám umožňujú meniť časti politiky za behu bez nutnosti vytvárať nové politiky. Umožňujú vám vykonávať zmeny bez reštartu alebo opätovnej kompilácie politík SE.Linux.

Príklad
Povedzme, že chceme zdieľať domovský adresár používateľa cez FTP na čítanie a zápis a už sme ho zdieľali, ale keď sa k nemu pokúsime získať prístup, nič sa nezobrazí. Je to preto, lebo politika SELinux bráni FTP serveru v čítaní a zápise do domovského adresára používateľa. Musíme zmeniť politiku tak, aby FTP server mal prístup k domovským adresárom. Pozrime sa, či na to existujú nejaké prepínače spustením

$ semanage boolean -l

Tento príkaz zobrazí zoznam dostupných prepínačov s ich aktuálnym stavom (zapnuté alebo vypnuté) a popisom. Svoje vyhľadávanie môžete spresniť pridaním grep, aby ste našli výsledky iba pre ftp:

$ semanage boolean -l | grep ftp

a nájdete nasledujúce

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

Tento prepínač je deaktivovaný, takže ho povolíme pomocou setsebool $ setsebool ftp_home_dir on

Teraz bude mať náš ftp démon prístup k domovskému adresáru používateľa.
Poznámka: Zoznam dostupných prepínačov môžete získať aj bez popisu getsebool -a

2. Označenia a kontext

Toto je najbežnejší spôsob implementácie politiky SE.LinuxKaždý súbor, priečinok, proces a port je označený kontextom SE.Linux:

  • Pre súbory a priečinky sú štítky uložené ako rozšírené atribúty v systéme súborov a možno ich zobraziť pomocou nasledujúceho príkazu:
    $ ls -Z /etc/httpd
  • V prípade procesov a portov je označovanie riadené jadrom a tieto označenia môžete zobraziť takto:

proces

$ ps –auxZ | grep httpd

prístav

$ netstat -anpZ | grep httpd

Príklad
Teraz sa pozrime na príklad, aby sme lepšie pochopili označenia a kontext. Povedzme, že máme webový server, ktorý namiesto katalógu /var/www/html/ использует /home/dan/html/SELinux bude to považovať za porušenie pravidiel a nebudete si môcť zobraziť svoje webové stránky. Je to preto, že sme nenastavili bezpečnostný kontext spojený so súbormi HTML. Ak chcete zobraziť predvolený bezpečnostný kontext, použite nasledujúci príkaz:

$ ls –lz /var/www/html
 -rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

Tu to máme httpd_sys_content_t ako kontext pre html súbory. Tento kontext zabezpečenia musíme nastaviť pre náš aktuálny adresár, ktorý má momentálne nasledujúci kontext:

-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

Alternatívny príkaz na kontrolu bezpečnostného kontextu súboru alebo adresára:

$ semanage fcontext -l | grep '/var/www'

Po nájdení správneho bezpečnostného kontextu tiež použijeme semanage na zmenu kontextu. Ak chcete zmeniť kontext /home/dan/html, spustite nasledujúce príkazy:

$ semanage fcontext -a -t httpd_sys_content_t ‘/home/dan/html(/.*)?’
$ semanage fcontext -l | grep ‘/home/dan/html’
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

Po zmene kontextu pomocou semanage príkaz restorecon načíta predvolený kontext pre súbory a adresáre. Náš webový server bude teraz môcť čítať súbory z priečinka /home/dan/htmlpretože kontext zabezpečenia pre tento priečinok bol zmenený na httpd_sys_content_t.

3. Vytvorte miestne politiky

Môžu nastať situácie, keď vám vyššie uvedené metódy nebudú k ničomu a v audit.log sa vám zobrazia chyby (avc/odmietnutie). Keď sa to stane, musíte vytvoriť lokálnu politiku. Všetky chyby môžete nájsť pomocou audit2why, ako je popísané vyššie.

Môžete vytvoriť lokálnu politiku na riešenie chýb. Napríklad dostaneme chybu súvisiacu s httpd (apache) alebo smbd (samba), chyby grepujeme a vytvoríme pre ne politiku:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

Tu http_policy и smb_policy — toto sú názvy lokálnych politík, ktoré sme vytvorili. Teraz musíme tieto vytvorené lokálne politiky načítať do aktuálnej politiky SE.Linux. Dá sa to urobiť nasledovne:

$ semodule –I http_policy.pp
$ semodule –I smb_policy.pp

Naše miestne pravidlá boli stiahnuté a už by sme nemali dostávať žiadne avc ani denail v audit.log.

Toto bol môj pokus pomôcť vám pochopiť SELinuxDúfam, že po prečítaní tohto článku sa budete cítiť pohodlne so SE.Linux pohodlnejšie.

Zdroj: hab.com

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster