Artikli tĂ”lge on ette valmistatud spetsiaalselt kursuse ĂŒliĂ”pilastele .

Siit leiate vastused olulistele kĂŒsimustele elu, universumi ja Linuxi kĂ”igi asjade kohta, millel on paranenud turvalisus.
âOluline tĂ”de, et asjad ei ole alati sellised, nagu nad nĂ€ivad, on ĂŒldiselt tuntud...â
âDouglas Adams, Galaktiline reisijate juht
Turvalisus. UsaldusvÀÀrsuse suurendamine. Vastavus. Poliitika. SĂŒsteemi administraatori neli apokalĂŒpsise ratsanikku. Lisaks meie igapĂ€evastele ĂŒlesannetele â jĂ€lgimisele, varundamisele, juurutamisele, seadistamisele, uuendamisele jne â vastutame ka meie sĂŒsteemide turvalisuse eest. Isegi nende sĂŒsteemide, kus kolmanda osapoole teenusepakkuja soovitab meil ranget turvalisust keelata. See on nagu töö filmist âMissegatakse tĂ€ideâ.
Kuna silmitsi seistes selle dilemmaga otsustavad mĂ”ned sĂŒsteemi administraatorid vĂ”tta , sest nad arvavad, et nad ei saa kunagi teada elu, universumi ja kĂ”igi asjade suure kĂŒsimuse vastust. Ja nagu me kĂ”ik teame, on see vastus 42.
âGalaktilise reisijate juhinaâ on siin 42 vastust olulistele kĂŒsimustele haldamise ja kasutamise kohta teie sĂŒsteemides.
1. SELinux on sundjuhtimise sĂŒsteem, mis tĂ€hendab, et igal protsessil on silt (mĂ€rk). Igal failil, kataloogil ja sĂŒsteemiobjektil on samuti etiketid. Poliitikareeglid reguleerivad juurdepÀÀsu mĂ€rgistatud protsesside ja objektide vahel. SĂŒdamik tagab nende reeglite jĂ€rgimise.
2. Kahe kĂ”ige olulisema kontseptsiooni hulka kuuluvad: MĂ€rgistamine â etiketid (failid, protsessid, pordid jne) ja TĂŒĂŒpide jĂ”ustamine (mis isoleerib protsessid ĂŒksteisest tĂŒĂŒpide alusel).
3. Etiketi Ă”ige formaat kasutaja:roll:tyĂŒp:tase (valikuline).
4. Mitme taseme turvalisuse tagamise eesmĂ€rk (Multi-Level Security â MLS) on protsesside (valdkondade) juhtimine andmete turvalisuse taseme alusel, mida nad kasutavad. NĂ€iteks ei saa salajane protsess lugeda ĂŒleliia salajasi andmeid.
5. Mitmekategorilise turvalisuse tagamine (Multi-Category Security â MCS) kaitseb sarnaseid protsesse ĂŒksteise eest (nĂ€iteks virtuaalmasinad, OpenShifti mehhanismid, SELinuxi liivakastid, konteinerid jne).
6. SĂŒdamikuvalikud, et muuta SELinuxi reĆŸiime kĂ€ivitamisel:
autorelabel=1â sunnib sĂŒsteemi kĂ€ivitama ĂŒmbermĂ€rgistamiseselinux=0â sĂŒdamik ei laadita SELinuxi infrastruktuurienforcing=0â laadimine lubavas reĆŸiimis
7. Kui peate kogu sĂŒsteemi ĂŒmbermĂ€rgistama:
# touch /.autorelabel
#reboot
Kui sĂŒsteemi mĂ€rgistamisel esineb palju vigu, vĂ”ib teil olla vajalik laadida lubavas reĆŸiimis, et ĂŒmbermĂ€rgistus Ă”nnestuks.
8. Kuidas kontrollida, kas SELinux on sisse lĂŒlitatud: # getenforce
9. Kuidas ajutiselt sisse/vĂ€lja lĂŒlitada SELinux: # setenforce [1|0]
10. Kontrolli SELinuxi staatust: # sestatus
11. Konfiguratsioonifail: /etc/selinux/config
12. Kuidas SELinux töötab? Siin on nÀide mÀrkest veebiserverile Apache:
- Binaarne esitus:
/usr/sbin/httpdâhttpd_exec_t - Konfiguratsioonikataloog:
/etc/httpdâhttpd_config_t - Logifailide kataloog:
/var/log/httpd â httpd_log_t - Sisu kataloog:
/var/www/html â httpd_sys_content_t - KĂ€ivituskript:
/usr/lib/systemd/system/httpd.service â httpd_unit_file_d - Protsess:
/usr/sbin/httpd -DFOREGROUND â httpd_t - Pordid:
80/tcp, 443/tcp â httpd_t, http_port_t
Protsess, mis on kÀivitatud kontekstis httpd_t, vÔib suhelda objekti mÀrgiga httpd_something_t.
13. Paljud kÀsud aktsepteerivad argumenti -Z konteksti vaatamiseks, loomiseks ja muutmiseks:
ls -Zid -Zps -Znetstat -Zcp -Zmkdir -Z
Kontekstid mÀÀratakse, kui failid luuakse oma vanemkatalooge konteksti alusel (mÔningate eranditega). RPM-id saavad kontekste mÀÀrata paigaldamise kÀigus.
14. SELinuxi vigade nelja peamise pĂ”hjuse kohta on ĂŒksikasjalikum info punktides 15-21 allpool:
- MĂ€rgistamisprobleemid
- Kuna midagi, mida SELinux peab teadma
- Viga SELinuxi poliitikas/rakenduses
- Teie teave vÔib olla ohus
15. MÀrgistamisprobleem: kui teie failid on /srv/myweb vale mÀrgistusega, vÔib juurdepÀÀs olla keelatud. Siin on mÔned viisid, kuidas seda parandada:
- Kui teate mÀrgistust:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?' - Kui teate faili, millel on vÔrdsed mÀrgised:
# semanage fcontext -a -e /srv/myweb /var/www - Konteksti taastamine (mÔlemal juhul):
# restorecon -vR /srv/myweb
16. MÀrgistamisprobleem: kui liigute faili, mitte ei kopeeri seda, sÀilitab fail oma algse konteksti. Selle probleemi lahendamiseks:
- Muutke konteksti kÀsku mÀrgiga:
# chcon -t httpd_system_content_t /var/www/html/index.html - Muutke konteksti kÀsku viidatud mÀrgiga:
# chcon --reference /var/www/html/ /var/www/html/index.html - Taasta kontekst (mÔlemal juhul):
# restorecon -vR /var/www/html/
17. Kui SELinux peab teadma, et HTTPD kuulab porti 8585, teavitage SELinuxi:
# semanage port -a -t http_port_t -p tcp 8585
18. SELinux peab teadma loogilised vÀÀrtused, mis vĂ”imaldavad muuta osa SELinuxi poliitikast töötamise ajal ilma SELinuxi poliitika ĂŒmberkirjutamise teadmisteta. NĂ€iteks, kui soovite, et httpd saadaks e-kirju, sisestage: # setsebool -P httpd_can_sendmail 1
19. SELinux peab teadma logilised vÀÀrtused, mis lubavad/keelavad SELinuxi seadeid:
- Kuidas nÀha kÔiki loogilisi vÀÀrtusi:
# getsebool -a - Kuidas nĂ€ha igaĂŒhe kirjeldust:
# semanage boolean -l - Kuidas seada loogiline vÀÀrtus:
# setsebool [_boolean_] [1|0] - PĂŒsiva seadistuse jaoks lisage
-P. NĂ€iteks:# setsebool httpd_enable_ftp_server 1 -P
20. SELinuxi poliitikad/rakendused vÔivad sisaldada vigu, sealhulgas:
- Ebatavalised kooditeed
- Konfiguratsioonid
- stdout'i suunamine
- Failideskrijatsiooni lekked
- TÀidetav mÀlu
- Halvasti koostatud raamatukogud
Avage tikett (Ă€rge saatke aruannet Bugzilasse; Bugzilas ei ole SLA-d).
21. Teie teave vĂ”ib olla ohus, kui teil on piiratud domeene, mis pĂŒĂŒavad:
- Laadida tuumamooduleid
- Keenid enforced reĆŸiimi SELinuxi
- Kirjutada
etc_t/shadow_t - Muuda iptables reegleid
22. SELInuxi poliitikamoodulite arendustooted:
# yum -y install setroubleshoot setroubleshoot-server
TaaskÀivitage vÔi kÀivitage uuesti auditd pÀrast installimist.
23. Kasutage
journalctl kÔigi logide loetlemiseks, mis on seotud setroubleshoot:
# journalctl -t setroubleshoot --since=14:20
24. Kasutage journalctl kÔigi logide loetlemiseks, mis on seotud konkreetse SELinuxi sildiga. NÀiteks:
# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
25. SELinuxi vea korral kasutage logi setroubleshoot mitmete vÔimalike lahenduste esitamiseks.
NĂ€iteks, journalctl:
14. juuni 19:41:07 web1 setroubleshoot: SELinux takistab httpd-l gettari juurdepÀÀsu failile /var/www/html/index.html. TÀieliku sÔnumi saamiseks kÀivitage: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux takistab httpd-l gettari juurdepÀÀsu failile /var/www/html/index.html.
***** Plugin restorecon (99.5 usaldusvÀÀrsus) soovitab ************************
Kui soovite siluda sildistust,
/var/www/html/index.html vaikimisi silt peaks olema httpd_syscontent_t.
Siis saate restorecon'i kÀivitada.
Tehke
# /sbin/restorecon -v /var/www/html/index.html26. Logimine: SELinux logib teavet paljudes kohtades:
- /var/log/messages
- /var/log/audit/audit.log
- /var/lib/setroubleshoot/setroubleshoot_database.xml
27. Logimine: Otsige SELinuxi vigu auditilogis:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. SELinuxi Access Vector Cachi (AVC) sÔnumite leidmiseks teatud teenuste jaoks:
# ausearch -m avc -c httpd
29. Utiliit audit2allow kogub teavet keelatud toimingute logidest ja genereerib seejÀrel SELinuxi loa poliitikareegleid. NÀiteks:
- JuurdepÀÀsu keelamise pÔhjuse arusaadava kirjelduse loomiseks:
# audit2allow -w -a - Kohustusliku tĂŒĂŒbi reegli vaatamiseks, mis lubab keelatud juurdepÀÀsu:
# audit2allow -a - Kohandatud mooduli loomiseks:
# audit2allow -a -M mypolicy - Valik
-Mloob mÀÀratud nimega kohustusliku tĂŒĂŒbi (.te) faili ja kompileerib reegli poliitikapaketi (.pp) sisse:mypolicy.pp mypolicy.te - Kohandatud mooduli installimiseks:
# semodule -i mypolicy.pp
30. Kohandatud protsessi (domeeni) seadistamiseks töötamiseks lubava reĆŸiimi korral: # semanage permissive -a httpd_t
31. Kui te ei soovi, et domeen oleks enam lubav: # semanage permissive -d httpd_t
32. KÔigi lubavate domeenide keelamine: # semodule -d permissivedomains
33. SELInuxi MLS poliitika lubamine: # yum install selinux-policy-mls
ka /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Veenduge, et SELinux töötaks lubavas reĆŸiimis: # setenforce 0
Kasutage skripti fixfiles, et tagada, et failid mÀrgistatakse uuesti jÀrgmise taaskÀivitamise ajal:
# fixfiles -F onboot # reboot
34. Looge kasutaja kindla MLS vahemikuga: # useradd -Z staff_u john
Kasutades kÀsku useradd, seadke uus kasutaja olemasoleva SELinux kasutajaga (antud juhul, staff_u).
35. Kuidas vaadata vastavust SELinuxi ja Linuxi kasutajate vahel: # semanage login -l
36. MÀÀrake kasutajale kindel vahemik: # semanage login --modify --range s2:c100 john
37. Kuidas parandada kasutaja kodukaustas silti (kui vajalik): # chcon -R -l s2:c100 /home/john
38. Praeguste kategooriate vaatamiseks: # chcat -L
39. Kategooriate muutmiseks vÔi enda omadest loomiseks muutke faili jÀrgmiselt:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. KÀitage kÀsku vÔi skripti kindlas failis, rollis ja kasutajakontekstis:
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-tfaili kontekst-rrolli kontekst-ukasutaja kontekst
41. Konteinerid, mis töötavad keelatud SELinuxiga:
- Podman:
# podman run --security-opt label=disable ⊠- Docker:
# docker run --security-opt label=disable âŠ
42. Kui peate andma konteinerile tĂ€isjuurdepÀÀsu sĂŒsteemile:
- Podman:
# podman run --privileged ⊠- Docker:
# docker run --privileged âŠ
Ja nĂŒĂŒd teate juba vastust. SeetĂ”ttu, palun: Ă€rge paanitsege ja aktiveerige SELinux.
Lingid:
- by
- autor Dan Walsh
- by
- by
Allikas: habr.com
