ProHoster > Блог > Whakahaerenga > Pepa tinihanga a SELinux mo nga kaiwhakahaere punaha: 42 nga whakautu ki nga patai nui
Pepa tinihanga a SELinux mo nga kaiwhakahaere punaha: 42 nga whakautu ki nga patai nui
Ko te whakamaoritanga o te tuhinga i whakaritea mo nga akonga o te akoranga "Kaiwhakahaere Linux".
I konei ka whiwhi koe i nga whakautu ki nga patai nui mo te oranga, te ao me nga mea katoa i roto i te Linux me te pai ake o te haumarutanga.
"Ko te mea nui ko nga mea ehara i te mea he rite tonu te ahua he mohio noa..."
- Douglas Adams, Te Aratohu a te Hitchhiker ki te tupuni
Haumaru. Kua piki ake te pono. Nga reta reta. Kaupapa here. Tokowha nga Kaieke hoiho o te Apocalypse sysadmin. I tua atu i a maatau mahi o ia ra - te aroturuki, te taapiri, te whakatinanatanga, te whirihoranga, te whakahou, me etahi atu - kei a matou ano te kawenga mo te haumarutanga o a maatau punaha. Ahakoa nga punaha e kii ana te kaiwhakarato tuatoru kia whakakorehia e matou te haumarutanga ake. He rite ki te mahi Etana Hunt mai i "Miihana: Kaore e taea."
I mua i tenei raruraru, ka whakatau etahi o nga kaiwhakahaere punaha ki te tango pire puru, no te mea e whakaaro ana ratou kare rawa ratou e mohio ki te whakautu ki te patai nui o te oranga, te ao me era atu mea. A, e mohio ana tatou katoa, ko te whakautu ko te 42.
I runga i te wairua o te Aratohu a te Hitchhiker ki te tupuni, e 42 nga whakautu ki nga patai nui mo te whakahaere me te whakamahi. SELinux i runga i o punaha.
1. Ko te SELinux he punaha mana uru, ko te tikanga he tapanga nga mahinga katoa. He tapanga hoki kei ia kōnae, whaiaronga me te ahanoa punaha. Ko nga ture kaupapa here e whakahaere ana i te uru ki waenga i nga tukanga me nga taonga kua tohua. Ka whakamanahia e te kernel enei ture.
2. Ko nga ariā tino nui e rua ko: Te tapanga — tohu (kōnae, tukanga, tauranga, etc.) me Momo uruhi (e wehe ana i nga tukanga mai i a raatau ano i runga i nga momo).
3. Te whakatakotoranga tapanga tika user:role:type:level (kōwhiringa).
4. Ko te kaupapa o te whakarato haumarutanga taumata-maha (Haumarutanga Taumata-maha - MLS) ko te whakahaere i nga tukanga (nga rohe) i runga i te taumata o te haumarutanga o nga raraunga ka whakamahia e ratou. Hei tauira, kaore e taea e te tukanga ngaro te panui i nga raraunga ngaro o runga.
5. Te whakarite i te haumarutanga maha-waahanga (Haumarutanga-Kawai-maha - MCS) ka tiaki i nga tukanga rite mai i a raatau ano (hei tauira, nga miihini mariko, nga miihini OpenShift, nga pouaka kirikiri SELinux, nga ipu, me etahi atu).
6. Ko nga whiringa Kernel mo te whakarereke i nga momo SELinux i te boot:
autorelabel=1 → ka whakahaere te punaha tapanga
selinux=0 → kaore te kernel e utaina te hanganga SELinux
enforcing=0 → te uta i roto i te aratau whakaae
7. Mena ka hiahia koe ki te tapanga ano i te punaha katoa:
# touch /.autorelabel
#reboot
Mena he maha nga hapa kei roto i te tohu punaha, ka hiahia pea koe ki te whakaara i te aratau whakaae kia angitu te korero.
8. Hei taki mena kua whakahohea a SELinux: # getenforce
9. Hei whakaahei/whakakore i te SELinux mo te wa poto: # setenforce [1|0]
10. Takina te mana SELinux: # sestatus
11. Kōnae whirihora: /etc/selinux/config
12. Me pehea te mahi a SELinux? Anei he tauira tohu mo te tūmau tukutuku Apache:
Whakarewa i te tuhinga: /usr/lib/systemd/system/httpd.service → httpd_unit_file_d
Tukanga: /usr/sbin/httpd -DFOREGROUND → httpd_t
Tauranga: 80/tcp, 443/tcp → httpd_t, http_port_t
Te tukanga e rere ana i roto i te horopaki httpd_t, ka taea te taunekeneke ki tetahi mea kua tapaina httpd_something_t.
13. He maha nga whakahau e whakaae ana ki te tautohetohe -Z hei tiro, te hanga me te huri i te horopaki:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Ka whakatauhia nga horopaki i te wa i hangaia ai nga konae i runga i te horopaki o to raatau whaiaronga matua (me etahi rereke). Ka taea e nga RPM te whakarite i nga horopaki penei i te wa o te whakaurunga.
14. E wha nga take matua o nga hapa SELinux, e whakaahuahia ana i roto i nga waahanga 15-21 i raro nei:
Nga take tapanga
Na tetahi mea e tika ana kia mohio a SELinux
Hapa i roto i te kaupapa here/tono SELinux
Ka raru pea o korero
15.Raruraru tapanga: mena kei roto o kōnae /srv/myweb kua he te tohu, ka kore te uru. Anei etahi huarahi hei whakatika i tenei:
Mena ka mohio koe ki te tapanga: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Mena kei te mohio koe ki tetahi konae me nga tohu rite: # semanage fcontext -a -e /srv/myweb /var/www
Whakaora i te horopaki (mō ngā take e rua): # restorecon -vR /srv/myweb
16.Raruraru tapanga: ki te nukuhia e koe te konae kaore i te kape, ka mau tonu te konae ki tona horopaki taketake. Hei whakatika i tenei raru:
Hurihia te tono horopaki me te tapanga: # chcon -t httpd_system_content_t /var/www/html/index.html
Hurihia te tono horopaki me te tapanga hono: # chcon --reference /var/www/html/ /var/www/html/index.html
Whakaorangia te horopaki (mō ngā take e rua): # restorecon -vR /var/www/html/
17. ki te SELinux me mohio koekei te whakarongo a HTTPD ki te tauranga 8585, korero ki a SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux me mohio koe Ko nga uara Boolean ka taea te whakarereke i nga waahanga o te kaupapa here SELinux i te wa whakahaere me te kore e mohio ki te kaupapa here SELinux kua tuhiruatia. Hei tauira, ki te hiahia koe ki te tuku imeera a httpd, uruhia: # setsebool -P httpd_can_sendmail 1
19.SELinux me mohio koe uara arorau mo te whakahohe/whakakore i nga tautuhinga SELinux:
Hei kite i nga uara boolean katoa: # getsebool -a
Hei kite i te whakaahuatanga o ia: # semanage boolean -l
Hei tautuhi uara boolean: # setsebool [_boolean_] [1|0]
Mo te whakaurunga pumau, taapirihia -P. Hei tauira: # setsebool httpd_enable_ftp_server 1 -P
20. Kei roto pea i nga kaupapa here/tono SELinux nga hapa, tae atu ki:
Nga ara waehere rereke
Whirihoranga
E anga ana te stdout
Ka turuturu te tuhinga whakaahua
Pūmahara taea
Ko nga whare pukapuka he kino te hanga
Tuwhera nga tikiti (kaua e tuku purongo ki a Bugzilla; kaore he SLA a Bugzilla).
21.Ka raru pea o koreromena he rohe whakatiki koe e ngana ana ki te:
Utaina nga kōwae kernel
Monokia te aratau SELinux whakakaha
Tuhia ki etc_t/shadow_t
Hurihia nga ture iptables
22. Nga taputapu SELinux mo te whakawhanake i nga waahanga kaupapa here:
25. Mena ka puta he hapa SELinux, whakamahia te rangitaki setroubleshoot he maha nga otinga ka taea.
Hei tauira, mai i 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. Takitaki: Ka tuhi a SELinux i nga korero ki nga waahi maha:
27. Takitaki: rapu mo nga hapa SELinux i roto i te raarangi arotake:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. Hei kimi i nga karere SELinux Access Vector Cache (AVC) mo tetahi ratonga motuhake:
# ausearch -m avc -c httpd
29. Mahinga audit2allow ka kohikohi i nga korero mai i nga rarangi o nga mahi kua rahuitia ka whakaputa i nga ture kaupapa here whakaaetanga SELinux. Hei tauira:
Hei waihanga whakaahuatanga ka taea e te tangata te panui mo te take i kore ai te uru: # audit2allow -w -a
Hei tiro i te momo ture whakakaha e taea ai te uru whakahēhia: # audit2allow -a
Hei waihanga i te kōwae ritenga: # audit2allow -a -M mypolicy
Kōwhiringa -M ka waihanga momo momo konae (.te) me te ingoa kua tohua me te whakahiato i te ture ki roto i te kete kaupapa here (.pp): mypolicy.pp mypolicy.te
Hei tāuta i tētahi kōwae ritenga: # semodule -i mypolicy.pp
30. Hei whirihora i tetahi tukanga motuhake (rohe) kia mahi i roto i te aratau whakaae: # semanage permissive -a httpd_t
31. Ki te kore koe e hiahia kia whakaaehia te rohe: # semanage permissive -d httpd_t
32. Hei mono i nga rohe whakaae katoa: # semodule -d permissivedomains
33. Whakahohe kaupapa here MLS SELinux: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Me mohio kei te rere a SELinux i te aratau whakaae: # setenforce 0
Whakamahia he tuhinga fixfileshei whakarite kia tapaina ano nga konae ki te whakaara ano:
# fixfiles -F onboot # reboot
34. Waihangahia he kaiwhakamahi me te awhe MLS motuhake: # useradd -Z staff_u john
Te whakamahi i te whakahau useradd, maherehia te kaiwhakamahi hou ki tetahi kaiwhakamahi SELinux o mua (i tenei keehi, staff_u).
35. Hei tiro i te mapi i waenga i nga kaiwhakamahi SELinux me Linux: # semanage login -l
36. Tautuhia he awhe motuhake mo te kaiwhakamahi: # semanage login --modify --range s2:c100 john
37. Hei whakatika i te tapanga whaiaronga kainga o te kaiwhakamahi (mehemea e tika ana): # chcon -R -l s2:c100 /home/john
38. Hei tiro i nga waahanga o naianei: # chcat -L
39. Hei huri i nga waahanga ka timata ranei ki te hanga i a koe ake, whakatikahia te konae penei:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. Hei whakahaere i tetahi tono, tuhinga tuhi ranei i roto i tetahi konae, mahi, me te horopaki kaiwhakamahi: