د مقالې ژباړه په ځانګړي ډول د کورس زده کونکو لپاره چمتو شوې وه
دلته به تاسو د ژوند، کائنات او په لینکس کې د ښه امنیت سره هرڅه په اړه مهم پوښتنو ته ځوابونه ترلاسه کړئ.
"مهم حقیقت چې شیان تل هغه څه ندي چې دوی ورته ښکاري عام پوهه ده ..."
-ډوګلا آډم، کهکشان ته د هیچ هایکر لارښود
خوندیتوب. د اعتبار زیاتوالی. لیکنه پالیسي. د Apocalypse sysadmin څلور آسونه. زموږ د ورځنیو دندو سربیره - نظارت ، بیک اپ ، پلي کول ، ترتیب کول ، تازه کول او نور - موږ د خپلو سیسټمونو امنیت هم مسؤل یو. حتی هغه سیسټمونه چیرې چې د دریمې ډلې چمتو کونکي وړاندیز کوي چې موږ پرمختللي امنیت غیر فعال کړو. دا د کار په څیر احساس کوي
د دې کړکېچ سره مخ، ځینې سیسټم مدیران پریکړه کوي چې واخلي
د ګیلیکسي لپاره د هیچ هایکر لارښود په روح کې ، دلته د کنټرول او کارولو په اړه مهم پوښتنو ته 42 ځوابونه دي.
1. SELinux د جبري لاسرسي کنټرول سیسټم دی ، پدې معنی چې هره پروسه لیبل لري. هر فایل، لارښود او سیسټم اعتراض هم لیبلونه لري. د پالیسۍ قواعد د ټیګ شوي پروسو او شیانو تر مینځ لاسرسی کنټرولوي. کرنل دا قواعد پلي کوي.
2. دوه خورا مهم مفهومونه دي: لیبل کول - نښه کول (فایلونه، پروسې، بندرونه، او نور) او د تطبیق ډول (کوم چې پروسې د ډولونو پراساس له یو بل څخه جلا کوي).
3. د لیبل سمه بڼه user:role:type:level
(اختیاري).
4. د څو سطحې امنیت چمتو کولو هدف (د څو کچې امنیت - MLS) د پروسې (ډومینونو) اداره کول د معلوماتو د امنیت کچې پراساس چې دوی به یې کاروي. د مثال په توګه، یو پټ بهیر نشي کولی لوړ پټ معلومات ولولي.
5. د څو کټګوریو امنیت ډاډمن کول (د څو کټګورۍ امنیت - MCS) ورته پروسې له یو بل څخه ساتي (د بیلګې په توګه، مجازی ماشینونه، د OpenShift انجنونه، SELinux سینڈ بکسونه، کانټینرونه، او نور).
6. په بوټ کې د SELinux حالتونو بدلولو لپاره د کرنل اختیارونه:
autorelabel=1
→ د سیسټم د ریبل کولو چلولو لامل کیږيselinux=0
← کرنل د SELinux زیربنا نه بارويenforcing=0
→ په اجازې حالت کې بار کول
7. که تاسو اړتیا لرئ چې ټول سیسټم بیا وګرځوئ:
# touch /.autorelabel
#reboot
که چیرې د سیسټم نښه کول لوی شمیر غلطۍ ولري، تاسو ممکن د بریا لپاره د تبصرې لپاره د اجازې حالت کې بوټ ته اړتیا ولرئ.
8. د دې لپاره چې وګورئ چې SELinux فعال شوی دی: # getenforce
9. په موقتي توګه د SELinux فعال/غیر فعالولو لپاره: # setenforce [1|0]
10. د SELinux حالت چک کول: # sestatus
11. د ترتیب فایل: /etc/selinux/config
12. SELinux څنګه کار کوي؟ دلته د اپاچي ویب سرور لپاره نښه کول یوه بیلګه ده:
- بائنری نمایش:
/usr/sbin/httpd→httpd_exec_t
- د تنظیم کولو لارښود:
/etc/httpd→httpd_config_t
- د ننوتلو فایل لارښود:
/var/log/httpd → httpd_log_t
- د منځپانګې لارښود:
/var/www/html → httpd_sys_content_t
- سکریپټ پیل کړئ:
/usr/lib/systemd/system/httpd.service → httpd_unit_file_d
- پروسې:
/usr/sbin/httpd -DFOREGROUND → httpd_t
- بندرونه:
80/tcp, 443/tcp → httpd_t, http_port_t
پروسه په شرایطو کې روانه ده httpd_t
، کولی شي د لیبل شوي څیز سره اړیکه ونیسي httpd_something_t
.
13. ډیری حکمونه یو دلیل مني -Z
د شرایطو لیدل، جوړول او بدلول:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
شرایط رامینځته کیږي کله چې فایلونه د دوی د اصلي لارښود د شرایطو پراساس رامینځته کیږي (د ځینو استثنااتو سره). RPMs کولی شي شرایط رامینځته کړي لکه څنګه چې د نصب کولو پرمهال.
14. د SELinux غلطیو څلور اصلي لاملونه شتون لري، کوم چې په لاندې ټکو کې 15-21 کې په تفصیل سره تشریح شوي:
- د لیبل کولو مسلې
- د هغه څه له امله چې SELinux ورته اړتیا لري پوه شي
- په SELinux پالیسي/ کاریال کې تېروتنه
- ستاسو معلومات ممکن زیانمن شي
15. د لیبل کولو ستونزه: که ستاسو فایلونه دننه وي /srv/myweb
په غلطه توګه نښه شوي، لاسرسی ممکن رد شي. دلته د دې د حل کولو لپاره ځینې لارې شتون لري:
- که تاسو لیبل پیژنئ:
# semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
- که تاسو د مساوي نښه کولو فایل پیژنئ:
# semanage fcontext -a -e /srv/myweb /var/www
- د شرایطو بیا رغونه (د دواړو قضیو لپاره):
# restorecon -vR /srv/myweb
16. د لیبل کولو ستونزه: که تاسو د کاپي کولو پرځای فایل حرکت وکړئ ، نو فایل به خپل اصلي شرایط وساتي. د دې ستونزې د حل لپاره:
- د لیبل سره د شرایطو کمانډ بدل کړئ:
# chcon -t httpd_system_content_t /var/www/html/index.html
- د لینک لیبل سره د شرایطو کمانډ بدل کړئ:
# chcon --reference /var/www/html/ /var/www/html/index.html
- شرایط بحال کړئ (د دواړو قضیو لپاره):
# restorecon -vR /var/www/html/
17. که SELinux تاسو اړتیا لرئ پوه شئدا چې HTTPD په 8585 پورټ کې اوریدل کیږي، SELinux ته ووایاست:
# semanage port -a -t http_port_t -p tcp 8585
18. SELinux تاسو اړتیا لرئ پوه شئ د بولین ارزښتونه چې د SELinux پالیسي برخې ته اجازه ورکوي چې د چلولو په وخت کې بدل شي پرته له دې چې د SELinux پالیسي له سره لیکل کیږي. د مثال په توګه، که تاسو غواړئ چې httpd بریښنالیک واستوئ، دننه کړئ: # setsebool -P httpd_can_sendmail 1
19. SELinux تاسو اړتیا لرئ پوه شئ منطقي ارزښتونه د SELinux ترتیباتو فعالولو / غیر فعالولو لپاره:
- د ټولو بولین ارزښتونو لیدلو لپاره:
# getsebool -a
- د هر یو توضیحاتو لیدلو لپاره:
# semanage boolean -l
- د بولین ارزښت ټاکلو لپاره:
# setsebool [_boolean_] [1|0]
- د دايمي نصبولو لپاره، اضافه کړئ
-P
. د مثال په توګه:# setsebool httpd_enable_ftp_server 1 -P
20. د SELinux تګلارې/ غوښتنلیکونه ممکن تېروتنې ولري، په شمول:
- غیر معمولي کوډ لارې
- CONFIGURACII
- د stdout بیا لیږل
- د دوتنې تشریح لیک
- د اجرا وړ حافظه
- کمزوری جوړ شوی کتابتون
خلاص ټکټونه (بګزیلا ته راپور مه وړاندې کوئ؛ بګزیلا هیڅ SLA نلري).
21. ستاسو معلومات ممکن زیانمن شيکه تاسو محدود ډومینونه لرئ هڅه کوئ:
- د کرنل ماډلونه پورته کړئ
- د پلي شوي SELinux حالت غیر فعال کړئ
- ته ولیکئ
etc_t/shadow_t
- د iptables قواعد بدل کړئ
22. د پالیسي ماډلونو رامینځته کولو لپاره د SELinux اوزار:
# yum -y install setroubleshoot setroubleshoot-server
ریبوټ یا بیا پیل کړئ auditd
د نصبولو وروسته.
23. کارول
journalctl
د ټولو اړوندو لاګونو لیست ښودلو لپاره setroubleshoot
:
# journalctl -t setroubleshoot --since=14:20
24. کارول journalctl
د ځانګړي SELinux ټګ سره تړلي ټول لاګ لیست کول. د مثال په ډول:
# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
25. که د SELinux تېروتنه رامنځته شي، نو لاګ وکاروئ setroubleshoot
ډیری ممکنه حلونه وړاندې کوي.
د مثال په توګه، څخه 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. ننوتل: SELinux معلومات په ډیری ځایونو کې ثبتوي:
- / var / log / پیغامونه
- /var/log/audit/audit.log
- /var/lib/setroubleshoot/setroubleshoot_database.xml
27. ننوتل: د پلټنې لاګ کې د SELinux غلطیو لټون:
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
28. د ځانګړي خدمت لپاره د SELinux لاسرسي ویکتور کیچ (AVC) پیغامونو موندلو لپاره:
# ausearch -m avc -c httpd
29. افادیت audit2allow
د منع شوي عملیاتو له لاګونو څخه معلومات راټولوي او بیا د SELinux اجازې پالیسۍ قواعد رامینځته کوي. د مثال په ډول:
- د انسان د لوستلو وړ توضیحاتو رامینځته کولو لپاره چې ولې لاسرسی رد شوی دی:
# audit2allow -w -a
- د یو ډول پلي کولو قاعدې لیدلو لپاره چې رد شوي لاسرسي ته اجازه ورکوي:
# audit2allow -a
- د دودیز ماډل جوړولو لپاره:
# audit2allow -a -M mypolicy
- غوراوي
-M
د ټاکل شوي نوم سره د ډول پلي کولو فایل (.te) رامینځته کوي او قواعد د پالیسۍ کڅوړې (.pp) کې تنظیموي:mypolicy.pp mypolicy.te
- د دودیز ماډل نصبولو لپاره:
# semodule -i mypolicy.pp
30. د اجازې په حالت کې کار کولو لپاره د جلا پروسې (ډومین) تنظیم کولو لپاره: # semanage permissive -a httpd_t
31. که تاسو نور نه غواړئ چې ډومین اجازه ولري: # semanage permissive -d httpd_t
32. د ټولو اجازه لرونکي ډومینونو غیر فعالولو لپاره: # semodule -d permissivedomains
33. د MLS SELinux پالیسي فعالول: # yum install selinux-policy-mls
в /etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
ډاډ ترلاسه کړئ چې SELinux په اجازې حالت کې روان دی: # setenforce 0
سکریپټ وکاروئ fixfiles
د دې لپاره چې ډاډ ترلاسه کړئ چې فایلونه په راتلونکي ریبوټ کې بیا تړل شوي دي:
# fixfiles -F onboot # reboot
34. د یو ځانګړي MLS سلسلې سره یو کارن جوړ کړئ: # useradd -Z staff_u john
د قوماندې په کارولو سره useradd
، نوی کارن د موجوده SELinux کارونکي سره نقشه کړئ (په دې حالت کې، staff_u
).
35. د SELinux او لینکس کاروونکو ترمنځ نقشه لیدلو لپاره: # semanage login -l
36. د کارونکي لپاره یو ځانګړی حد تعریف کړئ: # semanage login --modify --range s2:c100 john
37. د کارونکي کور لارښود لیبل سمولو لپاره (که اړتیا وي): # chcon -R -l s2:c100 /home/john
38. د اوسني کټګوریو لیدلو لپاره: # chcat -L
39. د کټګوریو بدلولو یا خپل ځان جوړول پیل کړئ، فایل په لاندې ډول سم کړئ:
/etc/selinux/_<
selinuxtype>
_/setrans.conf
40. په یوه ځانګړي فایل، رول، او د کارونکي شرایطو کې د قوماندې یا سکریپټ چلولو لپاره:
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-t
د فایل شرایط-r
د رول شرایط-u
د کارونکي شرایط
41. د SELinux غیر فعال شوي کانټینرونه روان دي:
- پوډمن:
# podman run --security-opt label=disable …
- ډاکر:
# docker run --security-opt label=disable …
42. که تاسو اړتیا لرئ کانټینر سیسټم ته بشپړ لاسرسی ورکړئ:
- پوډمن:
# podman run --privileged …
- ډاکر:
# docker run --privileged …
او اوس تاسو دمخه ځواب پوهیږئ. نو مهرباني وکړئ: مه ویره مه کوئ او SELinux فعال کړئ.
سرچینې:
SELinux byډان والش د SELinux پالیسي پلي کولو لپاره ستاسو لید لارښود هم د ډان والش لخواامنیت یوازې د مړو لپاره لینکس وده کړې byتوماس کامیرون د SELinux رنګ کولو کتاب byماریین ډفی د SELinux کارونکي او مدیر لارښود — د Red Hat Enterprise Linux 7
سرچینه: www.habr.com