Ua hoʻomākaukau ʻia ka unuhi ʻana o ka ʻatikala no nā haumāna o ka papa .

Maanei ʻoe e loaʻa ai nā pane i nā nīnau koʻikoʻi e pili ana i ke ola, ke ao holoʻokoʻa a me nā mea āpau i loko Linux me ka palekana i hoʻomaikaʻi ʻia.
"ʻO ka ʻoiaʻiʻo koʻikoʻi ʻaʻole like nā mea i nā manawa a lākou e ʻike ai he ʻike maʻamau ..."
-Douglas Adams, ʻO ke alakaʻi a ka Hitchhiker i ka Galaxy
Palekana. Hoʻonui i ka hilinaʻi. Palapala leka. Kulekele. ʻEhā Lio o ka Apocalypse sysadmin. Ma waho aʻe o kā mākou mau hana i kēlā me kēia lā - nānā, hoʻihoʻi, hoʻokō, hoʻonohonoho, hoʻonui, a me nā mea ʻē aʻe - no mākou ke kuleana no ka palekana o kā mākou ʻōnaehana. ʻO kēlā mau ʻōnaehana kahi e ʻōlelo ai ka mea hāʻawi ʻaoʻao ʻekolu e hoʻopau mākou i ka palekana i hoʻonui ʻia. Me he hana lā mai "Mission: Impossible."
Ke alo nei i kēia pilikia, ua hoʻoholo kekahi mau luna ʻōnaehana e lawe , no ka mea, manaʻo lākou ʻaʻole lākou e ʻike i ka pane i ka nīnau nui o ke ola, ke ao a me nā mea a pau. A e like me kā mākou i ʻike ai, ʻo ia pane he 42.
Ma ka manaʻo o The Hitchhiker's Guide to the Galaxy, eia nā pane 42 i nā nīnau koʻikoʻi e pili ana i ka mana a me ka hoʻohana. ma kāu mau ʻōnaehana.
1. SELinux — he ʻōnaehana kaohi komo i koi ʻia, ʻo ia hoʻi, he lepili ko kēlā me kēia kaʻina hana. Loaʻa i kēlā me kēia faila, papa kuhikuhi, a me kahi mea ʻōnaehana kahi lepili. Hoʻomalu nā lula kulekele i ke komo ʻana ma waena o nā kaʻina hana i lepili ʻia a me nā mea. Hoʻokō ka kernel i kēia mau lula.
2. ʻO nā manaʻo koʻikoʻi ʻelua: Ke kālaulā - nā hōʻailona (nā faila, nā kaʻina hana, nā awa, a me nā mea ʻē aʻe) a ʻAno hoʻokō (ka mea e hoʻokaʻawale i nā kaʻina hana mai kekahi i kekahi ma muli o nā ʻano).
3. Hōʻano lepili pololei user:role:type:level (koho).
4. ʻO ke kumu o ka hoʻolako ʻana i ka palekana multi-level (Palekana Nui - MLS) e hoʻokele i nā kaʻina hana (domains) e pili ana i ka pae o ka palekana o ka ʻikepili a lākou e hoʻohana ai. No ka laʻana, ʻaʻole hiki i kahi kaʻina hana huna ke heluhelu i ka ʻikepili huna kiʻekiʻe.
5. E hōʻoia ana i ka palekana o nā ʻano he nui (Palekana Māhele Nui - MCS) pale i nā kaʻina hana like mai kekahi i kekahi (e.g. nā mīkini virtual, nā ʻenekini OpenShift, nā pahu sand SELinux, nā ipu, a pēlā aku).
6. Nā palena kernel no ka hoʻololi ʻana i nā ʻano SELinux i ka hoʻouka ʻana:
autorelabel=1→ ke kumu e holo hou ai ka ʻōnaehanaselinux=0→ ʻaʻole hoʻouka ka kernel i ke kahua SELinuxenforcing=0→ hoʻouka ʻia ma ke ʻano ʻae
7. Inā pono ʻoe e hōʻailona hou i ka ʻōnaehana holoʻokoʻa:
# touch /.autorelabel
#reboot
Inā loaʻa i ka māka ʻōnaehana he helu nui o nā hewa, pono paha ʻoe e hoʻopaʻa i ke ʻano ʻae no ka ʻōlelo ʻana e kūleʻa.
8. No ka nānā ʻana inā ua hoʻā ʻia ʻo SELinux: # getenforce
9. No ka hoʻā/hoʻopau ʻana iā SE no kekahi manawaLinux: # setenforce [1|0]
10. Ke nānā nei i ke kūlana SELinux: # sestatus
11. waihona hoʻonohonoho: /etc/selinux/config
12. Pehea e hana ai ʻo SELinuxEia kahi laʻana o ka māka ʻana no ka kikowaena pūnaewele Apache:
- Hōʻikeʻike binary:
/usr/sbin/httpd→httpd_exec_t - Papa kuhikuhi hoʻonohonoho:
/etc/httpd→httpd_config_t - Papa kuhikuhi waihona waihona:
/var/log/httpd → httpd_log_t - Papa kuhikuhi maʻiʻo:
/var/www/html → httpd_sys_content_t - Hoʻomaka ka palapala:
/usr/lib/systemd/system/httpd.service → httpd_unit_file_d - Hoʻomākaukau:
/usr/sbin/httpd -DFOREGROUND → httpd_t - Nā awa:
80/tcp, 443/tcp → httpd_t, http_port_t
Ke holo nei ke kaʻina hana ma ka pōʻaiapili httpd_t, hiki ke launa me kekahi mea i hoailonaia httpd_something_t.
13. Nui nā kauoha e ʻae i ka hoʻopaʻapaʻa -Z e nānā, hana a hoʻololi i ka pōʻaiapili:
ls -Zid -Zps -Znetstat -Zcp -Zmkdir -Z
Hoʻokumu ʻia nā ʻatikala ke hana ʻia nā faila ma muli o ka pōʻaiapili o kā lākou papa kuhikuhi makua (me kekahi mau ʻokoʻa). Hiki i nā RPM ke hoʻokumu i nā pōʻaiapili e like me ke kau ʻana.
14. ʻEhā kumu nui no nā hewa SELinux, i wehewehe ʻia me nā kikoʻī hou aku ma nā paukū 15-21 ma lalo nei:
- Nā pilikia lepili
- Ma muli o kekahi mea a SELinux pono e ike
- He hewa i ke kulekele/noi SELinux
- Hiki ke hoʻopili ʻia kāu ʻike
15. Pilikia lepili: inā aia kāu mau faila /srv/myweb hōʻailona hewa ʻia, hiki ke hōʻole ʻia ke komo ʻana. Eia kekahi mau ala e hoʻoponopono ai i kēia:
- Inā ʻike ʻoe i ka lepili:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?' - Inā ʻike ʻoe i kahi faila me nā kaha like:
# semanage fcontext -a -e /srv/myweb /var/www - Hoʻihoʻi hou i ka pōʻaiapili (no nā hihia ʻelua):
# restorecon -vR /srv/myweb
16. Pilikia lepili: inā hoʻoneʻe ʻoe i ka faila ma mua o ke kope ʻana, e paʻa ka waihona i kona ʻano kumu. No ka hoʻoponopono ʻana i kēia pilikia:
- E hoʻololi i ke kauoha pōʻaiapili me ka lepili:
# chcon -t httpd_system_content_t /var/www/html/index.html - E hoʻololi i ke kauoha pōʻaiapili me ka lepili loulou:
# chcon --reference /var/www/html/ /var/www/html/index.html - Hoʻihoʻi i ka pōʻaiapili (no nā hihia ʻelua):
# restorecon -vR /var/www/html/
17. ina SELinux pono e ʻike, ke hoʻolohe nei ʻo HTTPD ma ka awa 8585, e haʻi iā SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18. SELinux pono e ʻike Nā waiwai Boolean e hiki ai iā ʻoe ke hoʻololi i nā ʻāpana o ke kulekele SELinux i ka wā e holo ana me ka ʻike ʻole i ke kākau hou ʻana o nā kulekele SELinuxEia kekahi laʻana, inā makemake ʻoe iā httpd e hoʻouna i ka leka uila, e hoʻokomo: # setsebool -P httpd_can_sendmail 1
19. SELinux pono e ʻike nā waiwai kūpono no ka hoʻā ʻana/hoʻopau ʻana i nā hoʻonohonoho SELinux:
- No ka ʻike ʻana i nā waiwai boolean a pau:
# getsebool -a - E ʻike i ka wehewehe ʻana o kēlā me kēia:
# semanage boolean -l - No ka hoʻonohonoho ʻana i kahi waiwai boolean:
# setsebool [_boolean_] [1|0] - No kahi hoʻokomo mau, hoʻohui
-P. ^ E Ha yM. Ma ke ʻano he:# setsebool httpd_enable_ftp_server 1 -P
20. Nā Kulekele/Noi SELinux hiki ke loaʻa nā hewa, e like me:
- Nā ala code maʻamau
- Nā hoʻonohonoho
- Ke kuhikuhi hou nei i ka stdout
- Leʻaleʻa ka mea wehewehe waihona
- Hoʻomanaʻo hoʻokō
- Nā hale waihona puke maikaʻi ʻole
E wehe i nā tiketi (mai hoʻouna i kahi hōʻike iā Bugzilla; ʻaʻohe SLA iā Bugzilla).
21. Hiki ke hoʻopili ʻia kāu ʻikeinā he mau kāʻei kapu kāu e hoʻāʻo nei e:
- E hoʻouka i nā modula kernel
- E hoʻopau i ke ʻano hoʻokō SELinux
- Kākau iā
etc_t/shadow_t - E hoʻololi i nā lula iptables
22. Nā Mea Hana SELinux no ka hoʻomohala ʻana i nā modula kulekele:
# yum -y install setroubleshoot setroubleshoot-server
Hoʻomaka hou a hoʻomaka hou auditd ma hope o ke kau ʻana.
23. E hoʻohana
journalctl e hōʻike i kahi papa inoa o nā moʻolelo a pau e pili ana setroubleshoot:
# journalctl -t setroubleshoot --since=14:20
24. E hoʻohana journalctl e papa inoa i nā log āpau e pili ana i kahi tag SE kikoʻīLinux. ^ E Ha yM. Ma ke ʻano he:
# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
25. Ke hana ʻia kahi hewa SELinux hoʻohana i ka moʻolelo setroubleshoot hāʻawi i kekahi mau mea hiki ke hoʻonā.
No ka laʻana, mai 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.html26. Ke kālai ʻana: SELinux hoʻopaʻa i ka ʻike ma nā wahi he nui:
- / var / log / memo
- /var/log/audit/audit.log
- /var/lib/setroubleshoot/setroubleshoot_database.xml
27. Ke komo ʻana: Ke ʻimi nei i nā hewa SELinux ma ka moʻolelo loiloi:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. No ka loaʻa ʻana o nā leka SELinux E komo i ka Vector Cache (AVC) no kahi lawelawe kikoʻī:
# ausearch -m avc -c httpd
29. Mea hoʻohana audit2allow hōʻiliʻili i ka ʻike mai nā papa inoa o nā hana i pāpā ʻia a laila hana i nā lula kulekele ʻae SELinux. ^ E Ha yM. Ma ke ʻano he:
- No ka hana ʻana i kahi wehewehe hiki ke heluhelu ʻia e ke kanaka no ke kumu i hōʻole ʻia ai ke komo ʻana:
# audit2allow -w -a - No ka ʻike ʻana i kahi lula hoʻokō ʻano e ʻae ʻia ke komo ʻole:
# audit2allow -a - No ka hana ʻana i kahi module maʻamau:
# audit2allow -a -M mypolicy - Koho
-Mhana i kahi faila hoʻokō ʻano (.te) me ka inoa i ʻōlelo ʻia a hōʻuluʻulu i ka lula i loko o kahi pūʻolo kulekele (.pp):mypolicy.pp mypolicy.te - No ka hoʻouka ʻana i kahi module maʻamau:
# semodule -i mypolicy.pp
30. No ka hoʻonohonoho ʻana i kahi kaʻina kaʻawale (domain) e hana ma ke ʻano ʻae: # semanage permissive -a httpd_t
31. Inā ʻaʻole ʻoe makemake hou e ʻae ʻia ka domain: # semanage permissive -d httpd_t
32. E hoʻopau i nā kāʻei kapu ʻae a pau: # semodule -d permissivedomains
33. Ke hoʻā nei i ke kulekele MLS SELinux: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=ʻae
SELINUXTYPE=mls
E hōʻoia i ka SELinux hana ma ke ʻano ʻae ʻia: # setenforce 0
E hoʻohana i kahi palapala fixfilese hōʻoia i ka hoʻopaʻa inoa ʻia ʻana o nā faila i ka reboot aʻe:
# fixfiles -F onboot # reboot
34. E hana i mea hoʻohana me kahi laulā MLS kikoʻī: # useradd -Z staff_u john
Ke hoʻohana nei i ke kauoha useradd, e hoʻopili i ka mea hoʻohana hou i kahi mea hoʻohana SE e kū neiLinux (i kēia hihia, staff_u).
35. No ka nānā ʻana i ka pilina ma waena o nā mea hoʻohana SELinux и Linux: # semanage login -l
36. E wehewehe i kahi laulā kikoʻī no ka mea hoʻohana: # semanage login --modify --range s2:c100 john
37. No ka hoʻoponopono ʻana i ka lepili papa kuhikuhi home o ka mea hoʻohana (inā pono): # chcon -R -l s2:c100 /home/john
38. E nānā i nā waeʻano o kēia manawa: # chcat -L
39. No ka hoʻololi ʻana i nā waeʻano a i ʻole e hoʻomaka i ka hana ʻana i kāu iho, hoʻoponopono i ka faila penei:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. No ka holo ʻana i kahi kauoha a i ʻole palapala ma kahi faila, kuleana, a me ka pōʻaiapili mea hoʻohana:
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-tpōʻaiapili waihona-rpōʻaiapili kuleana-upōʻaiapili mea hoʻohana
41. Nā ipu e holo ana me ka SE i hoʻopau ʻiaLinux:
- Podman:
# podman run --security-opt label=disable … - Pākuʻi:
# docker run --security-opt label=disable …
42. Inā pono ʻoe e hāʻawi i ka pahu i ke komo piha i ka ʻōnaehana:
- Podman:
# podman run --privileged … - Pākuʻi:
# docker run --privileged …
A i kēia manawa ua ʻike mua ʻoe i ka pane. No laila e ʻoluʻolu: mai hopohopo a hoʻā i ka SELinux.
Nā Manaʻo:
- by
- na Dan Walsh
- by
- by
Source: www.habr.com
