ProHoster > Блог > Pagdumala > SELinux cheat sheet alang sa mga administrador sa sistema: 42 nga mga tubag sa hinungdanon nga mga pangutana
SELinux cheat sheet alang sa mga administrador sa sistema: 42 nga mga tubag sa hinungdanon nga mga pangutana
Ang paghubad sa artikulo espesipikong giandam alang sa mga estudyante sa kurso "Linux Administrator".
Dinhi makakuha ka mga tubag sa hinungdanon nga mga pangutana bahin sa kinabuhi, uniberso ug tanan sa Linux nga adunay gipaayo nga seguridad.
"Ang importante nga kamatuoran nga ang mga butang dili kanunay kung unsa ang ilang makita mao ang komon nga kahibalo ..."
-Douglas Adams, Ang Giya sa Hitchhiker sa Galaxy
Kaluwasan. Dugang nga kasaligan. Sulat. Polisiya. Upat ka Horsemen sa Apocalypse sysadmin. Dugang pa sa among adlaw-adlaw nga buluhaton - pagmonitor, pag-backup, pagpatuman, pag-configure, pag-update, ug uban pa - responsable usab kami sa seguridad sa among mga sistema. Bisan kadtong mga sistema diin girekomenda sa third-party nga provider nga among i-disable ang gipauswag nga seguridad. Morag trabaho Ethan Hunt gikan sa “Misyon: Imposible.”
Nag-atubang sa kini nga problema, ang pipila nga mga tagdumala sa sistema nakahukom nga kuhaon asul nga pildoras, tungod kay naghunahuna sila nga dili nila mahibal-an ang tubag sa dakong pangutana sa kinabuhi, sa uniberso ug sa tanan. Ug sa nahibal-an namong tanan, kana nga tubag 42.
Sa diwa sa The Hitchhiker's Guide to the Galaxy, aniay 42 ka tubag sa importanteng mga pangutana bahin sa pagkontrol ug paggamit. SELinux sa imong mga sistema.
1. Ang SELinux usa ka pinugos nga sistema sa pagkontrol sa pag-access, nga nagpasabut nga ang matag proseso adunay label. Ang matag file, direktoryo ug sistema nga butang adunay usab mga label. Ang mga lagda sa palisiya nagkontrol sa pag-access tali sa mga gi-tag nga proseso ug mga butang. Ang kernel nagpatuman niini nga mga lagda.
2. Ang duha ka labing importante nga mga konsepto mao ang: Ang pagbutang — mga marka (mga file, proseso, pantalan, ug uban pa) ug Pag-type sa pagpatuman (nga nagbulag sa mga proseso gikan sa usag usa base sa mga tipo).
3. Husto nga format sa label user:role:type:level (kapilian).
4. Ang katuyoan sa paghatag og multi-level nga seguridad (Multi-Level Security - MLS) mao ang pagdumala sa mga proseso (mga domain) base sa lebel sa seguridad sa datos nga ilang gamiton. Pananglitan, ang usa ka sekreto nga proseso dili makabasa sa pinakataas nga sekreto nga datos.
5. Pagsiguro sa multi-category nga seguridad (Daghang-Kategorya nga Seguridad - MCS) nanalipod sa susamang mga proseso gikan sa usag usa (pananglitan, mga virtual machine, OpenShift nga makina, SELinux sandboxes, mga sudlanan, ug uban pa).
6. Mga kapilian sa kernel alang sa pagbag-o sa mga mode sa SELinux sa boot:
autorelabel=1 → hinungdan sa sistema sa pagpadagan sa pag-relabel
selinux=0 → ang kernel wala magkarga sa imprastraktura sa SELinux
enforcing=0 → loading sa permissive mode
7. Kung kinahanglan nimo nga i-relabel ang tibuuk nga sistema:
# touch /.autorelabel
#reboot
Kung ang pagmarka sa sistema adunay daghang mga sayup, mahimo nimo kinahanglan nga mag-boot sa permissive mode aron molampos ang pagkomento.
8. Aron masusi kung ang SELinux gipalihok: # getenforce
9. Aron temporaryo nga ma-enable/disable ang SELinux: # setenforce [1|0]
10. Pagsusi sa kahimtang sa SELinux: # sestatus
11. Configuration file: /etc/selinux/config
12. Giunsa pagtrabaho ang SELinux? Ania ang usa ka pananglitan nga pagmarka alang sa Apache web server:
Binary nga representasyon: /usr/sbin/httpd→httpd_exec_t
Direktoryo sa pag-configure: /etc/httpd→httpd_config_t
Direktoryo sa log file: /var/log/httpd → httpd_log_t
Direktoryo sa sulod: /var/www/html → httpd_sys_content_t
Ilunsad ang script: /usr/lib/systemd/system/httpd.service → httpd_unit_file_d
Proseso: /usr/sbin/httpd -DFOREGROUND → httpd_t
Mga pantalan: 80/tcp, 443/tcp → httpd_t, http_port_t
Ang proseso nga nagdagan sa konteksto httpd_t, mahimong makig-uban sa usa ka butang nga gimarkahan httpd_something_t.
13. Daghang mga sugo ang modawat ug argumento -Z sa pagtan-aw, paghimo ug pag-usab sa konteksto:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
Natukod ang mga konteksto kung ang mga file gihimo base sa konteksto sa ilang direktoryo sa ginikanan (uban ang pipila nga mga eksepsiyon). Ang mga RPM mahimong magtukod og mga konteksto sama sa panahon sa pag-instalar.
14. Adunay upat ka nag-unang hinungdan sa mga sayup sa SELinux, nga gihulagway sa mas detalyado sa mga punto 15-21 sa ubos:
Mga isyu sa pag-label
Tungod sa usa ka butang nga kinahanglan mahibal-an sa SELinux
Sayop sa polisiya/aplikasyon sa SELinux
Mahimong makompromiso ang imong impormasyon
15.Problema sa pag-label: kung naa ang imong mga file /srv/myweb sayop nga gimarkahan, ang pag-access mahimong dumilian. Ania ang pipila ka mga paagi sa pag-ayo niini:
Kung nahibal-an nimo ang label: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
Kung nahibal-an nimo ang usa ka file nga adunay parehas nga marka: # semanage fcontext -a -e /srv/myweb /var/www
Pagpasig-uli sa konteksto (alang sa duha ka kaso): # restorecon -vR /srv/myweb
16.Problema sa pag-label: kung imong ibalhin ang file imbes nga kopyahon kini, ang file magpabilin sa orihinal nga konteksto niini. Aron ayuhon kini nga problema:
Usba ang sugo sa konteksto gamit ang label: # chcon -t httpd_system_content_t /var/www/html/index.html
Usba ang sugo sa konteksto gamit ang label sa link: # chcon --reference /var/www/html/ /var/www/html/index.html
Iuli ang konteksto (alang sa duha ka kaso): # restorecon -vR /var/www/html/
17. kon SELinux kinahanglan nimo mahibal-annga ang HTTPD naminaw sa port 8585, sultihi ang SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18.SELinux kinahanglan nimo mahibal-an Ang mga kantidad sa Boolean nga nagtugot sa mga bahin sa palisiya sa SELinux nga mabag-o sa oras sa pagdagan nga wala’y kahibalo sa palisiya sa SELinux nga gi-overwrit. Pananglitan, kung gusto nimo ipadala sa httpd ang email, pagsulod: # setsebool -P httpd_can_sendmail 1
19.SELinux kinahanglan nimo mahibal-an lohikal nga mga kantidad alang sa pagpagana / pag-disable sa mga setting sa SELinux:
Aron makita ang tanang boolean values: # getsebool -a
Aron makita ang paghulagway sa matag usa: # semanage boolean -l
Para magbutang ug boolean value: # setsebool [_boolean_] [1|0]
Alang sa permanente nga pag-instalar, idugang -P. Pananglitan: # setsebool httpd_enable_ftp_server 1 -P
20. Ang mga palisiya/aplikasyon sa SELinux mahimong adunay mga sayup, lakip ang:
Dili kasagaran nga mga agianan sa code
Mga pag-configure
Pag-redirect sa stdout
Ang mga deskriptor sa file nag-leak
Executable memory
Dili maayo nga pagkatukod nga mga librarya
Buksan ang mga tiket (ayaw pagsumite ug report sa Bugzilla; Bugzilla walay SLA).
21.Mahimong makompromiso ang imong impormasyonkung ikaw adunay gidili nga mga domain nga naningkamot sa:
Pag-load sa mga module sa kernel
I-disable ang gipatuman nga SELinux mode
Isulat sa etc_t/shadow_t
Usba ang mga lagda sa iptables
22. Mga himan sa SELinux alang sa pagpalambo sa mga module sa palisiya:
25. Kung adunay mahitabo nga sayup sa SELinux, gamita ang log setroubleshoot nagtanyag sa pipila ka posible nga mga solusyon.
Pananglitan, gikan sa 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. Pag-log: Ang SELinux nagrekord sa impormasyon sa daghang mga dapit:
27. Pag-log: pagpangita sa mga sayup sa SELinux sa audit log:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. Aron makit-an ang mga mensahe sa SELinux Access Vector Cache (AVC) alang sa usa ka piho nga serbisyo:
# ausearch -m avc -c httpd
29. Gamit audit2allow nagkolekta og impormasyon gikan sa mga troso sa gidili nga mga operasyon ug dayon nagmugna sa mga lagda sa polisiya sa pagtugot sa SELinux. Pananglitan:
Aron makahimo og usa ka mabasa sa tawo nga deskripsyon kung nganong gibalibaran ang pag-access: # audit2allow -w -a
Sa pagtan-aw sa usa ka matang sa pagpatuman sa lagda nga nagtugot sa gibalibaran access: # audit2allow -a
Sa paghimo og custom nga module: # audit2allow -a -M mypolicy
Kapilian -M naghimo ug tipo nga enforcement file (.te) nga adunay gipiho nga ngalan ug gihugpong ang lagda ngadto sa usa ka pakete sa polisiya (.pp): mypolicy.pp mypolicy.te
Sa pag-instalar og custom nga module: # semodule -i mypolicy.pp
30. Aron ma-configure ang usa ka bulag nga proseso (domain) aron molihok sa permissive mode: # semanage permissive -a httpd_t
31. Kung dili na nimo gusto nga ang domain mahimong permissive: # semanage permissive -d httpd_t
33. Pag-enable sa polisiya sa MLS SELinux: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
Siguroha nga ang SELinux nagdagan sa permissive mode: # setenforce 0
Gamit ug script fixfilesaron masiguro nga ang mga file gi-relabel pag-usab sa sunod nga pag-reboot:
# fixfiles -F onboot # reboot
34. Paghimo usa ka tiggamit nga adunay piho nga sakup sa MLS: # useradd -Z staff_u john
Gamit ang sugo useradd, mapa ang bag-ong user ngadto sa kasamtangan nga user sa SELinux (niining kasoha, staff_u).
35. Aron tan-awon ang pagmapa tali sa mga tiggamit sa SELinux ug Linux: # semanage login -l
36. Paghubit sa usa ka piho nga range alang sa tiggamit: # semanage login --modify --range s2:c100 john
37. Aron matul-id ang label sa home directory sa user (kon gikinahanglan): # chcon -R -l s2:c100 /home/john
38. Aron matan-aw ang mga karon nga kategorya: # chcat -L
39. Aron mausab ang mga kategorya o magsugod sa paghimo sa imong kaugalingon, usba ang file ingon sa mosunod:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. Aron magpadagan og command o script sa usa ka piho nga file, papel, ug konteksto sa user: