ื’ื™ืœื™ื•ืŸ ื”ื•ื ืื” ืฉืœ SELinux ืœืžื ื”ืœื™ ืžืขืจื›ืช: 42 ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ื—ืฉื•ื‘ื•ืช

ืชืจื’ื•ื ื”ืžืืžืจ ื”ื•ื›ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืชืœืžื™ื“ื™ ื”ืงื•ืจืก "ืžื ื”ืœ ืœื™ื ื•ืงืก".

ื’ื™ืœื™ื•ืŸ ื”ื•ื ืื” ืฉืœ SELinux ืœืžื ื”ืœื™ ืžืขืจื›ืช: 42 ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ื—ืฉื•ื‘ื•ืช

ื›ืืŸ ืชืงื‘ืœื• ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ื—ืฉื•ื‘ื•ืช ืขืœ ื”ื—ื™ื™ื, ื”ื™ืงื•ื ื•ื”ื›ืœ ื‘ืœื™ื ื•ืงืก ืขื ืื‘ื˜ื—ื” ืžืฉื•ืคืจืช.

"ื”ืืžืช ื”ื—ืฉื•ื‘ื” ืฉื“ื‘ืจื™ื ื”ื ืœื ืชืžื™ื“ ืžื” ืฉื”ื ื ืจืื™ื ื”ื™ื ื™ื“ืข ื ืคื•ืฅ..."

-ื“ืื’ืœืก ืื“ืืžืก, ืžื“ืจื™ืš ื”ื˜ืจืžืคื™ืกื˜ ืœื’ืœืงืกื™ื”

ื‘ึผึฐื˜ึดื™ื—ื•ึผืช. ืืžื™ื ื•ืช ืžื•ื’ื‘ืจืช. ื”ึดืชื›ึผึทืชึฐื‘ื•ึผืช. ืžึฐื“ึดื™ื ึดื™ื•ึผืช. ืืจื‘ืขืช ืคืจืฉื™ ื”ืืคื•ืงืœื™ืคืกื” ืกื™ืกื“ืžื™ืŸ. ื‘ื ื•ืกืฃ ืœืžืฉื™ืžื•ืช ื”ื™ื•ืžื™ื•ืžื™ื•ืช ืฉืœื ื• - ื ื™ื˜ื•ืจ, ื’ื™ื‘ื•ื™, ื”ื˜ืžืขื”, ืชืฆื•ืจื”, ืขื“ื›ื•ืŸ ื•ื›ื•' - ืื ื• ืื—ืจืื™ื ื’ื ืขืœ ืื‘ื˜ื—ืช ื”ืžืขืจื›ื•ืช ืฉืœื ื•. ืืคื™ืœื• ื”ืžืขืจื›ื•ืช ืฉื‘ื”ืŸ ืกืคืง ื”ืฆื“ ื”ืฉืœื™ืฉื™ ืžืžืœื™ืฅ ืฉื ืฉื‘ื™ืช ืืช ื”ืื‘ื˜ื—ื” ื”ืžืฉื•ืคืจืช. ื–ื” ืžืจื’ื™ืฉ ื›ืžื• ืขื‘ื•ื“ื” ืื™ืชืŸ ื”ืื ื˜ ืžืชื•ืš "ืžืฉื™ืžื” ื‘ืœืชื™ ืืคืฉืจื™ืช".

ืžื•ืœ ื”ื“ื™ืœืžื” ื”ื–ื•, ื›ืžื” ืžื ื”ืœื™ ืžืขืจื›ืช ืžื—ืœื™ื˜ื™ื ืœืงื—ืช ื’ืœื•ืœื” ื›ื—ื•ืœื”, ื›ื™ ื”ื ื—ื•ืฉื‘ื™ื ืฉืœืขื•ืœื ืœื ื™ื™ื“ืขื• ืืช ื”ืชืฉื•ื‘ื” ืœืฉืืœื” ื”ื’ื“ื•ืœื” ืฉืœ ื”ื—ื™ื™ื, ื”ื™ืงื•ื ื•ื›ืœ ื–ื”. ื•ื›ืคื™ ืฉื›ื•ืœื ื• ื™ื•ื“ืขื™ื, ื”ืชืฉื•ื‘ื” ื”ื–ื• ื”ื™ื 42.

ื‘ืจื•ื— ืžื“ืจื™ืš ื”ื˜ืจืžืคื™ืกื˜ ืœื’ืœืงืกื™ื”, ื”ื ื” 42 ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ื—ืฉื•ื‘ื•ืช ื‘ื ื•ืฉื ืฉืœื™ื˜ื” ื•ืฉื™ืžื•ืฉ. SELinux ืขืœ ื”ืžืขืจื›ื•ืช ืฉืœืš.

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 ืขื•ื‘ื“? ืœื”ืœืŸ ืกื™ืžื•ืŸ ืœื“ื•ื’ืžื” ืขื‘ื•ืจ ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœ 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

ื”ืงืฉืจื™ื ื ื•ืฆืจื™ื ื›ืืฉืจ ืงื‘ืฆื™ื ื ื•ืฆืจื™ื ืขืœ ืกืžืš ื”ื”ืงืฉืจ ืฉืœ ืกืคืจื™ื™ืช ื”ืื‘ ืฉืœื”ื (ืœืžืขื˜ ื—ืจื™ื’ื™ื ืžืกื•ื™ืžื™ื). 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 ืืชื” ืฆืจื™ืš ืœื“ืขืชืฉ-HTTP ืžืงืฉื™ื‘ ื‘ื™ืฆื™ืื” 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 ืขืฉื•ื™ื™ื ืœื”ื›ื™ืœ ืฉื’ื™ืื•ืช, ื›ื•ืœืœ:

  • ื ืชื™ื‘ื™ ืงื•ื“ ื™ื•ืฆืื™ ื“ื•ืคืŸ
  • ืชืฆื•ืจื•ืช
  • ืžืคื ื” ืžื—ื“ืฉ ืกื˜ื“out
  • ื“ืœื™ืคื•ืช ืžืชืืจ ื”ืงื•ื‘ืฅ
  • ื–ื™ื›ืจื•ืŸ ื‘ืจ ื”ืคืขืœื”
  • ืกืคืจื™ื•ืช ืฉื ื‘ื ื• ื‘ืฆื•ืจื” ื’ืจื•ืขื”

ื›ืจื˜ื™ืกื™ื ืคืชื•ื—ื™ื (ืื™ืŸ ืœื”ื’ื™ืฉ ื“ื™ื•ื•ื— ืœื‘ื•ื’ื–ื™ืœื”; ืœื‘ื•ื’ื–ื™ืœื” ืื™ืŸ 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 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.

ืงื™ืฉื•ืจื™ื:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”