Vypnutie selinux centos 7. Konfigurácia SELinuxu, povolenie, zakázanie. metóda na zakázanie SELinux na CentOS. Raz a navždy

Čo poskytuje mechanizmus na podporu bezpečnostných politík riadenia prístupu. SELinux vám niekedy môže prekážať. Preto ho musíte vypnúť-deaktivovať SELinux . Pred vypnutím/deaktiváciou SELinux sa však uistite, že máte dobrý dôvod, prečo to robíte.

Ako dočasne zakázať/deaktivovať SELinux

Krok 1: Najprv skontrolujte aktuálny stav SELinux pomocou nasledujúceho príkazu:

# getenforce presadzovanie #

Použitie inej metódy s príkazom, ktorého výsledkom je to isté:

# sestatus Stav SELinux: zapnuté pripojenie SELinuxfs: /selinux Aktuálny režim: vynucovanie Režim z konfiguračného súboru: vynucovanie Verzia politiky: 24 Politika z konfiguračného súboru: cielené #

Krok 2: Dočasne deaktivovať/deaktivovať SELinux , použite metódu nižšie:

# echo 0 > /selinux/enforce

Iná metóda

#setenforce 0

S najväčšou pravdepodobnosťou ho môžete nastaviť do permisívneho režimu. Výsledkom je, že SELinux vydá varovné správy namiesto toho, aby ho vykonal. Ak chcete urobiť to isté, použite nasledujúci príkaz:

# setenforce Povolenie

Po prvé, opísaná metóda funguje, kým nereštartujete. V dôsledku toho bude fungovať až do ďalšieho reštartu. Tiež, ak to chcete urobiť na trvalý základ cez reštart, postupujte podľa nižšie uvedeného postupu.

Ako natrvalo vypnúť-zakázať SELinux

Ak ho chcete deaktivovať natrvalo, zmeňte hodnotu „ SELinux"zapnuté" zdravotne postihnutých"v súbore" /etc/sysconfig/SELinux"ako je ukázané nižšie

Nakoniec znova skontrolujte pomocou nižšie uvedeného príkazu:

# sestatus Stav SELinux: vypnutý

SELinux (Security-Enhanced Linux - Linux s vylepšeným zabezpečením) je implementácia systému nútenej kontroly prístupu, ktorá môže pracovať paralelne s klasickým systémom kontroly prístupu podľa vlastného uváženia. Zahrnuté v štandardnom jadre Linuxu. Aby SELinux fungoval, sú potrebné upravené verzie niektorých nástrojov (ps, ls atď.), ktoré poskytujú podporu pre nové funkcie jadra a podporu zo systému súborov.

Metóda 1: Dočasne vypnite SELinux

Ak chcete dočasne vypnúť SELinux, môžete upraviť súbor /selinux/enforce. Upozorňujeme, že ide o dočasné vypnutie a po reštarte systému bude SELinux opäť fungovať.

# cat /selinux/enforce 1 # echo 0 > /selinux/enforce# cat /selinux/enforce 0 Môžete tiež použiť príkaz setenforce, ako je uvedené v príklade nižšie. Možné možnosti pre príkaz setenforce sú: Vynútiť, Povoliť, 1 (povoliť) alebo 0 (zakázať).
#setenforce 0

Metóda 2: Natrvalo zakážte SELinux

Ak chcete natrvalo vypnúť SELinux, upravte súbor /etc/selinux/config a nastavte SELINUX=disabled, ako je uvedené nižšie. Potom reštartujte server.

# cat /etc/selinux/config SELINUX=zakázané SELINUXTYPE=cielené SETLOCALDEFS=0

Metóda 3: Zakázanie SELinuxu v Grub Bootloader

Tretia metóda používa zavádzač GRUB na deaktiváciu SELinuxu. Pridajte na koniec riadku selinux=0

# cat /boot/grub/grub.conf default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz názov skrytého menu Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE) root (hd0,0) jadro /boot/vmlinuz -2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0 initrd /boot/initrd-2.6.18-92.el5PAE.img title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5) root (hd0,0) jadro /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb ticho selinux=0 initrd /boot/initrd-2.6.18-92.el5.img

Metóda 4: Zakázať SELinux len pre určité služby - HTTP/Apache

Ak nepotrebujete deaktivovať SELinux úplne, ale iba pre určité služby, máte túto možnosť. Napríklad deaktivujme SELinux pre HTTP/Apache zmenou hodnoty premennej httpd_disable_trans v súbore /etc/selinux/targeted/booleans.

# grep httpd /etc/selinux/targeted/booleans httpd_builtin_scripting=1 httpd_disable_trans=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_ssi_exec=1 httpd_tty_comm=0 httpd_unified=1 Nastavte premennú aj pomocou príkazu setsebool. Potom reštartujte httpd, aby sa zmeny prejavili.

# setsebool httpd_disable_trans 1# reštart služby httpd

Ahojte všetci, povedzme si niečo o SELinuxe, ale predtým malá definícia pre tých, ktorí ešte nepočuli, čo to je. SELinux je skratka pre angličtinu. slová Security-Enhanced Linux, čo znamená Linux s vylepšeným zabezpečením. Inými slovami, ide o implementáciu systému kontroly núteného vstupu, ktorý je schopný fungovať paralelne s klasickým systémom selektívnej kontroly vstupu. Rozdiel je v tom, že v SELinuxe prostredníctvom určitých politík určuje prístupové práva samotný systém, naopak selektívny systém riadenia prístupu oddeľuje procesný prístup k zdrojom na základe používateľských práv, pre jednoduché pochopenie sú to práva rwx na troch úrovniach – vlastník , skupina vlastníkov a ďalší používatelia.
Po malom popise sa skúsme pozrieť na niektoré príkazy a možnosti SELinuxu. Naše príklady budú predvedené na operačnej sále Linuxový systém CentOS 6. Azda prvé a pravdepodobne najobľúbenejšie sú príkazy na kontrolu stavu SELinuxu.

/usr/sbin/getenforce

/usr/sbin/sostatus

Návratové hodnoty pre príkaz getenforce
Presadzovanie– označuje, že SELinux je aktivovaný a pravidlá politiky sú presadzované;
Povoľný– označuje, že SELinux je aktivovaný, ale pravidlá politiky sa nevynucujú a používajú sa iba pravidlá DAC;
Zakázané– označuje, že SELinux je vypnutý.

Návratové hodnoty pre príkaz sestatus
Tento príkaz vráti okrem stavu SELinux aj použitú politiku SELinux, napríklad:

$ /usr/sbin/sestatus Stav SELinux: povolené pripojenie SELinuxfs: /selinux Aktuálny režim: vynucovanie Režim z konfiguračného súboru: vynucovanie Verzia politiky: 23 Politika z konfiguračného súboru: cielené

Status SELinux: enabled – znamená, že SELinux je povolený;
Aktuálny režim: vynucovanie – znamená, že SELinux je povolený vo vynútenom režime;
Politika z konfiguračného súboru: cielená – označuje, že sa používa cielená politika SELinux.

Povolenie SELinuxu
Povoľte/zakážte SELinux v operačnom systéme v konfiguračnom súbore
/etc/selinux/config

# Tento súbor riadi stav SELinuxu v systéme. # SELINUX= môže nadobudnúť jednu z týchto troch hodnôt: # vynucovanie - bezpečnostná politika SELinux je vynútená. # permisívne - SELinux namiesto vynútenia vypíše varovania. # vypnuté - Nie je načítaná žiadna politika SELinux. SELINUX=disabled # SELINUXTYPE= môže nadobudnúť jednu z týchto dvoch hodnôt: # targeted - cielené procesy sú chránené, # mls - ochrana viacúrovňového zabezpečenia. SELINUXTYPE=cielené

Možnosť SELINUX=disabled znamená, že SELinux je vypnutý. Pred spustením SELinuxu musíte vykonať niekoľko manipulácií.
1. Skontrolujte inštaláciu balíkov SELinux

otáčky za minútu -qa | grep selinux rpm -q policycoreutils rpm -qa | riešenie problémov s grep

Tiež sa uistite, že sú nainštalované nasledujúce balíky: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. Balíčky policycoreutils-gui, setroubleshoot, selinux-policy-devel, A mcstrans voliteľné.
Chýbajúce balíky je možné nainštalovať pomocou príkazu (ako root)

Yum install package-name

2. Každý súbor súborového systému musí byť pred spustením označený kontextom SELinux. Do tohto bodu môže byť obmedzeným doménam odmietnutý prístup, čo môže viesť k nesprávnemu načítaniu operačného systému. Situáciu je možné napraviť nastavením voľby SELINUX=permissive v konfiguračnom súbore /etc/selinux/config.

3. Označenie súboru prebehne počas nasledujúceho reštartu systému. Štítky pre všetky súbory sa počas procesu nastavujú v kontexte SELinux. V poslednom riadku každý znak * predstavuje 1000 označených súborov. Trvanie procesu závisí od počtu súborov v systéme, ako aj od rýchlosti diskov.

*** Upozornenie -- Vyžaduje sa preznačenie cielenej politiky SELinux. *** Opätovné označenie môže trvať veľmi dlho v závislosti od veľkosti súboru *** systému a rýchlosti pevných diskov. ****

4. V prípade, že politika SELinuxu nie je vynútene priradená a práca prebieha v režime rozšírenia, potom sa zákazy zapíšu do protokolu ako akcie, ktoré by boli zakázané v nútenom režime. Uistite sa, že SELinux nezakazuje akcie počas posledného zavádzania systému, aby ste to urobili, spustite príkaz

Grep „SELinux bráni“ /var/log/messages

Výstup by mal byť prázdny, čo znamená, že je všetko v poriadku a SELinux akciu nezakazuje.
5. Keď ste si istí, že v protokoloch nie sú žiadne správy o zákazoch, nastavte parameter SELINUX pri vynucovaní (súbor /etc/selinux/config):

# Tento súbor riadi stav SELinuxu v systéme. # SELINUX= môže nadobudnúť jednu z týchto troch hodnôt: # vynucovanie - bezpečnostná politika SELinux je vynútená. # permisívne - SELinux namiesto vynútenia vypíše varovania. # vypnuté - Nie je načítaná žiadna politika SELinux. SELINUX=vynútenie # SELINUXTYPE= môže nadobudnúť jednu z týchto dvoch hodnôt: # targeted - cielené procesy sú chránené, # mls - ochrana viacúrovňového zabezpečenia. SELINUXTYPE=cielené

6. Po tomto operačný systém by sa malo reštartovať. Po reštarte musíte skontrolovať návratovú hodnotu Vynucovanie pomocou príkazu getenforce.

$ /usr/sbin/getenforce Presadzovanie

7. Ak chcete zobraziť mapovania medzi SELinuxom a systémovými užívateľmi, spustite príkaz

/usr/sbin/semanage login –l

Výstup príkazu by mal byť takýto:

Prihlasovacie meno Používateľ SELinux Rozsah MLS/MCS __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Existuje niekoľko funkcií, ktoré by sa tiež mali vziať do úvahy. Keď je SELinux zakázaný, užívateľom vytvorené súbory nie sú označené a v dôsledku toho môžu nastať problémy pri uvedení do stavu vynútenia. Súbory sa označia zmenou možnosti z vypnutého na tolerantný/vynucovací režim, čím sa zabráni problémom so zobrazovaním neoznačených súborov.

O SELinuxe na Habré sme už písali, avšak podrobných manuálov k tomuto systému veľa nevyšlo. Dnes vydávame práve takýto podrobný manuál o SELinuxe, počnúc informáciami o systéme a končiac flexibilnou konfiguráciou politík.
Aby sa z príspevku nestal len ťažko zrozumiteľný „hárok“, rozhodli sme sa návod rozdeliť na dve časti. Prvý bude hovoriť o samotnom systéme a niektorých jeho funkciách. Druhá je o nastavení politík. Teraz uverejňujeme prvú časť, druhá časť vyjde o niečo neskôr.

1. Úvod

SELinux (SELinux) je systém kontroly núteného prístupu implementovaný na úrovni jadra. Tento systém sa prvýkrát objavil vo štvrtej verzii CentOS a vo verziách 5 a 6 bola implementácia výrazne doplnená a vylepšená. Tieto vylepšenia umožnili SELinuxu stať sa univerzálnym systémom schopným efektívne riešiť množstvo súčasných problémov. Stojí za to pripomenúť, že ako prvý sa použije klasický unixový systém práv a kontrola prejde na SELinux iba vtedy, ak je táto počiatočná kontrola úspešná.

1.1 Niektoré súčasné problémy.

Aby sme pochopili praktickú hodnotu SELinuxu, pozrime sa na niekoľko príkladov, kedy štandardný systém kontroly prístupu nestačí. Ak je SELinux zakázaný, potom máte prístup len ku klasickému diskrečnému riadeniu prístupu, ktoré zahŕňa DAC (discretionary access control) alebo ACL (access control list). Teda hovoríme o o manipulácii s právami na zápis, čítanie a vykonávanie na úrovni používateľov a skupín používateľov, čo môže byť v niektorých prípadoch úplne nedostatočné. Napríklad:

- Administrátor nemôže plne kontrolovať akcie používateľa. Napríklad je úplne možné, že používateľ dá všetkým ostatným používateľom práva na čítanie ich vlastných citlivých súborov, ako sú kľúče SSH.

Procesy môžu zmeniť nastavenia zabezpečenia. Napríklad súbory obsahujúce poštu používateľa by mal byť čitateľný iba pre jedného konkrétneho používateľa, ale poštový klient môže zmeniť prístupové práva tak, aby boli tieto súbory čitateľné pre každého.

Procesy zdedia práva používateľa, ktorý ich spustil. Napríklad verzia infikovaná trójskymi koňmi prehliadač Firefox je schopný čítať SSH kľúče používateľa, hoci na to nemá dôvod.

V tradičnom modeli selektívneho riadenia prístupu (DAC) sú v podstate dobre implementované iba dve úrovne prístupu – používateľ a superužívateľ. Nie jednoduchá metóda, čo by umožnilo každému používateľovi mať požadované minimálne privilégiá.
Samozrejme, existuje veľa metód na obídenie týchto problémov v rámci klasického bezpečnostného modelu, ale žiadna z nich nie je univerzálna.

1.1.1 Základné pojmy používané v SELinux:

doména- zoznam akcií, ktoré môže proces vykonať. Typicky je doména definovaná ako minimálny možný súbor akcií, prostredníctvom ktorých môže proces fungovať. Týmto spôsobom, ak je proces zdiskreditovaný, útočník nebude môcť spôsobiť veľa škody.

Role- zoznam domén, ktoré je možné použiť. Ak určitá doména nie je v zozname domén pre rolu, akcie z tejto domény nemožno použiť.

Typ- súbor úkonov, ktoré sú prípustné vo vzťahu k predmetu. Typ sa líši od domény tým, že sa dá použiť na kanály, adresáre a súbory, zatiaľ čo doména sa aplikuje na procesy.

Bezpečnostný kontext- všetky atribúty SELinuxu - role, typy a domény.

1.2 Riešenie problémov tradičného bezpečnostného modelu.

SELinux sa oveľa prísnejšie riadi modelom minimálnych požadovaných práv pre každú službu, používateľa a program. Štandardne je nastavený „zakázaný režim“, kedy má každý prvok systému len tie práva, ktoré sú nevyhnutné pre jeho fungovanie. Ak sa používateľ, program alebo služba pokúsi zmeniť súbor alebo získať prístup k zdroju, ktorý nie je jednoznačne potrebný na jeho vyriešenie, potom mu bude jednoducho zamietnutý prístup a takýto pokus bude zaznamenaný.

SELinux je implementovaný na úrovni jadra, takže aplikačné aplikácie nemusia vedieť vôbec nič o verzii tohto systému kontroly núteného prístupu, vlastnostiach jeho fungovania atď. Ak je správne nakonfigurovaný, SELinux žiadnym spôsobom neovplyvní činnosť programy tretích strán a služieb. Aj keď, ak je aplikácia schopná zachytiť chybové správy z tohto systému riadenia prístupu, jednoduchosť používania aplikácie sa výrazne zvýši. Ak sa pokúsite o prístup k chránenému zdroju alebo súboru, SELinux odošle chybu z rodiny „prístup odmietnutý“ do hlavnej aplikácie. Ale len málo aplikácií používa návratové kódy systémových volaní získané zo SELinuxu.

Tu je niekoľko príkladov používania SELinuxu, ktoré ukazujú, ako môžete zlepšiť bezpečnosť celého vášho systému.

- Vytváranie a konfigurácia zoznamu programov, ktoré dokážu čítať ssh kľúče.

Zabránenie neoprávnenému prístupu k údajom prostredníctvom poštového klienta.

Konfigurácia prehliadača tak, aby mohol čítať iba súbory a priečinky potrebné na fungovanie v domovskom priečinku používateľa.

2. Prevádzkové režimy SELinux

SELinux má tri hlavné režimy prevádzky, pričom štandardne je nastavený režim vynútenia. Ide o pomerne prísny režim a v prípade potreby ho možno zmeniť na niečo pohodlnejšie pre koncového používateľa.

Presadzovanie: Predvolený režim. Keď je zvolený tento režim, všetky akcie, ktoré nejakým spôsobom porušujú aktuálnu bezpečnostnú politiku, budú zablokované a pokus o porušenie bude zaznamenaný do protokolu.

Povoľný: Pri použití tohto režimu sa do protokolu zaznamenajú informácie o všetkých akciách, ktoré porušujú aktuálnu bezpečnostnú politiku, ale samotné akcie nebudú blokované.

Zakázané: Úplné vypnutie systému kontroly núteného prístupu.

Aktuálny režim a ďalšie nastavenia SELinuxu môžete zobraziť (a v prípade potreby ich zmeniť) pomocou špeciálneho nástroja GUI dostupného v ponuke Správa (system-config-selinux). Ak ste zvyknutí pracovať v konzole, aktuálny stav si môžete pozrieť pomocou príkazu sestatus.

# sestatus Stav SELinux: zapnuté pripojenie SELinuxfs: /selinux Aktuálny režim: vynucovanie Režim z konfiguračného súboru: vynucovanie Verzia politiky: 21 Politika z konfiguračného súboru: cielené

Stav SELinuxu môžete zistiť aj pomocou príkazu getenforce.
Príkaz „setenforce“ vám umožňuje rýchlo prepínať medzi režimom Enforcement a Permissive, zmeny sa prejavia bez reštartu. Ak však povolíte alebo zakážete SELinux, vyžaduje sa reštart, pretože bezpečnostné štítky sa musia preinštalovať na súborový systém.
Ak chcete vybrať predvolený režim, ktorý sa použije pri každom spustení systému, nastavte hodnotu riadku "SELINUX=" v súbore /etc/selinux/config, pričom zadajte jeden z režimov - "vynútenie", "povolené" alebo " zdravotne postihnuté“. Napríklad: "SELINUX=permisívne".

3. Zásady SELinuxu

Ako už bolo spomenuté vyššie, SELinux štandardne funguje v režime vynútenia, keď sú akékoľvek iné než povolené akcie automaticky blokované, každý program, používateľ alebo služba má len tie privilégiá, ktoré potrebuje na fungovanie, ale nič viac. Ide o pomerne tvrdú politiku, ktorá má obe výhody – najvyššiu úroveň informačná bezpečnosť, a nevýhody - konfigurácia systému v tomto režime je spojená s veľkými mzdovými nákladmi pre správcov systému, navyše existuje vysoké riziko, že používatelia narazia na obmedzenia prístupu, ak budú chcieť systém využívať akýmkoľvek netriviálnym spôsobom. Tento prístup je prijateľný v podnikovom sektore, ale je neprijateľný na počítačoch koncových používateľov. Mnohí správcovia jednoducho deaktivujú SELinux na svojich pracovných staniciach, aby sa vyhli takýmto problémom.

Aby sa tomu zabránilo, pre kľúčové aplikácie a služby, ako napríklad httpd, Named, dhcpd, mysqld, sú definované vopred nakonfigurované cieľové politiky, ktoré neumožnia útočníkovi získať prístup k dôležitým údajom. Tie aplikácie, pre ktoré nie je definovaná politika, bežia v doméne unconfined_t a nie sú chránené SELinuxom. Správne zvolené cieľové politiky teda umožňujú dosiahnuť prijateľnú úroveň bezpečnosti bez vytvárania zbytočných problémov pre používateľa.

4. Kontrola prístupu v SELinuxe

SELinux poskytuje nasledujúce modely riadenia prístupu:

Type Enforcement (TE): Primárny mechanizmus kontroly prístupu používaný v cieľových politikách. Umožňuje podrobne spravovať povolenia na najnižšej úrovni. Najflexibilnejšia, ale aj pracovne najnáročnejšia pre systémový administrátor mechanizmus.

Role-Based Access Control (RBAC): V tomto modeli sú prístupové práva implementované ako roly. Rola je povolenie vykonávať určité akcie jedným alebo viacerými prvkami systému nad ostatnými časťami systému. RBAC je v podstate ďalším vývojom TE.

Viacúrovňová bezpečnosť (MLS): viacúrovňový bezpečnostný model, v ktorom majú všetky systémové objekty priradenú určitú úroveň prístupu. Povolenie alebo odmietnutie prístupu je určené iba vzťahom medzi týmito úrovňami.

Všetky procesy a súbory v rámci SELinux majú bezpečnostný kontext.
Pozrime sa na kontext v praxi pri bližšom pohľade domovskej stránke Webový server Apache sa nachádza na adrese /var/www/html/index.html

$ ls -Z /var/www/html/index.html -rw-r--r-- používateľské meno používateľské meno system_u:object_r:httpd_sys_content_t /var/www/html/index.html

Okrem štandardných oprávnení súborov môžeme vidieť kontext zabezpečenia SELinux: system_u: object_r: httpd_sys_content_t.

Kontext je založený na user:role:type:mls, ale polia user:role:type sú zobrazené, kým je pole mls skryté. Môžeme tiež vidieť cieľovú politiku, v tomto prípade httpd_sys_content_t.

Teraz sa pozrime na bezpečnostný kontext SELinux pre proces „httpd“ (webový server Apache):

$ps axZ | grep httpd system_u:system_r:httpd_t 3234 ? Ss 0:00 /usr/sbin/httpd

Ako vidíme, tento proces beží na doméne httpd_t.

Teraz sa pozrime na bezpečnostný kontext súboru v našom domovskom adresári:

$ ls -Z /home/username/myfile.txt -rw-r--r-- username username user_u:object_r:user_home_t /home/username/myfile.txt

Vidíme, že súbor je typu user_home_t, tento typ je štandardne priradený všetkým súborom v domovskom adresári.
Prístup je povolený iba medzi prvkami rovnakého typu, a preto webový server Apache dokáže ľahko prečítať súbor /var/www/html/index.html, ktorý je typu httpd_sys_content_t. Zároveň, keďže Apache beží na doméne httpd_t a nemá vyplnené polia userid:username, nemôže získať prístup k súboru home/username/myfile.txt, hoci tento súbor je čitateľný procesmi, ktoré nemajú cieľ definovaný.politika. Týmto spôsobom, ak je webový server Apache kompromitovaný, útočník nebude môcť pristupovať k súborom alebo spúšťať procesy, ktoré nie sú v doméne httpd_t.

5. Odstraňovanie problémov SELinux

Skôr či neskôr nastane situácia, keď budete čeliť situácii, keď vám SELinux odmietne prístup k niečomu. Existuje niekoľko hlavných dôvodov odmietnutia prístupu:

Nesprávne označený súbor.
- Proces beží v nesprávnom kontexte
- Chyba v politike. Proces vyžaduje prístup k súboru, ktorý nebol zohľadnený pri vytváraní politiky.
- Pokus o inváziu.

Prvé tri dôvody odmietnutia prístupu sú vyriešené pomerne jednoducho, pričom pri pokuse o narušenie zaznie alarm a používateľovi sa odošle príslušné upozornenie.
Ak chcete vyriešiť akýkoľvek problém, stačí sa pozrieť na protokol SELinux. Štandardne sa zapisuje auditovaným procesom do súboru /var/log/audit/audit.log. Ak tento proces nebeží, tak SELinux zaloguje do súboru /var/log/messages, v tom prípade sú všetky správy systému kontroly prístupu označené kľúčom AVC, čo umožňuje napríklad rýchle odfiltrovanie potrebných riadkov. pomocou príkazu grep.
IN najnovšie verzie distribúcie (od CentOS 5), nástroj s grafické rozhranie užívateľ, ktorý vám umožňuje zobraziť protokol SELinux v pohodlnej a užívateľsky príjemnej forme. Môžete ho zavolať z konzoly zadaním sealert -b. Pomôcka je súčasťou balíka na riešenie problémov. Ak X server nebeží, môžete vygenerovať prehľady čitateľné pre človeka pomocou nasledujúceho príkazu:

Sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.1 Zmena návestí kontextu zabezpečenia súborov.

Príkaz „chcon“ vám umožňuje zmeniť kontext SELinux súborov alebo adresárov presne rovnakým spôsobom, akým vám príkazy „chown“ a „chmod“ umožňujú zmeniť vlastníka alebo povolenia súboru v rámci štandardný systém Riadenie prístupu.

Pozrime sa na pár príkladov.
Predpokladajme, že webový server Apache je nainštalovaný v systéme a musíme zmeniť priečinok, v ktorom sú stránky uložené (štandardne je to /var/www/html/), povedzme, /html/ a vytvoriť index. html súbor v tomto adresári.
# mkdir /html # touch /html/index.html # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:default_t html

Vyššie vidíme, že adresár /html aj súbor /html/index.html v kontexte zabezpečenia sú typu default_t. To znamená, že ak spustíme Apache a pokúsime sa pracovať s týmto adresárom alebo súborom, SELinux nám odmietne prístup. A to bude úplne správne, pretože správny bezpečnostný kontext pre súbory interagujúce s Apache je httpd_sys_content_t.
Zmeňme kontext a skontrolujte, či je všetko vykonané správne:

# chcon -v --type=httpd_sys_content_t /html kontext /html zmenený na user_u:object_r:httpd_sys_content_t # chcon -v --type=httpd_sys_content_t /html/index.html kontext /html/index.html zmenený na user_u:object_r :httpd_sys_content_t # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:httpd_sys_content_t html
Nie je potrebné manuálne spracovávať každý súbor a každý adresár, môžete jednoducho použiť možnosť -R rekurzívneho prechodu cez adresár:

# chcon -Rv --type=httpd_sys_content_t /html

Takéto zmeny v kontexte zabezpečenia zostanú medzi reštartmi, ak sa však zmenia štítky systému súborov, zmeny sa stratia. Počas údržby a prevádzky to nie je nezvyčajné. Správnym riešením v takejto situácii by bolo (samozrejme po otestovaní) vytvorenie dodatočného pravidla a jeho spojenie s miestnymi miestnymi pravidlami. Preto bude mať vyššiu prioritu ako základné pravidlá.

Aby SELinux fungoval správne aj po zmene štítkov súborového systému, môžeme použiť oba nástroje na správu SELinuxu s rozhraním GUI a utilitu konzoly semanage:

Spravovať fcontext -a -t httpd_sys_content_t "/html(/.*)?"

Vo vyššie uvedenom príklade sme všetkým súborom umiestneným v adresári /html priradili kontext httpd_sys_content_t.

5.2 Obnovenie kontextu zabezpečenia SELinux.

Príkaz "restorecon" vám umožňuje zmeniť kontext zabezpečenia na ten, ktorý bol priradený predvolene.
Ako príklad opäť používame webový server Apache. Predpokladajme, že používateľ upravil kópiu súboru index.html vo svojom domovskom adresári a presunul ju (príkazom mv) do adresára, v ktorom sú uložené webové stránky (/var/www/html).

Upozorňujeme, že pri kopírovaní (príkaz cp) sa kontext zabezpečenia súboru zhoduje s kontextom cieľového adresára, zatiaľ čo pri presúvaní sa kontext zabezpečenia zhoduje so zdrojovým kontextom. Samozrejme, na zmenu bezpečnostného kontextu by sme mohli použiť príkaz chcon, ale keďže presunuté súbory sú teraz v adresári /var/www/html, môžeme jednoducho obnoviť kontextové nastavenia pre všetky súbory umiestnené v tomto adresári.

Aby sme obnovili kontext len ​​pre súbor index.html, môžeme použiť príkaz:

# restorecon -v /var/www/html/index.html

Ak chceme rekurzívne prejsť celý adresár a zmeniť kontext pre všetky súbory, ktoré obsahuje, použijeme nasledujúci príkaz:

# restorecon -Rv /var/www/html

5.3 Zmena štítkov pre celý súborový systém.

Niekedy je potrebné znova nastaviť bezpečnostné štítky na celom súborovom systéme. Najčastejšie sa táto operácia vykonáva pri opätovnom povolení SELinuxu po tom, čo bol systém nejaký čas vypnutý. Je to potrebné aj vtedy, ak zmeníme typ správy politík na striktné (v tomto prípade všetky procesy fungujú vo vlastných špeciálnych doménach; nikto nemôže pracovať v doméne unconfined_t).

Na automatické prerozdelenie systém súborov pri ďalšom reštarte zadajte nasledujúce príkazy:
# dotyk /.autorelabel # reboot
Niekedy automatické prerozdelenie nefunguje (najčastejšie v prípadoch, keď bola aktualizovaná distribučná súprava so zakázaným SELinuxom). V tomto prípade použite nasledujúci príkaz:

# genhomedircon # touch /.autorelabel # reboot

5.4 Poskytovanie prístupu k portom.

Často chceme, aby služby ako Apache mohli počúvať na neštandardných portoch a prijímať na nich prichádzajúce pripojenia. Základné politiky SELinux umožňujú prístup iba k preddefinovaným portom, ktoré sú pevne zakódované pre konkrétnu službu. Povedzme, že chceme, aby Apache počúval na porte 81. V tomto prípade musíme pridať pravidlo pomocou príkazu semanage:

# semanage port -a -t http_port_t -p tcp 81

Úplný zoznam portov, ku ktorým SELinux poskytuje prístup, si môžete pozrieť takto:

# semanage port -l

V ďalšej, druhej časti manuálu si ukážeme možnosť flexibilnej konfigurácie systémových politík.

Security-Enhanced Linux (SELinux) je funkčný mechanizmus v Linuxe, ktorý poskytuje podporu pre bezpečnostné politiky riadenia prístupu.

SELinux dokáže vytvárať pravidlá pre prístup k užívateľom alebo utilitám, čo umožňuje obmedziť niektoré prístupové možnosti utilít definovaním týchto schopností a ich správania vo forme pravidiel a OS využívajúci SELinux bude kontrolovať dodržiavanie týchto pravidiel. V tejto téme vám poviem, ako zakázať alebo povoliť SELinux na CentOS. Niektoré distribúcie majú štandardne povolený SELinux, čo môže spôsobiť nežiaduce správanie z ich strany, ak nerozumiete, ako SELinux funguje alebo ako ho nakonfigurovať.

Ak chcete zakázať SELinux, môžete použiť ktorúkoľvek zo 4 rôznych metód uvedených v tomto článku.

SELinux bude presadzovať bezpečnostné politiky vrátane povinných kontrol prístupu, ktoré sú definované v jadre Linuxu. Každý súbor a proces v systéme bude označený špecifickými skratkami, ktoré bude SELinux používať. Môžete použiť príkaz a zobraziť tieto skratky, ako je uvedené nižšie:

# ls -Z /etc/

Nie je úplný zoznam ktoré som citoval, u vás to môže byť iné.

1. metóda na zakázanie SELinux na CentOS. Dočasne.

Ak chcete dočasne vypnúť SELinux, musíte upraviť /selinux/enforce, ako je uvedené nižšie. Upozorňujeme, že táto možnosť už nebude prítomná po reštarte systému.

A tak sa pozrime, aký stav má SELinux na serveri:

# cat /selinux/enforce 1

Alebo môžete použiť:

# /usr/sbin/sestatus Stav SELinux: povolený Pripojenie SELinuxfs: /selinux Aktuálny režim: povolený Režim z konfiguračného súboru: vynucovanie Verzia politiky: 24 Politika z konfiguračného súboru: cielené

To znamená, že je zapnutý. Ak ho chcete vypnúť, použite nasledujúci príkaz:

# echo 0 > /selinux/enforce

A skontrolujeme to znova:

# cat /selinux/enforce 0

Možné možnosti pre setenforce sú:

  • 1 (povoliť).
  • 0 (zakázať).

Na deaktiváciu SELinux môžete použiť aj príkaz setenforce, ako je uvedené nižšie. Tu je príklad tohto príkazu:

#setenforce 0

Alebo uvediem iný prípad použitia:

# setenforce Povolenie

PS: Pre kontrolu je tu ďalší skvelý príkaz:

# getenforce Permisívne

2. metóda na zakázanie SELinux na CentOS. Raz a navždy!

Poďme skontrolovať stav SELinuxu na CentOS.

# cat /etc/selinux/config

Mám to zapnuté, chcem to vypnúť, potom na to musíte otvoriť konfiguráciu a napísať:

# vim /etc/selinux/config

Treba nájsť:

SELINUX=povolené

Nahradené:

Ako je znázornené na nasledujúcej snímke obrazovky:

Potom musíme reštartovať náš OS:

# reštartovať

3. spôsob. Vypnutie SELinuxu v samotnom zavádzači Grub.

Ak nemôžete nájsť /etc/selinux/config vo svojom systéme, môžete zakázať SELinux odoslaním parametra do zavádzača GRUB, ako je uvedené nižšie.

# cat /boot/grub/grub.conf

4. spôsob. Zakázanie iba konkrétnej služby v SELinux - HTTP/Apache

Ak nemáte záujem deaktivovať celý SELinux, môžete tiež deaktivovať SELinux len pre konkrétnu službu. Napríklad, ak chcete zakázať SELinux pre obsluhu HTTP/Apache, potom musíte zmeniť premennú httpd_disable_trans v súbore /etc/selinux/targeted/booleans.




Hore