ProHoster > Blog > Administrácia > Cheat sheet SELinux pre systémových administrátorov: 42 odpovedí na dôležité otázky
Cheat sheet SELinux pre systémových administrátorov: 42 odpovedí na dôležité otázky
Preklad článku bol pripravený špeciálne pre študentov kurzu "Správca Linuxu".
Tu získate odpovede na dôležité otázky o živote, vesmíre a všetkom v Linuxe s vylepšeným zabezpečením.
„Dôležitá pravda, že veci nie sú vždy také, ako sa zdajú, je všeobecne známa...“
-Douglas Adams, Stopárov sprievodca po Galaxii
Bezpečnosť. Zvýšená spoľahlivosť. Korešpondencia. politika. Systémový správca štyroch jazdcov Apokalypsy. Okrem našich každodenných úloh - monitorovanie, zálohovanie, implementácia, konfigurácia, aktualizácia atď. - sme zodpovední aj za bezpečnosť našich systémov. Dokonca aj tie systémy, v ktorých poskytovateľ tretej strany odporúča, aby sme zakázali rozšírenú bezpečnosť. Je to ako práca Ethan Hunt z "Misia: Impossible."
Tvárou v tvár tejto dileme sa niektorí správcovia systému rozhodnú prijať modrá pilulka, pretože si myslia, že nikdy nepoznajú odpoveď na veľkú otázku života, vesmíru a tak ďalej. A ako všetci vieme, odpoveď je 42.
V duchu Stopárovho sprievodcu po galaxii je tu 42 odpovedí na dôležité otázky o ovládaní a používaní. SELinux na vašich systémoch.
1. SELinux je systém kontroly núteného prístupu, čo znamená, že každý proces má označenie. Každý súbor, adresár a systémový objekt má tiež štítky. Pravidlá politiky riadia prístup medzi označenými procesmi a objektmi. Jadro presadzuje tieto pravidlá.
2. Dva najdôležitejšie pojmy sú: označovanie — označenia (súbory, procesy, porty atď.) a Typ presadzovania (ktorý izoluje procesy od seba na základe typov).
4. Účelom poskytovania viacúrovňového zabezpečenia (Viacúrovňová bezpečnosť – MLS) je riadiť procesy (domény) na základe úrovne zabezpečenia údajov, ktoré budú používať. Napríklad tajný proces nemôže čítať prísne tajné údaje.
5. Zabezpečenie bezpečnosti viacerých kategórií (Bezpečnosť viacerých kategórií – MCS) chráni podobné procesy pred sebou navzájom (napríklad virtuálne stroje, motory OpenShift, sandboxy SELinux, kontajnery atď.).
6. Možnosti jadra na zmenu režimov SELinux pri zavádzaní:
autorelabel=1 → spôsobí, že systém spustí nové označenie
selinux=0 → jadro nenačítava infraštruktúru SELinux
enforcing=0 → načítanie v permisívnom režime
7. Ak potrebujete zmeniť označenie celého systému:
# touch /.autorelabel
#reboot
Ak označovanie systému obsahuje veľký počet chýb, možno budete musieť zaviesť systém v tolerantnom režime, aby bolo označovanie úspešné.
8. Ak chcete skontrolovať, či je povolený SELinux: # getenforce
9. Ak chcete dočasne zapnúť/vypnúť SELinux: # setenforce [1|0]
10. Kontrola stavu SELinux: # sestatus
11. Konfiguračný súbor: /etc/selinux/config
12. Ako funguje SELinux? Tu je príklad označenia pre webový server Apache:
Binárne zobrazenie: /usr/sbin/httpd→httpd_exec_t
Konfiguračný adresár: /etc/httpd→httpd_config_t
Adresár súboru denníka: /var/log/httpd → httpd_log_t
Proces beží v kontexte httpd_t, môže interagovať s označeným objektom httpd_something_t.
13. Mnoho príkazov akceptuje argument -Z zobraziť, vytvoriť a zmeniť kontext:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Kontexty sa vytvárajú pri vytváraní súborov na základe kontextu ich nadradeného adresára (s niektorými výnimkami). RPM môžu vytvárať kontexty ako počas inštalácie.
14. Existujú štyri hlavné príčiny chýb SELinux, ktoré sú podrobnejšie popísané v bodoch 15-21 nižšie:
Problémy s označovaním
Kvôli niečomu, čo SELinux potrebuje vedieť
Chyba v politike/aplikácii SELinux
Vaše informácie môžu byť ohrozené
15.Problém s označovaním: ak sú vaše súbory v /srv/myweb sú označené nesprávne, prístup môže byť odmietnutý. Tu je niekoľko spôsobov, ako to vyriešiť:
Ak poznáte označenie: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Ak poznáte súbor s ekvivalentnými označeniami: # semanage fcontext -a -e /srv/myweb /var/www
Obnovenie kontextu (pre oba prípady): # restorecon -vR /srv/myweb
16.Problém s označovaním: ak súbor presuniete namiesto skopírovania, súbor si zachová svoj pôvodný kontext. Ak chcete vyriešiť tento problém:
Zmeňte kontextový príkaz s označením: # chcon -t httpd_system_content_t /var/www/html/index.html
Zmeňte kontextový príkaz s označením odkazu: # chcon --reference /var/www/html/ /var/www/html/index.html
Obnovte kontext (pre oba prípady): # restorecon -vR /var/www/html/
17. Ak SELinux musíte vedieťže HTTPD počúva na porte 8585, povedzte SELinuxu:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux musíte vedieť Booleovské hodnoty, ktoré umožňujú meniť časti politiky SELinux za behu bez znalosti prepísania politiky SELinux. Napríklad, ak chcete, aby httpd odoslal e-mail, zadajte: # setsebool -P httpd_can_sendmail 1
19.SELinux musíte vedieť logické hodnoty na zapnutie/vypnutie nastavení SELinuxu:
Ak chcete zobraziť všetky boolovské hodnoty: # getsebool -a
Ak chcete zobraziť popis každého: # semanage boolean -l
Ak chcete nastaviť boolovskú hodnotu: # setsebool [_boolean_] [1|0]
25. Ak sa vyskytne chyba SELinux, použite protokol setroubleshoot ponúka niekoľko možných riešení.
Napríklad od journalctl:
Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.
***** Plugin restorecon (99.5 confidence) suggests ************************
If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html
26. Protokolovanie: SELinux zaznamenáva informácie na mnohých miestach: