Süsteemiadministraatori spikker SE-sLinux42 vastust olulistele küsimustele

Artikli tõlge koostati spetsiaalselt kursuse üliõpilastele "Administraator Linux».

Süsteemiadministraatori spikker SE-sLinux42 vastust olulistele küsimustele

Siit leiad vastused olulistele küsimustele elu, universumi ja kõige muu kohta. Linux täiustatud turvalisusega.

"Oluline tõde, et asjad ei ole alati nii, nagu nad paistavad, on üldteada..."

-Douglas Adams, Hitchhiker's Guide to the Galaxy

Ohutus. Suurenenud töökindlus. Kirjavahetus. poliitika. Neli Apokalüpsise ratsanikku süsadmin. Lisaks igapäevastele ülesannetele – monitooring, varundamine, juurutamine, seadistamine, uuendamine jne – vastutame ka oma süsteemide turvalisuse eest. Isegi need süsteemid, kus kolmandast osapoolest teenusepakkuja soovitab täiustatud turvalisuse keelata. See tundub nagu töö Ethan Hunt filmist "Mission: Impossible".

Selle dilemma ees otsustavad mõned süsteemiadministraatorid selle ette võtta sinine pill, sest nad arvavad, et ei saa kunagi vastust suurele küsimusele elu, universumi ja kõige muu kohta. Ja nagu me kõik teame, on see vastus 42.

Siin on The Hitchhiker's Guide to the Galaxy vaimus 42 vastust olulistele küsimustele juhtimise ja kasutamise kohta. SELinux teie süsteemides.

1. SELinux — on kohustuslik juurdepääsukontrollisüsteem, mis tähendab, et igal protsessil on silt. Igal failil, kataloogil ja süsteemiobjektil on samuti silt. Poliitikareeglid reguleerivad juurdepääsu sildistatud protsesside ja objektide vahel. Kernel jõustab neid reegleid.

2. Kaks kõige olulisemat mõistet on järgmised: Sildistamine — märgised (failid, protsessid, pordid jne) ja Tüübi jõustamine (mis isoleerib protsessid üksteisest tüüpide alusel).

3. Õige sildi formaat user:role:type:level (valikuline).

4. Mitmetasemelise turvalisuse tagamise eesmärk (Mitmetasandiline turvalisus – MLS) on hallata protsesse (domeene) nende poolt kasutatavate andmete turvalisuse taseme alusel. Näiteks ei saa salajane protsess lugeda ülisalajasti andmeid.

5. Mitme kategooria turvalisuse tagamine (Mitme kategooria turvalisus – MCS) kaitseb sarnaseid protsesse üksteise eest (nt virtuaalmasinad, OpenShifti mootorid, SE liivakastidLinux, konteinerid jne).

6. Kerneli parameetrid SE režiimide muutmiseksLinux laadimise ajal:

  • autorelabel=1 → käivitab süsteemi ümbermärgistamise
  • selinux=0 → tuum ei laadi SE infrastruktuuriLinux
  • enforcing=0 → laadimine lubavas režiimis

7. Kui teil on vaja kogu süsteem ümber sildistada:

# touch /.autorelabel
#reboot

Kui süsteemimärgistus sisaldab palju vigu, peate märkimise õnnestumiseks võib-olla käivitama lubava režiimi.

8. SE lubamise kontrollimiseksLinux: # getenforce

9. SE ajutiseks lubamiseks/keelamiseksLinux: # setenforce [1|0]

10. SE staatuse kontrollimineLinux: # sestatus

11. Konfiguratsioonifail: /etc/selinux/config

12. Kuidas SE töötabLinuxSiin on näide Apache veebiserveri märgistamisest:

  • Binaarne esitus: /usr/sbin/httpd→httpd_exec_t
  • Konfiguratsioonikataloog: /etc/httpd→httpd_config_t
  • Logifailide kataloog: /var/log/httpd → httpd_log_t
  • Sisukataloog: /var/www/html → httpd_sys_content_t
  • Käivitage skript: /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 töötab kontekstis httpd_t, saab suhelda märgistatud objektiga httpd_something_t.

13. Paljud käsud aktsepteerivad argumenti -Z konteksti vaatamiseks, loomiseks ja muutmiseks:

  • ls -Z
  • id -Z
  • ps -Z
  • netstat -Z
  • cp -Z
  • mkdir -Z

Kontekstid luuakse siis, kui failid luuakse nende emakataloogi konteksti alusel (mõnede eranditega). RPM-id võivad luua kontekste nagu installimise ajal.

14. SE vigadel on neli peamist põhjustLinux, mida on üksikasjalikumalt kirjeldatud allpool punktides 15–21:

  • Märgistamisega seotud probleemid
  • Millegi pärast, mida SELinux peab teadma
  • Viga SE poliitikas/rakendusesLinux
  • Teie teave võib olla ohus

15. Märgistamise probleem: kui teie failid on sees /srv/myweb on valesti märgitud, võidakse juurdepääs keelata. Siin on mõned viisid selle parandamiseks.

  • Kui teate silti:
    # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
  • Kui teate samaväärsete märgistega faili:
    # semanage fcontext -a -e /srv/myweb /var/www
  • Konteksti taastamine (mõlemal juhul):
    # restorecon -vR /srv/myweb

16. Märgistamise probleem: kui faili kopeerimise asemel teisaldate, säilitab fail oma esialgse konteksti. Selle probleemi lahendamiseks tehke järgmist.

  • Muutke kontekstikäsku sildiga:
    # chcon -t httpd_system_content_t /var/www/html/index.html
  • Muutke lingisildiga kontekstikäsku:
    # chcon --reference /var/www/html/ /var/www/html/index.html
  • Taasta kontekst (mõlemal juhul): # restorecon -vR /var/www/html/

17. kui SELinux vaja teada, et HTTPD kuulab porti 8585, ütle SE-leLinux:

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

18. SELinux vaja teada Boole'i ​​väärtused, mis võimaldavad teil SE-poliitika osi muutaLinux käitusajal ilma SE poliitika ümberkirjutamise tundmisetaLinuxNäiteks kui soovite, et httpd saadaks e-kirju, sisestage: # setsebool -P httpd_can_sendmail 1

19. SELinux vaja teada loogilised väärtused SE sätete lubamiseks/keelamiseksLinux:

  • Kõigi tõeväärtuste vaatamiseks toimige järgmiselt. # getsebool -a
  • Iga kirjelduse vaatamiseks toimige järgmiselt. # semanage boolean -l
  • Tõeväärtuse määramiseks toimige järgmiselt. # setsebool [_boolean_] [1|0]
  • Püsipaigalduse jaoks lisage -P. Näiteks: # setsebool httpd_enable_ftp_server 1 -P

20. SE poliitikad/rakendusedLinux võib sisaldada vigu, sealhulgas:

  • Ebatavalised kooditeed
  • Konfiguratsioonid
  • Stdouti ümbersuunamine
  • Faili deskriptor lekib
  • Käivitatav mälu
  • Halvasti ehitatud raamatukogud

Avatud piletid (ärge esitage Bugzillale aruannet; Bugzillal puudub SLA).

21. Teie teave võib olla ohuskui teil on piiratud domeenid, mis üritavad:

  • Laadige kerneli moodulid
  • Keela sunnitud režiim SELinux
  • Kirjuta etc_t/shadow_t
  • Muutke iptablesi reegleid

22. SE tööriistadLinux poliitikamoodulite väljatöötamiseks:

# yum -y install setroubleshoot setroubleshoot-server

Taaskäivitage või taaskäivitage auditd pärast paigaldamist.

23. Kasutage

journalctl

kõigi seotud logide loendi kuvamiseks setroubleshoot:

# journalctl -t setroubleshoot --since=14:20

24. Kasutage journalctl kõigi konkreetse SE-sildiga seotud logide loetlemiseksLinux. Näiteks:

# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0

25. Kui ilmneb SE vigaLinux kasutage logi setroubleshoot pakkudes mitmeid võimalikke lahendusi.
Näiteks alates 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. Metsandus: KaguLinux salvestab teavet paljudes kohtades:

  • / var / log / messages
  • /var/log/audit/audit.log
  • /var/lib/setroubleshoot/setroubleshoot_database.xml

27. Logimine: SE vigade leidmineLinux auditilogis:

# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today

28. SE-sõnumite leidmiseksLinux Juurdepääsuvektori vahemälu (AVC) konkreetse teenuse jaoks:

# ausearch -m avc -c httpd

29. Utiliit audit2allow kogub keelatud toimingute logidest teavet ja seejärel genereerib SE loapoliitika reeglidLinux. Näiteks:

  • Inimloetava kirjelduse loomiseks selle kohta, miks juurdepääs on keelatud, toimige järgmiselt. # audit2allow -w -a
  • Juurdepääsu keelamist lubava tüübi jõustamisreegli vaatamiseks tehke järgmist. # audit2allow -a
  • Kohandatud mooduli loomiseks tehke järgmist. # audit2allow -a -M mypolicy
  • Variant -M loob määratud nimega tüübi jõustamisfaili (.te) ja kompileerib reegli poliitikapaketiks (.pp): mypolicy.pp mypolicy.te
  • Kohandatud mooduli installimiseks tehke järgmist. # semodule -i mypolicy.pp

30. Eraldi protsessi (domeeni) konfigureerimiseks lubavas režiimis töötama: # semanage permissive -a httpd_t

31. Kui te ei soovi enam, et domeen oleks lubatav: # semanage permissive -d httpd_t

32. Kõigi lubatud domeenide keelamiseks tehke järgmist. # semodule -d permissivedomains

33. MLS SE poliitika lubamineLinux: # yum install selinux-policy-mls
в /etc/selinux/config:

SELINUX=lubav
SELINUXTYPE=mls

Veenduge, et SELinux töötab lubavas režiimis: # setenforce 0
Kasutage skripti fixfilestagamaks, et failid järgmisel taaskäivitamisel ümber märgitakse:

# fixfiles -F onboot # reboot

34. Looge kasutaja konkreetse MLS-i vahemikuga: # useradd -Z staff_u john

Kasutades käsku useradd, kaardista uus kasutaja olemasoleva SE kasutajagaLinux (sel juhul, staff_u).

35. SE kasutajate vahelise kirjavahetuse vaatamiseksLinux и Linux: # semanage login -l

36. Määrake kasutaja jaoks konkreetne vahemik: # semanage login --modify --range s2:c100 john

37. Kasutaja kodukataloogi sildi parandamiseks (vajadusel): # chcon -R -l s2:c100 /home/john

38. Praeguste kategooriate vaatamiseks: # chcat -L

39. Kategooriate muutmiseks või enda loomise alustamiseks muutke faili järgmiselt.

/etc/selinux/_<selinuxtype>_/setrans.conf

40. Konkreetses failis, rollis ja kasutaja kontekstis käsu või skripti käitamiseks tehke järgmist.

# runcon -t initrc_t -r system_r -u user_u yourcommandhere

  • -t faili kontekst
  • -r rolli kontekst
  • -u kasutaja kontekst

41. Konteinerid töötavad SE-ga keelatudLinux:

  • Podman: # podman run --security-opt label=disable …
  • Docker: # docker run --security-opt label=disable …

42. Kui teil on vaja anda konteinerile täielik juurdepääs süsteemile:

  • Podman: # podman run --privileged …
  • Docker: # docker run --privileged …

Ja nüüd sa juba tead vastust. Seega palun: ära paanitse ja lülita SE sisse.Linux.

Lingid:

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusväärne hostimine, VPS VDS-serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster