แกแขแแขแแแก แแแ แแแแแ แแแแแแแแ แกแแแชแแแแฃแ แแ แแฃแ แกแแก แกแขแฃแแแแขแแแแกแแแแก
แแฅ แแฅแแแ แแแแฆแแแ แแแกแฃแฎแแแก แแแแจแแแแแแแแ แแแแฎแแแแแ แชแฎแแแ แแแแก, แกแแแงแแ แแก แแ แงแแแแแคแแ แ Linux-แแก แจแแกแแฎแแ แแแฃแแฏแแแแกแแแฃแแ แฃแกแแคแ แแฎแแแแแ.
โแแแแจแแแแแแแแแ แกแแแแ แแแ, แ แแ แงแแแแแคแแ แ แงแแแแแแแแก แแกแ แแ แแ แแก, แ แแแแ แช แฉแแแก, แแแ แแแ แแ แแก แชแแแแแแโฆโ
-แฒแฃแแแแก แแแแแกแ, แแแขแแกแขแแแแ แแก แแแแแแแแแแ แแแแแฅแขแแแแกแแแแก
แฒฃแกแแคแ แแฎแแแแ. แกแแแแแแแแแแก แแแแ แแ. แแแแแฌแแ แ. แแแแแขแแแ. แแแแแแแแคแกแแก แแแฎแ แแฎแแแแ แ sysadmin. แฉแแแแ แงแแแแแแฆแแฃแ แ แแแแชแแแแแแก แแแ แแ - แแแแแขแแ แแแแ, แกแแ แแแแ แแ แแกแแแก แจแแฅแแแ, แแแแแ แแแ, แแแแคแแแฃแ แแชแแ, แแแแแฎแแแแ แแ แ.แจ. - แฉแแแ แแกแแแ แแแ แ แแแกแฃแฎแแกแแแแแแแ แฉแแแแ แกแแกแขแแแแแแก แฃแกแแคแ แแฎแแแแแแ. แแ แกแแกแขแแแแแกแแช แแ, แกแแแแช แแแกแแแ แแฎแแ แแก แแ แแแแแแแ แ แแแแ แฉแแแก แแแแแ แแแ แแแซแแแแ แแแฃแแ แฃแกแแคแ แแฎแแแแ. แกแแแฃแจแแแก แฐแแแแก
แแ แแแแแแแก แฌแแแแจแ, แแแแแแ แแ แกแแกแขแแแแก แแแแแแแกแขแ แแขแแ แ แแแแแฌแงแแแขแก แแแแฆแแก
แแแแแฅแขแแแแก แแแขแแกแขแแแแก แกแแฎแแแแซแฆแแแแแแแก แกแฃแแแกแแแแแแแแ, แแฅ แแแชแแแฃแแแ 42 แแแกแฃแฎแ แแแแจแแแแแแแแ แแแแฎแแแแแ แแแ แแแแกแ แแ แแแแแงแแแแแแก แจแแกแแฎแแ.
1. SELinux แแ แแก แแซแฃแแแแแแ แฌแแแแแแก แแแแขแ แแแแก แกแแกแขแแแ, แ แแช แแแจแแแแก, แ แแ แงแแแแ แแ แแชแแกแก แแฅแแก แแขแแแแขแ. แแแแแแฃแ แคแแแแก, แแแ แแฅแขแแ แแแก แแ แกแแกแขแแแแก แแแแแฅแขแก แแกแแแ แแฅแแก แแขแแแแขแแแ. แแแแแขแแแแก แฌแแกแแแ แแแ แแแแก แฌแแแแแแก แแแแแจแแฃแ แแ แแชแแกแแแกแ แแ แแแแแฅแขแแแก แจแแ แแก. แแแ แแแ แแฎแแ แชแแแแแแก แแ แฌแแกแแแก.
2. แแ แ แงแแแแแแ แแแแจแแแแแแแแแ แแแแชแแคแชแแแ: แแขแแแแขแแ แแแ - แแแ แแแ แแแ (แคแแแแแแ, แแ แแชแแกแแแ, แแแ แขแแแ แแ แ.แจ.) แแ แขแแแแก แแฆแกแ แฃแแแแ (แ แแแแแแช แแแแแแ แแแก แแ แแชแแกแแแก แแ แแแแแแแแกแแแ แขแแแแแแก แแแฎแแแแแ).
3. แแขแแแแขแแก แกแฌแแ แ แคแแ แแแขแ user:role:type:level
(แกแฃแ แแแแแกแแแแแ ).
4. แแ แแแแ แแแแแก แฃแกแแคแ แแฎแแแแแก แฃแแ แฃแแแแแงแแคแแก แแแแแแ (แแ แแแแ แแแแแก แฃแกแแคแ แแฎแแแแ - MLS) แแ แแก แแ แแชแแกแแแแก (แแแแแแแแแก) แแแ แแแ, แแแ แแแแ แแแแแงแแแแแฃแแ แแแแแชแแแแแแก แฃแกแแคแ แแฎแแแแแก แแแแแก แแแฎแแแแแ. แแแแแแแแแ, แกแแแแฃแแแ แแ แแชแแกแก แแ แจแแฃแซแแแ แฌแแแแแแฎแแก แแแแแแขแแ แกแแแแฃแแแ แแแแแชแแแแแ.
5. แแ แแแแแแแขแแแแ แแแก แฃแกแแคแ แแฎแแแแแก แฃแแ แฃแแแแแงแแคแ (Multi-Category Security - MCS) แแชแแแก แแกแแแแก แแ แแชแแกแแแก แแ แแแแแแแแกแแแ (แแแแแแแแแ, แแแ แขแฃแแแฃแ แ แแแแฅแแแแแ, OpenShift แซแ แแแแแ, SELinux sandboxes, แแแแขแแแแแ แแแ แแ แ.แจ.).
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? แแฅ แแ แแก แแแ แแแ แแแแก แแแแแแแแ Apache แแแ แกแแ แแแ แแกแแแแก:
- แแ แแแแแ แฌแแ แแแแแแแ:
/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
แแแแขแแฅแกแขแแแ แแแงแแแแแฃแแแ, แ แแแแกแแช แคแแแแแแ แแฅแแแแแ แแแแ แแจแแแแแ แแแ แแฅแขแแ แแแก แแแแขแแฅแกแขแแก แกแแคแฃแซแแแแแ (แแแ แแแแฃแแ แแแแแแแแแแกแแก แแแ แแ). RPM-แแแก แจแแฃแซแแแแ แแแแขแแฅแกแขแแแแก แแแงแแแแแ แแกแแแ, แ แแแแ แช แแแกแขแแแแชแแแก แแ แแก.
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-แแก แแแแแขแแแ/แแแแแแแชแแแแ แจแแแซแแแแ แจแแแชแแแแแก แจแแชแแแแแแก, แแแ แจแแ แแก:
- แแ แแฉแแแฃแแแแ แแแ แแแแแก แแแแแแแแ
- แแแแคแแแฃแ แแชแแแแ
- แแแแแแแกแแแแ แแแแ stdout
- แคแแแแแก แแฆแฌแแ แแก แแแแแแแ
- แจแแกแ แฃแแแแแแ แแแฎแกแแแ แแแ
- แชแฃแแแ แแจแแแแแฃแแ แแแแแแแแแแแแ
แฆแแ แแแแแแแแ (แแ แฌแแ แฃแแแแแแ แแแแแ แแจแ Bugzilla-แก; แแ แแ แแก SLA Bugzilla-แจแ).
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 Access Vector Cache (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-แแกแ แแ Linux-แแก แแแแฎแแแ แแแแแแก แจแแ แแก แแแแแฌแแ แแก แกแแแแฎแแแแ: # 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-แแก แแแแแขแแแแก แแฆแกแ แฃแแแแแกแแแแก แแแ แฃแแแจแแก แแแแแฃแกแแคแ แแฎแแแแแก แแแซแแแแ แแแฃแแ Linux แฃแแ แแแ แแแแแแแแแแแกแแแแก byแแแแแก แแแแแ แแแ SELinux แกแแฆแแแแ แ แฌแแแแ byแแแ แแแ แแแคแ SELinux แแแแฎแแแ แแแแแกแ แแ แแแแแแแกแขแ แแขแแ แแก แกแแฎแแแแซแฆแแแแแแ โ Red Hat Enterprise Linux 7
แฌแงแแ แ: www.habr.com