Ang paghubad sa artikulo espesipikong giandam alang sa mga estudyante sa kurso .

Dinhi imong makuha ang mga tubag sa mga importanteng pangutana bahin sa kinabuhi, sa uniberso ug sa tanan nga naa niini Linux uban ang gipauswag nga seguridad.
"Ang importanteng kamatuoran nga ang mga butang dili kanunay sama sa ilang makita mao ang nahibaloan sa kadaghanan..."
―Douglas Adams, Ang Giya sa Hitchhiker sa Galaxy
Seguridad. Kasaligan. Pagsunod. Palisiya. Ang Upat ka Mangangabayo sa Sysadmin Apocalypse. Gawas sa among adlaw-adlaw nga mga buluhaton—pagmonitor, pag-backup, pag-deploy, pag-configure, pag-update, ug uban pa—responsable usab kami sa seguridad sa among mga sistema. Bisan kadtong mga sistema diin girekomenda sa usa ka third-party provider nga i-disable namo ang gipauswag nga seguridad. Murag trabaho ra man ni. gikan sa "Mission Impossible".
Tungod niini nga problema, ang ubang mga administrador sa sistema nakahukom nga mokuha og , kay naghunahuna sila nga dili gyud nila mahibal-an ang tubag sa dakong pangutana sa kinabuhi, sa uniberso, ug sa tanan. Ug, sama sa atong nahibaloan, ang tubag mao ang 42.
Subay sa diwa sa The Hitchhiker's Guide to the Galaxy, aniay 42 ka tubag sa mga importanteng pangutana bahin sa pagkontrol ug paggamit sa imong mga sistema.
1. SELinux — usa ka mandatory access control system, nagpasabot nga ang matag proseso adunay label. Ang matag file, directory, ug system object adunay label usab. Ang mga lagda sa polisiya nagdumala sa pag-access tali sa mga proseso nga adunay label ug mga butang. Ang kernel ang nagpatuman niini nga mga lagda.
2. Ang duha ka labing importante nga mga konsepto mao ang: Ang pagbutang — pagmarka (mga file, proseso, pantalan, ug uban pa) ug Pagpatuman sa tipo (nga nagbulag sa mga proseso gikan sa usag usa base sa mga tipo).
3. Sakto nga pormat sa label user:role:type:level (opsyonal).
4. Ang katuyoan sa paghatag og multi-level nga seguridad (Seguridad nga Daghang Lebel (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 top-secret nga datos.
5. Pagsiguro sa seguridad sa daghang kategorya (Seguridad sa Daghang Kategorya - MCS) nanalipod sa parehas nga mga proseso gikan sa usag usa (pananglitan mga virtual machine, OpenShift engine, SE sandboxesLinux, mga sudlanan, ug uban pa).
6. Mga parameter sa kernel para sa pag-ilis sa mga SE modeLinux sa pagkarga:
autorelabel=1→ nagpugos sa sistema sa pagsugod sa pag-usab sa labelselinux=0→ ang kernel wala magkarga sa SE infrastructureLinuxenforcing=0→ mag-boot sa permissive mode
7. Kon kinahanglan nimo nga usbon ang label sa tibuok sistema:
# touch /.autorelabel
#reboot
Kon ang pag-label sa sistema adunay daghang mga sayop, kinahanglan nimo nga mag-boot sa permissive mode aron magmalampuson ang pag-relabel.
8. Aron masusi kung ang SE naka-enableLinux: # getenforce
9. Aron temporaryong ma-enable/ma-disable ang SELinux: # setenforce [1|0]
10. Pagsusi sa Kahimtang sa SELinux: # sestatus
11. File sa pag-configure: /etc/selinux/config
12. Giunsa molihok ang SELinuxAnia ang usa ka ehemplo sa pagmarka para sa Apache web server:
- Representasyon sa binaryo:
/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 iskrip:
/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
Proseso nga nagdagan sa konteksto httpd_t, mahimong makig-uban sa gimarkahan nga butang httpd_something_t.
13. Daghang mga sugo ang modawat sa argumento -Z aron makita, makahimo ug maka-edit sa konteksto:
ls -Zid -Zps -Znetstat -Zcp -Zmkdir -Z
Ang mga konteksto gi-set kung ang mga file gihimo base sa konteksto sa ilang ginikanan nga direktoryo (nga adunay pipila ka mga eksepsiyon). Ang mga RPM mahimong magtakda og mga konteksto sa oras sa pag-install ug sa oras sa pagdagan.
14. Adunay upat ka pangunang hinungdan sa mga sayop sa SELinux, nga gihulagway sa mas detalyado sa mga parapo 15-21 sa ubos:
- Mga isyu sa pag-label
- Tungod sa usa ka butang nga SELinux kinahanglan mahibalo
- Sayop sa polisiya/aplikasyon sa SELinux
- Ang imong impormasyon mahimong makompromiso
15. Problema sa pag-label: kon ang imong mga file naa sa /srv/myweb Kon kini gimarkahan sa sayop nga paagi, ang pag-access mahimong ibalibad. Ania ang pipila ka mga paagi aron ayuhon kini:
- Kon kaila ka sa label:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?' - Kon nahibal-an nimo ang usa ka file nga adunay parehas nga mga marka:
# semanage fcontext -a -e /srv/myweb /var/www - Pagpahiuli sa konteksto (alang sa duha ka kaso):
# restorecon -vR /srv/myweb
16. Problema sa pag-label: Kon imong ibalhin ang usa ka file imbes nga kopyahon kini, ang file magpabilin sa orihinal nga konteksto niini. Aron ayuhon kini nga isyu:
- Usba ang context command gamit ang label:
# chcon -t httpd_system_content_t /var/www/html/index.html - Usba ang context command gamit ang link label:
# chcon --reference /var/www/html/ /var/www/html/index.html - Ibalik ang konteksto (para sa duha ka kaso):
# restorecon -vR /var/www/html/
17. kon SELinux kinahanglan mahibal-an, nga ang HTTPD naminaw sa port 8585, sultihi ang SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18. SELinux kinahanglan mahibal-an Mga kantidad sa Boolean nga nagtugot kanimo sa pag-usab sa mga bahin sa palisiya sa SELinux sa runtime nga walay kahibalo sa pag-usab sa polisiya sa SELinuxPananglitan, kon gusto nimo nga ang httpd magpadala og email, isulod ang: # setsebool -P httpd_can_sendmail 1
19. SELinux kinahanglan mahibal-an lohikal nga mga kantidad alang sa pagpagana/pag-disable sa mga setting sa SELinux:
- Aron makita ang tanang lohikal nga mga kantidad:
# getsebool -a - Aron makita ang deskripsyon sa matag usa:
# semanage boolean -l - Aron magbutang og lohikal nga bili:
# setsebool [_boolean_] [1|0] - Alang sa permanente nga pag-instalar, idugang
-P. Pananglitan:# setsebool httpd_enable_ftp_server 1 -P
20. Mga Polisiya/Aplikasyon sa SELinux mahimong adunay mga sayop, lakip ang:
- Talagsaon nga mga agianan sa code
- Mga pag-configure
- Pag-redirect sa stdout
- Mga pagtulo sa file descriptor
- Mapatuman nga memorya
- Mga librarya nga dili maayo ang pagkagama
Ablihi ang mga tiket (ayaw pagsumite og report sa Bugzilla; ang Bugzilla walay SLA).
21. Ang imong impormasyon mahimong makompromiso, kon ikaw adunay mga gidili nga domain nga naningkamot sa:
- I-load ang mga kernel module
- I-disable ang SE enforced modeLinux
- Pagsulat ngadto sa
etc_t/shadow_t - Usba ang mga lagda sa iptables
22. Mga Himan sa SELinux para sa pagpalambo sa mga modyul sa palisiya:
# yum -y install setroubleshoot setroubleshoot-server
I-reboot o i-restart auditd human sa pag-instalar.
23. Paggamit
journalctl aron ipakita ang lista sa tanang mga log nga may kalabutan sa setroubleshoot:
# journalctl -t setroubleshoot --since=14:20
24. Paggamit journalctl aron ilista ang tanang log nga nalangkit sa usa ka piho nga SE tagLinux. Pananglitan:
# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
25. Kung adunay mahitabo nga sayop sa SELinux gamita ang talaan setroubleshoot uban ang usa ka sugyot sa daghang posibleng 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.html26. Pagtroso: SELinux nagrekord sa impormasyon sa daghang mga lugar:
- /var/log/mga mensahe
- /var/log/audit/audit.log
- /var/lib/setroubleshoot/setroubleshoot_database.xml
27. Pag-log: Pagpangita sa mga Sayop sa SELinux sa log sa pag-awdit:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. Aron makit-an ang mga mensahe sa SELinux Pag-access sa Vector Cache (AVC) para sa usa ka piho nga serbisyo:
# ausearch -m avc -c httpd
29. Gamit audit2allow mangolekta og impormasyon gikan sa mga log sa gidili nga mga operasyon ug dayon maghimo og mga lagda sa polisiya sa pagtugot sa SELinux. Pananglitan:
- Aron makahimo og mabasa nga paghulagway sa hinungdan sa pagdumili sa pag-access:
# audit2allow -w -a - Aron makita ang lagda sa pagpatuman sa tipo nga nagtugot sa gidili nga pag-access:
# audit2allow -a - Aron makahimo og custom module:
# audit2allow -a -M mypolicy - Kapilian
-MNaghimo og enforcement file nga tipo (.te) nga adunay gitakdang ngalan ug gi-compile ang rule ngadto sa usa ka policy package (.pp):mypolicy.pp mypolicy.te - Aron mag-instalar og custom module:
# semodule -i mypolicy.pp
30. Aron ma-configure ang usa ka lahi nga proseso (domain) nga modagan sa permissive mode: # semanage permissive -a httpd_t
31. Kon dili na nimo gusto nga ang domain mahimong permissive: # semanage permissive -d httpd_t
32. Aron ma-disable ang tanang permissive domains: # semodule -d permissivedomains
33. Pagpagana sa polisiya sa MLS SELinux: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=matugoton
SELINUXTYPE=mls
Siguruha nga ang SELinux nagtrabaho sa permissive mode: # setenforce 0
Gamita ang iskrip fixfilesaron masiguro nga ang mga file ma-relabel sa sunod nga pag-reboot:
# fixfiles -F onboot # reboot
34. Paghimo og user nga adunay espesipikong MLS range: # useradd -Z staff_u john
Paggamit sa sugo useradd, i-mapa ang bag-ong tiggamit ngadto sa kasamtangang SE userLinux (sa kini nga kaso, staff_u).
35. Aron makita ang komunikasyon tali sa mga tiggamit sa SELinux и Linux: # semanage login -l
36. Pagtino og espesipikong range para sa user: # 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 makita ang kasamtangang mga kategorya: # chcat -L
39. Aron usbon ang mga kategorya o magsugod sa paghimo sa imong kaugalingon, i-edit ang file sama sa mosunod:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. Aron modagan ang usa ka sugo o script sa usa ka piho nga file, papel, ug konteksto sa tiggamit:
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-tkonteksto sa file-rkonteksto sa papel-ukonteksto sa tiggamit
41. Mga container nga nagdagan nga ang SE gi-disableLinux:
- Podman:
# podman run --security-opt label=disable … - Docker:
# docker run --security-opt label=disable …
42. Kon kinahanglan nimo nga hatagan ang usa ka container og bug-os nga access sa sistema:
- Podman:
# podman run --privileged … - Docker:
# docker run --privileged …
Ug karon nahibal-an na nimo ang tubag. Busa palihug: ayaw kabalaka ug i-on ang SELinux.
Mga reperensiya:
- by
- ni Dan Walsh
- by
- by
Source: www.habr.com
