Bileog cheat SELinux do riarthóirí córais: 42 freagra ar cheisteanna tábhachtacha

Ullmhaíodh aistriúchán an ailt go sonrach do mhic léinn an chúrsa "Riarthóir Linux".

Bileog cheat SELinux do riarthóirí córais: 42 freagra ar cheisteanna tábhachtacha

Anseo gheobhaidh tú freagraí ar cheisteanna tábhachtacha faoin saol, na cruinne agus gach rud i Linux le slándáil feabhsaithe.

“Is í an fhírinne thábhachtach nach mbíonn rudaí i gcónaí mar a fheictear dóibh ná eolas coiteann...”

-Douglas Adams, Treoir an Hitchhiker ar an Réaltra

Sábháilteacht. Iontaofacht mhéadaithe. Comhfhreagras. Beartas. Ceithre marcach an Apocalypse sysadmin. Chomh maith lenár dtascanna laethúla - monatóireacht, cúltaca, cur i bhfeidhm, cumraíocht, nuashonrú, etc. - táimid freagrach freisin as slándáil ár gcóras. Fiú na córais sin ina molann an soláthraí tríú páirtí go ndéanaimid slándáil fheabhsaithe a dhíchumasú. Mothaíonn sé cosúil le hobair Ethan Hunt ó “Misean: Dodhéanta.”

Ag tabhairt aghaidh ar an aincheist seo, cinneann roinnt riarthóirí córais a ghlacadh piolla gorm, mar go gceapann siad nach mbeidh a fhios acu go deo an freagra ar cheist mhór na beatha, na cruinne agus go léir. Agus mar is eol dúinn go léir, is é 42 an freagra sin.

I spiorad The Hitchhiker's Guide to the Galaxy, seo 42 freagra ar cheisteanna tábhachtacha maidir le rialú agus úsáid. SELinux ar do chórais.

1. Is córas rialaithe rochtana éigean é SELinux, rud a chiallaíonn go bhfuil lipéad ag gach próiseas. Tá lipéid ar gach comhad, eolaire agus réad córais. Rialaíonn rialacha beartais rochtain idir próisis chlibeáilte agus réada. Cuireann an eithne na rialacha seo i bhfeidhm.

2. Is iad an dá choincheap is tábhachtaí: lipéadú — marcanna (comhaid, próisis, poirt, etc.) agus Forfheidhmiú cineáil (a leithlisíonn próisis óna chéile bunaithe ar chineálacha).

3. Formáid cheart lipéad user:role:type:level (roghnach).

4. An cuspóir atá le slándáil illeibhéil a sholáthar (Slándáil Illeibhéil - MLS(c) próisis (fearainn) a bhainistiú bunaithe ar leibhéal slándála na sonraí a úsáidfidh siad. Mar shampla, ní féidir le próiseas rúnda sonraí ardrúnda a léamh.

5. Slándáil ilchatagóir a chinntiú (Slándáil Ilchatagóir - MCS) a chosnaíonn próisis chomhchosúla óna chéile (mar shampla, meaisíní fíorúla, innill OpenShift, boscaí gainimh SELinux, coimeádáin, etc.).

6. Roghanna eithne chun modhanna SELinux a athrú ag an tosaithe:

  • autorelabel=1 → is cúis leis an gcóras athlipéadú a rith
  • selinux=0 → ní lódálann an eithne bonneagar SELinux
  • enforcing=0 → luchtú i mód ceadaitheach

7. Más gá duit an córas iomlán a athlipéadú:

# touch /.autorelabel
#reboot

Má tá líon mór earráidí i marcáil an chórais, seans go mbeidh ort tosú sa mhodh ceadaitheach le go n-éireoidh leis an athmharcáil.

8. Chun seiceáil an bhfuil SELinux cumasaithe: # getenforce

9. Chun SELinux a chumasú/a dhíchumasú go sealadach: # setenforce [1|0]

10. Stádas SELinux á sheiceáil: # sestatus

11. Comhad cumraíochta: /etc/selinux/config

12. Conas a oibríonn SELinux? Seo sampla marcáil don fhreastalaí gréasáin Apache:

  • Léiriú dénártha: /usr/sbin/httpd→httpd_exec_t
  • Eolaire cumraíochta: /etc/httpd→httpd_config_t
  • Comhadlann logála: /var/log/httpd → httpd_log_t
  • Eolaire ábhar: /var/www/html → httpd_sys_content_t
  • Script seolta: /usr/lib/systemd/system/httpd.service → httpd_unit_file_d
  • Próiseas: /usr/sbin/httpd -DFOREGROUND → httpd_t
  • Calafoirt: 80/tcp, 443/tcp → httpd_t, http_port_t

Próiseas ag rith i gcomhthéacs httpd_t, in ann idirghníomhú le réad lipéadaithe httpd_something_t.

13. Glacann go leor orduithe le argóint -Z chun comhthéacs a fheiceáil, a chruthú agus a athrú:

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

Bunaítear comhthéacsanna nuair a chruthaítear comhaid bunaithe ar chomhthéacs a eolaire tuismitheora (le roinnt eisceachtaí). Is féidir le RPManna comhthéacsanna a bhunú amhail le linn na suiteála.

14. Tá ceithre phríomhchúis le hearráidí SELinux, a bhfuil cur síos níos mine orthu i bpointí 15-21 thíos:

  • Saincheisteanna lipéadaithe
  • Mar gheall ar rud éigin nach mór do SELinux a bheith ar an eolas
  • Earráid i bpolasaí/iarratas SELinux
  • Seans go bhfuil do chuid faisnéise i mbaol

15. Fadhb lipéadaithe: má tá do chomhaid i /srv/myweb marcáilte go mícheart, féadfar rochtain a dhiúltú. Seo roinnt bealaí chun é seo a shocrú:

  • Má tá an lipéad ar eolas agat:
    # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
  • Má tá comhad ar eolas agat le marcálacha coibhéiseacha:
    # semanage fcontext -a -e /srv/myweb /var/www
  • An comhthéacs a athbhunú (don dá chás):
    # restorecon -vR /srv/myweb

16. Fadhb lipéadaithe: má bhogann tú an comhad in ionad é a chóipeáil, coinneoidh an comhad a chomhthéacs bunaidh. Chun an fhadhb seo a réiteach:

  • Athraigh an t-ordú comhthéacs leis an lipéad:
    # chcon -t httpd_system_content_t /var/www/html/index.html
  • Athraigh an t-ordú comhthéacs leis an lipéad naisc:
    # chcon --reference /var/www/html/ /var/www/html/index.html
  • Athchóirigh an comhthéacs (don dá chás): # restorecon -vR /var/www/html/

17. Más rud é SELinux ní mór duit fios a bheith agatgo bhfuil HTTPD ag éisteacht ar phort 8585, inis do SELinux:

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

18. SELinux ní mór duit fios a bheith agat Luachanna Boole a cheadaíonn codanna de bheartas SELinux a athrú ag am rite gan eolas ar bheartas SELinux atá á fhorscríobh. Mar shampla, más mian leat httpd ríomhphost a sheoladh, cuir isteach: # setsebool -P httpd_can_sendmail 1

19. SELinux ní mór duit fios a bheith agat luachanna loighciúla chun socruithe SELinux a chumasú/a dhíchumasú:

  • Chun gach luach Boole a fheiceáil: # getsebool -a
  • Chun cur síos ar gach ceann acu a fheiceáil: # semanage boolean -l
  • Chun luach Boole a shocrú: # setsebool [_boolean_] [1|0]
  • Le haghaidh suiteáil bhuan, cuir -P. Mar shampla: # setsebool httpd_enable_ftp_server 1 -P

20. D’fhéadfadh earráidí a bheith i mbeartais/feidhmchláir SELinux, lena n-áirítear:

  • Cosáin cód neamhghnách
  • Cumraíochtaí
  • Stdout á atreorú
  • Tá an tuairisceoir comhaid ag sceitheadh
  • Cuimhne inrite
  • Leabharlanna drochthógtha

Ticéid oscailte (ná cuir tuairisc isteach chuig Bugzilla; níl aon CLS ag Bugzilla).

21. Seans go bhfuil do chuid faisnéise i mbaolmá tá fearainn srianta agat ag iarraidh:

  • Íosluchtaigh modúil eithne
  • Díchumasaigh mód SELinux forfheidhmithe
  • Scríobh chuig etc_t/shadow_t
  • Athraigh rialacha iptables

22. Uirlisí SELinux chun modúil bheartais a fhorbairt:

# yum -y install setroubleshoot setroubleshoot-server

Atosaigh nó atosú auditd tar éis a shuiteáil.

23. Bain úsáid as

journalctl

chun liosta de na logaí a bhaineann leis a thaispeáint setroubleshoot:

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

24. Bain úsáid as journalctl chun gach loga a bhaineann le clib SELinux ar leith a liostú. Mar shampla:

# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0

25. Má tharlaíonn earráid SELinux, bain úsáid as an logáil setroubleshoot ag tairiscint roinnt réitigh fhéideartha.
Mar shampla, ó 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. Logáil: Taifeadann SELinux faisnéis i go leor áiteanna:

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

27. Logáil: ag cuardach earráidí SELinux sa loga iniúchta:

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

28. Chun teachtaireachtaí SELinux Access Vector Cache (AVC) a aimsiú le haghaidh seirbhís ar leith:

# ausearch -m avc -c httpd

29. Fóntais audit2allow bailíonn sé faisnéis ó logaí oibríochtaí toirmiscthe agus ansin gineann sé rialacha beartais ceada SELinux. Mar shampla:

  • Chun cur síos inléite ag an duine a chruthú ar an bhfáth a ndiúltaítear rochtain: # audit2allow -w -a
  • Chun féachaint ar riail cineáil forfheidhmithe a cheadaíonn rochtain dhiúltaithe: # audit2allow -a
  • Chun modúl saincheaptha a chruthú: # audit2allow -a -M mypolicy
  • Rogha -M cruthaíonn sé cineál comhaid forfheidhmithe (.te) leis an ainm sonraithe agus tiomsaíonn sé an riail i bpacáiste beartais (.pp): mypolicy.pp mypolicy.te
  • Chun modúl saincheaptha a shuiteáil: # semodule -i mypolicy.pp

30. Chun próiseas (fearann) ar leith a chumrú chun oibriú i mód ceadaitheach: # semanage permissive -a httpd_t

31. Mura dteastaíonn uait go mbeadh an fearann ​​ceadaitheach a thuilleadh: # semanage permissive -d httpd_t

32. Chun gach fearann ​​ceadaitheach a dhíchumasú: # semodule -d permissivedomains

33. Beartas MLS SELinux a chumasú: # yum install selinux-policy-mls
в /etc/selinux/config:

SELINUX=permissive
SELINUXTYPE=mls

Cinntigh go bhfuil SELinux ag rith i mód ceadaitheach: # setenforce 0
Úsáid script fixfileslena chinntiú go ndéantar na comhaid a athlipéadú ar an gcéad atosaigh eile:

# fixfiles -F onboot # reboot

34. Cruthaigh úsáideoir le raon MLS ar leith: # useradd -Z staff_u john

Ag baint úsáide as an ordú useradd, mapáil an t-úsáideoir nua chuig úsáideoir SELinux atá ann cheana féin (sa chás seo, staff_u).

35. Chun féachaint ar an léarscáiliú idir úsáideoirí SELinux agus Linux: # semanage login -l

36. Sainmhínigh raon sonrach don úsáideoir: # semanage login --modify --range s2:c100 john

37. Chun lipéad eolaire baile an úsáideora a cheartú (más gá): # chcon -R -l s2:c100 /home/john

38. Chun na catagóirí reatha a fheiceáil: # chcat -L

39. Chun catagóirí a athrú nó do chuid féin a chruthú, cuir an comhad in eagar mar seo a leanas:

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

40. Chun ordú nó script a rith i gcomhad ar leith, i ról agus i gcomhthéacs úsáideora:

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

  • -t comhthéacs comhaid
  • -r comhthéacs ról
  • -u comhthéacs úsáideora

41. Díchumasaíodh coimeádáin atá ag rith le SELinux:

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

42. Más gá duit rochtain iomlán a thabhairt don choimeádán ar an gcóras:

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

Agus anois tá a fhios agat cheana féin an freagra. Mar sin le do thoil: ná bí buartha agus cumasaigh SELinux.

Naisc:

Foinse: will.com

Add a comment