Paratowyd y cyfieithiad o'r erthygl yn benodol ar gyfer myfyrwyr y cwrs .

Yma cewch atebion i gwestiynau pwysig am fywyd, y bydysawd a phopeth ynddo Linux gyda diogelwch gwell.
“Y gwirionedd pwysig nad yw pethau bob amser yr hyn maen nhw'n ymddangos yw gwybodaeth gyffredin...”
-Douglas Adams, Canllaw'r Hitchhiker i'r Galaxy
Diogelwch. Mwy o ddibynadwyedd. Gohebiaeth. Polisi. Pedwar Marchog yr Apocalypse sysadmin. Yn ogystal â'n tasgau dyddiol - monitro, gwneud copi wrth gefn, gweithredu, ffurfweddu, diweddaru, ac ati - rydym hefyd yn gyfrifol am ddiogelwch ein systemau. Hyd yn oed y systemau hynny lle mae'r darparwr trydydd parti yn argymell ein bod yn analluogi gwell diogelwch. Mae'n teimlo fel gwaith o “Mission: Impossible.”
Yn wyneb y cyfyng-gyngor hwn, mae rhai gweinyddwyr system yn penderfynu cymryd , oherwydd eu bod yn meddwl na fyddant byth yn gwybod yr ateb i gwestiwn mawr bywyd, y bydysawd a hynny i gyd. Ac fel y gwyddom oll, yr ateb hwnnw yw 42.
Yn ysbryd The Hitchhiker's Guide to the Galaxy, dyma 42 ateb i gwestiynau pwysig am reolaeth a defnydd. ar eich systemau.
1. SELinux — yn system rheoli mynediad orfodol, sy'n golygu bod gan bob proses label. Mae gan bob ffeil, cyfeiriadur, a gwrthrych system label hefyd. Mae rheolau polisi yn llywodraethu mynediad rhwng prosesau a gwrthrychau wedi'u labelu. Mae'r cnewyllyn yn gorfodi'r rheolau hyn.
2. Y ddau gysyniad pwysicaf yw: Labelu — marciau (ffeiliau, prosesau, porthladdoedd, ac ati) a Gorfodi math (sy'n ynysu prosesau oddi wrth ei gilydd yn seiliedig ar fathau).
3. Fformat label cywir user:role:type:level (dewisol).
4. Pwrpas darparu diogelwch aml-lefel (Diogelwch Aml-Lefel - MLS) yw rheoli prosesau (meysydd) yn seiliedig ar lefel diogelwch y data y byddant yn ei ddefnyddio. Er enghraifft, ni all proses gyfrinachol ddarllen data cyfrinachol iawn.
5. Sicrhau diogelwch aml-gategori (Diogelwch Aml-gategori - MCS) yn amddiffyn prosesau tebyg rhag ei gilydd (e.e. peiriannau rhithwir, peiriannau OpenShift, blychau tywod SELinux, cynwysyddion, ac ati).
6. Paramedrau cnewyllyn ar gyfer newid moddau SELinux wrth lwytho:
autorelabel=1→ yn achosi i'r system redeg ail-labeluselinux=0→ nid yw'r cnewyllyn yn llwytho'r seilwaith SELinuxenforcing=0→ llwytho yn y modd caniataol
7. Os oes angen i chi ail-labelu'r system gyfan:
# touch /.autorelabel
#reboot
Os yw marcio'r system yn cynnwys nifer fawr o wallau, efallai y bydd angen i chi gychwyn yn y modd caniataol er mwyn i'r ailfarcio lwyddo.
8. I wirio a yw SE wedi'i alluogiLinux: # getenforce
9. I alluogi/analluogi SE dros droLinux: # setenforce [1|0]
10. Gwirio Statws SELinux: # sestatus
11. Ffeil ffurfweddu: /etc/selinux/config
12. Sut mae SE yn gweithioLinuxDyma enghraifft o farcio ar gyfer gweinydd gwe Apache:
- Cynrychiolaeth ddeuaidd:
/usr/sbin/httpd→httpd_exec_t - Cyfeiriadur ffurfweddu:
/etc/httpd→httpd_config_t - Cyfeiriadur ffeil log:
/var/log/httpd → httpd_log_t - Cyfeiriadur cynnwys:
/var/www/html → httpd_sys_content_t - Sgript lansio:
/usr/lib/systemd/system/httpd.service → httpd_unit_file_d - Proses:
/usr/sbin/httpd -DFOREGROUND → httpd_t - Porthladdoedd:
80/tcp, 443/tcp → httpd_t, http_port_t
Proses yn rhedeg yn ei chyd-destun httpd_t, yn gallu rhyngweithio â gwrthrych wedi'i labelu httpd_something_t.
13. Mae llawer o orchmynion yn derbyn dadl -Z i weld, creu a newid cyd-destun:
ls -Zid -Zps -Znetstat -Zcp -Zmkdir -Z
Sefydlir cyd-destunau pan fydd ffeiliau'n cael eu creu yn seiliedig ar gyd-destun eu cyfeiriadur rhiant (gyda rhai eithriadau). Gall RPMs sefydlu cyd-destunau fel yn ystod gosod.
14. Mae pedwar prif reswm dros wallau SELinux, a ddisgrifir yn fanylach ym mharagraffau 15-21 isod:
- Materion labelu
- Oherwydd rhywbeth y mae SELinux rhaid gwybod
- Gwall yn y polisi/cymhwysiad SELinux
- Mae'n bosibl y bydd eich gwybodaeth yn cael ei pheryglu
15. Problem labelu: os yw eich ffeiliau yn /srv/myweb wedi'u marcio'n anghywir, efallai y bydd mynediad yn cael ei wrthod. Dyma rai ffyrdd i drwsio hyn:
- Os ydych chi'n gwybod y label:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?' - Os ydych chi'n gwybod ffeil gyda marciau cyfatebol:
# semanage fcontext -a -e /srv/myweb /var/www - Adfer y cyd-destun (ar gyfer y ddau achos):
# restorecon -vR /srv/myweb
16. Problem labelu: os byddwch yn symud y ffeil yn lle ei chopïo, bydd y ffeil yn cadw ei chyd-destun gwreiddiol. I ddatrys y broblem hon:
- Newidiwch y gorchymyn cyd-destun gyda'r label:
# chcon -t httpd_system_content_t /var/www/html/index.html - Newidiwch y gorchymyn cyd-destun gyda'r label cyswllt:
# chcon --reference /var/www/html/ /var/www/html/index.html - Adfer y cyd-destun (ar gyfer y ddau achos):
# restorecon -vR /var/www/html/
17. Os SELinux angen gwybod, bod HTTPD yn gwrando ar borthladd 8585, dywedwch wrth SELinux:
# semanage port -a -t http_port_t -p tcp 8585
18. SELinux angen gwybod Gwerthoedd Booleaidd sy'n caniatáu ichi newid rhannau o'r polisi SELinux ar amser rhedeg heb wybodaeth am ailysgrifennu polisi SELinuxEr enghraifft, os ydych chi eisiau i httpd anfon e-bost, nodwch: # setsebool -P httpd_can_sendmail 1
19. SELinux angen gwybod gwerthoedd rhesymegol ar gyfer galluogi/analluogi gosodiadau SELinux:
- I weld yr holl werthoedd boolaidd:
# getsebool -a - I weld disgrifiad o bob un:
# semanage boolean -l - I osod gwerth boolaidd:
# setsebool [_boolean_] [1|0] - Ar gyfer gosodiad parhaol, ychwanegwch
-P. Er enghraifft:# setsebool httpd_enable_ftp_server 1 -P
20. Polisïau/Ceisiadau SELinux gall gynnwys gwallau, gan gynnwys:
- Llwybrau cod anarferol
- Cyfluniadau
- Ailgyfeirio stdout
- Disgrifydd ffeil yn gollwng
- Cof gweithredadwy
- Llyfrgelloedd wedi'u hadeiladu'n wael
Tocynnau agored (peidiwch â chyflwyno adroddiad i Bugzilla; nid oes gan Bugzilla CLG).
21. Mae'n bosibl y bydd eich gwybodaeth yn cael ei pherygluos oes gennych barthau cyfyngedig yn ceisio:
- Llwytho modiwlau cnewyllyn
- Analluogi modd gorfodedig SELinux
- Ysgrifennwch at
etc_t/shadow_t - Newid rheolau iptables
22. Offer SELinux ar gyfer datblygu modiwlau polisi:
# yum -y install setroubleshoot setroubleshoot-server
Ailgychwyn neu ailgychwyn auditd ar ôl gosod.
23. Defnyddiwch
journalctl i ddangos rhestr o'r holl logiau sy'n gysylltiedig â setroubleshoot:
# journalctl -t setroubleshoot --since=14:20
24. Defnyddiwch journalctl i restru'r holl logiau sy'n gysylltiedig â thag SE penodolLinux. Er enghraifft:
# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
25. Pan fydd gwall SE yn digwyddLinux defnyddio log setroubleshoot cynnig nifer o atebion posibl.
Er enghraifft, o 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. Cofnodi: De-ddwyrainLinux cofnodi gwybodaeth mewn sawl lle:
- / var / log / messages
- /var/log/audit/audit.log
- /var/lib/setroubleshoot/setroubleshoot_database.xml
27. Logio: Dod o Hyd i Gwallau SELinux yn y log archwilio:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. I ddod o hyd i negeseuon SELinux Cache Fector Mynediad (AVC) ar gyfer gwasanaeth penodol:
# ausearch -m avc -c httpd
29. Cyfleustodau audit2allow yn casglu gwybodaeth o logiau o weithrediadau gwaharddedig ac yna'n cynhyrchu rheolau polisi caniatâd SELinux. Er enghraifft:
- I greu disgrifiad y gall pobl ei ddarllen o pam y gwrthodir mynediad:
# audit2allow -w -a - I weld rheol gorfodi math sy'n caniatáu mynediad gwrthodedig:
# audit2allow -a - I greu modiwl wedi'i deilwra:
# audit2allow -a -M mypolicy - Opsiwn
-Myn creu ffeil gorfodi math (.te) gyda'r enw penodedig ac yn llunio'r rheol mewn pecyn polisi (.pp):mypolicy.pp mypolicy.te - I osod modiwl personol:
# semodule -i mypolicy.pp
30. I ffurfweddu proses ar wahân (parth) i weithio yn y modd caniataol: # semanage permissive -a httpd_t
31. Os nad ydych am i'r parth fod yn ganiataol mwyach: # semanage permissive -d httpd_t
32. I analluogi pob parth caniataol: # semodule -d permissivedomains
33. Galluogi polisi MLS SELinux: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=caniatol
SELINUXTYPE=mls
Gwnewch yn siŵr bod y De-ddwyrainLinux yn gweithio mewn modd caniataol: # setenforce 0
Defnyddiwch sgript fixfilesi sicrhau bod y ffeiliau'n cael eu hail-labelu ar yr ailgychwyn nesaf:
# fixfiles -F onboot # reboot
34. Creu defnyddiwr gydag ystod MLS benodol: # useradd -Z staff_u john
Gan ddefnyddio'r gorchymyn useradd, mapio'r defnyddiwr newydd i ddefnyddiwr SE presennolLinux (yn yr achos hwn, staff_u).
35. I weld y gohebiaeth rhwng defnyddwyr SELinux и Linux: # semanage login -l
36. Diffiniwch ystod benodol ar gyfer y defnyddiwr: # semanage login --modify --range s2:c100 john
37. I gywiro label cyfeiriadur cartref y defnyddiwr (os oes angen): # chcon -R -l s2:c100 /home/john
38. I weld categorïau cyfredol: # chcat -L
39. I newid categorïau neu ddechrau creu un eich hun, golygwch y ffeil fel a ganlyn:
/etc/selinux/_<selinuxtype>_/setrans.conf
40. I redeg gorchymyn neu sgript mewn ffeil, rôl, a chyd-destun defnyddiwr penodol:
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-tcyd-destun ffeil-rcyd-destun rôl-ucyd-destun defnyddiwr
41. Cynwysyddion yn rhedeg gydag SE wedi'i analluogiLinux:
- Podman:
# podman run --security-opt label=disable … - Dociwr:
# docker run --security-opt label=disable …
42. Os oes angen i chi roi mynediad llawn i'r system i'r cynhwysydd:
- Podman:
# podman run --privileged … - Dociwr:
# docker run --privileged …
Ac yn awr rydych chi eisoes yn gwybod yr ateb. Felly os gwelwch yn dda: peidiwch â chynhyrfu a throwch SE ymlaenLinux.
Cyfeiriadau:
- by
- gan Dan Walsh
- by
- by
Ffynhonnell: hab.com
