ืืืช ืืกืืืืช ืืืฆืืื ืืืืืจื ืฉื ืืขืจืืช ืืืคืขืื ืืื ืืงืก ืืืืฉืืจืื ืืืืืขืื, ื ืืืืื ืืฉืจืชืื ืืื ืืืืช ืืืืืื ืืืืืื ืืืื ืฉื ืืืืื, ืฉืืจืืชืื ืืืืฉืืืื ืงืฉืืจืื. ืืื ืื
ืจืงืข ืขื ืืืืืื ืืืืื ืฉื ืืื ืืงืก ื-SELinux
ืืืืื ืืฉืืคืจืช ืืื ืืงืก ืืื ืงืืืฆื ืฉื ืืืืื ืืื ืื ืื ื ืืืฉื ืืืืืกืกืื ืขื ืืืืืื ืืืื ืืืืืกืกื ืชืคืงืืืื ืืื ืืืื ืขื ืืขืจืืืช ืืื ืืงืก ืืคื ื ืืืืืื ืคืืื ืฆืืืืืื ืืืชืงื ืืช ืืืกืจืื ืืช ืฉื ืืงืจืช ืืืฉื ืฉืืงืื ืืขืช (DAC), ืืขืจืืช ืืืืืื ืืืกืืจืชืืช ืฉื ืืื ืืงืก. ืืงืืจ ืืคืจืืืงื ืืืขืื ืฉื ืืกืืื ืืช ืืืืืืื ืืืืื ืืืจื"ื, ืืืื ืคืืชื ืืฉืืจืืช ืืขืืงืจ ืขื ืืื ืืงืืื ืื Secure Computing Corporation ื-MITER, ืืื ืืกืคืจ ืืขืืืืช ืืืงืจ.
ืืืืืื ืืืืื ืฉื ืืื ืืงืก
Linus Torvalds ืืขืืจ ืืกืคืจ ืืขืจืืช ืืืื ืคืืชืืืื ืืืฉืื ืฉื NSA ืืื ืฉืืืืื ืืืืืื ืืืืืช ืืื ืืงืก ืืจืืฉืืช. ืืื ืชืืืจ ืกืืืื ืืืืืช, ืขื ืงืืืฆื ืฉื ืืืืจืืื ืืฉืืืื ืืคืขืืืืช ืขื ืืืืืืงืืื ืืงืืืฆื ืฉื ืฉืืืช ืืื ื ืืกืืืืื ืืืื ื ื ืชืื ืื ืฉื ืืืื ืืืืกืื ืืชืืื ืืช ืืืชืืืืืช. ืืืืจ ืืื ื ืืชื ืืืฉืชืืฉ ืืกืืืื ืื ืขื ืืื ืืืืืื ืืืื ืื ืืชื ืื ืืืขืื ื ืืื ืืืืฉื ืื ืืืื ืืืืื ืจืฆืื. LSM ื ืื ืก ืืืืืื ืืืืจืกืช ืืื ืืงืก 2.6 ืืฉื ืช 2003.
ืืกืืจืช ื-LSM ืืืืืช ืฉืืืช ืฉืืืจื ืืืื ื ื ืชืื ืื ืืงืจืืืืช ืืคืื ืงืฆืืืช ืืืจืื ืื ืงืืืืช ืงืจืืืืืช ืืงืื ืืืืื ืืื ืืชืืจื ืืืชื ืืืืฆืข ืืงืจืช ืืืฉื. ืื ืื ืืืกืืฃ ืคืื ืงืฆืืื ืืืืช ืืจืืฉืื ืืืืืื ืืืืื. ืืืฉืง /sys/kernel/security/lsm ืืืื ืจืฉืืื ืฉื ืืืืืืื ืคืขืืืื ืืืขืจืืช. ืืืื ืฉื LSM ืืืืืกื ืื ืืจืฉืืืืช ืฉื ืงืจืืืช ืืกืืจ ืืืฆืืื ื-CONFIG_LSM. ืชืืขืื ืืคืืจื ืขื hooks ืืืื ืืงืืืฅ ืืืืชืจืช include/linux/lsm_hooks.h.
ืชืช-ืืืขืจืืช LSM ืืคืฉืจื ืืืฉืืื ืืช ืืืื ืืืจืฆืื ืืืืื ืฉื SELinux ืขื ืืืชื ืืจืกื ืฉื ืืืืช ืืื ืืงืก ืืืฆืืื v2.6. ืืืขื ืืื, SELinux ืืคื ืืชืงื ืื ืคืงืื ืขืืืจ ืกืืืืช ืืื ืืงืก ืืืืืืืช ืื ืืื ืืืคืฆืืช ืืคืืคืืืจืืืช ืืืืชืจ: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.
ืืืืื ืืื ืืื ืฉื SELinux
- ืืืืช - ืืฉืชืืฉ SELinux ืืื ื ืืื ืืืืื ืืืฉืชืืฉ ืืจืืื ืฉื Unix/Linux; ืื ืืืืืื ืืืชืงืืื ืืืงืืื ืขื ืืืชื ืืขืจืืช, ืื ืฉืื ืื ืืืืืืื ืืืืืชื. ืื ืืฉืืื ืืื ืืงืก ืกืื ืืจืื ืืืื ืืืชืืื ืืืื ืื ืืืชืจ ื-SELinux. ืืืืช ื-SELinux ืืื ืืืง ืืืงืฉืจ ืืืืืื ืืืืื, ืฉืงืืืข ืืืืื ืชืืืืื ืืชื ืืืื ืืืืื ืื ืชืืื ืืืฆืืจืฃ.
- ืืืืืื ืื - ื-SELinux, ืชืืื ืืื ืืืงืฉืจ ืืืืฆืืข ืฉื ื ืืฉื, ืืืืืจ ืชืืืื. ืืืืืืื ืงืืืข ืืฉืืจืืช ืืช ืืืืฉื ืฉืืฉ ืืชืืืื. ืชืืื ืืื ืืขืฆื ืจืฉืืื ืฉื ืื ืชืืืืืื ืืืืืื ืืขืฉืืช ืื ืื ืชืืืื ืืืื ืืขืฉืืช ืขื ืกืืืื ืฉืื ืื. ืืื ืืืืืืืช ืืืืืืื ืื ืื sysadm_t ืื ืืืื ืืขืจืืช, ื-user_t ืฉืืื ืืืืืื ืืฉืชืืฉ ืจืืื ืืื ืืจืฉืืืช. ืืขืจืืช init ืคืืขืืช ืืืืืืื init_t, ืืืชืืืื ืื ืงืื ืคืืขื ืืืืืืื named_t.
- ืชืคืงืืืื - ืื ืฉืืฉืืฉ ืืืชืืื ืืื ืืืืืื ืื ืืืฉืชืืฉื SELinux. ืชืคืงืืืื ืงืืืขืื ืืืืื ืชืืืืื ืืฉืชืืฉ ืืืื ืืืฉืชืืื ืืืืืื ืกืืื ืืืืืืงืืื ืื ืืืืืื ืืืฉืช. ืื ืื ืื ืืงืจืช ืืืฉื ืื ืืื ืข ืืช ืืืืื ืฉื ืืชืงืคืืช ืืกืืื ืฉื ืืจืฉืืืช. ืชืคืงืืืื ื ืืชืืื ืืืืื ืืืืืื ืฉื ืืงืจืช ืืืฉื ืืืืกืกืช ืชืคืงืืืื (RBAC) ืืืฉืืฉ ื-SELinux.
- ืกืืืื - ืชืืื ืช ืจืฉืืืช ืืืืคืช ืกืื ืืืืงืฆื ืืืืืืืงื ืืงืืืขืช ืื ืืืื ืืืฉืช ืืืื. ืืืืื ืืืืืจืช ืืชืืื, ืืื ืฉืืชืืื ืื ืขื ืชืืืื, ืืืกืื ืื ืขื ืืืืืืงืืื ืืื ืกืคืจืืืช, ืงืืฆืื, ืฉืงืขืื ืืื'.
- ื ืืฉืืื ืืืคืฆืื - ืชืืืืืื ืื ื ืืฉืืื ืืคืืขืืื ืืืงืฉืจ ืืกืืื, ืื ืชืืื ืืืืื. ืืฉืืื ืืขืจืืช ืืคืขืื: ืงืืฆืื, ืกืคืจืืืช, ืฉืงืขืื ืืื', ืื ืืืืืืงืืื ืฉืืืืืกืื ืืื ืกืื ืืกืืื, ืืืืืื ืืืจืืช, ืจืืช ืคืจืืืืช.
- ืืืื ืืืช SELinux - SELinux ืืฉืชืืฉ ืืืืืื ืืืื ืืืช ืืื ืืืื ืขื ืืืขืจืืช. ืืืื ืืืช SELinux ืืืืืจื ืืช ืืืืฉื ืฉื ืืฉืชืืฉืื ืืชืคืงืืืื, ืชืคืงืืืื ืืืืืืื ืื ืืืืืืื ืื ืืกืืืื. ืจืืฉืืช, ืืืฉืชืืฉ ืืืจืฉื ืืงืื ืชืคืงืื, ืืืืจ ืืื ืืชืคืงืื ืืืจืฉื ืืืฉืช ืืืืืืื ืื. ืืืกืืฃ, ืืืืืืื ืืืืื ืืืืืช ืืืฉื ืจืง ืืกืืืื ืืกืืืืื ืฉื ืืืืืืงืืื.
LSM ืืืจืืืืงืืืจืช SELinux
ืืืจืืช ืืฉื, LSMs ืืื ื ืืืจื ืืื ืืืืืื ืืื ืืงืก ืื ืืชื ืื ืืืขืื ื. ืขื ืืืช, ืืื SELinux, ืืื ืืฉืืื ืืฉืืจืืช ืืงืจื ื. ืื ืฉืื ืื ืืงืื ืืืงืืจ ืฉื LSM ืืฆืจืื ืืืืืจ ืืืื ืืืฉ. ืืฉ ืืืคืขืื ืืช ืืืคืฉืจืืช ืืืชืืืื ืืืืืจืืช ืืืืื, ืืืจืช ืงืื ื-LSM ืื ืืืคืขื ืืืืจ ืืืชืืื. ืืื ืื ืืืงืจื ืื, ื ืืชื ืืืคืขืื ืืืชื ืขื ืืื ืืคืฉืจืืช ืืืขื ืืืชืืื ืฉื ืืขืจืืช ืืืคืขืื.
ืืืกื ืืช ืืืืงืืช LSM
LSM ืืฆืืื ื-hooks ืืคืื ืงืฆืืืช ืืืื ืฉืืืืืืช ืืืืืช ืจืืืื ืืืืช ืืืืืงืืช. ืืืช ืืชืืื ืืช ืืขืืงืจืืืช ืฉื LSMs ืืื ืฉืื ืืืขืจืืื. ืืคืืื, ืืืืืงืืช ืืกืื ืืจืืืืช ืขืืืื ืืืืฆืขืืช, ืืื ืฉืืื ืฉื LSM ืจืง ืืืกืืคื ืืงืจืืช ืืืงืจืืช ื ืืกืคืืช. ืืืฉืืขืืช ืืื ืฉืื ื ืืชื ืืืื ืืช ืืืืกืืจ. ืื ืืืฆื ืืืืืจ; ืื ืืชืืฆืื ืฉื ืืืืงืืช DAC ืฉืืจืชืืืช ืืื ืืฉื, ืื ืืขื ืืื ืืคืืื ืื ืืืืข ืืืืื ืฉื LSM.
SELinux ืืืืฆืช ืืช ืืจืืืืงืืืจืช ืืืืืื Flask ืฉื ืืขืจืืช ืืืคืขืื Fluke Research, ืืืืืื ืืช ืขืงืจืื ืืืื ืืืื ืืืืืืืช. ืืืืืช ืฉื ืืืฉื ืื, ืืคื ืฉืืขืื ืฉืื, ืืื ืืืขื ืืง ืืืฉืชืืฉ ืื ืืขืื ืจืง ืืช ืืืืืืืช ืื ืืืฆืืช ืืืืฆืืข ืืคืขืืืืช ืืืืืขืืืช. ืขืืงืจืื ืื ืืืืฉื ืืืืฆืขืืช ืืงืืืช ืืืฉื ืืืืืฆืช, ืืืื ืืงืจืช ืืืืฉื ื-SELinux ืืืืกืกืช ืขื ืืืื ื-domain => type.
ืืืืืช ืืืงืืืช ืืืฉื ืืคืืื, ื-SELinux ืืืืืืช ืืงืจืช ืืืฉื ืืืืืืช ืืืจืื ืืืื ื-DAC ืืืกืืจืชื ืืืฉืืฉ ืืืขืจืืืช ืืืคืขืื Unix/Linux. ืืืืืื, ื ืืชื ืืืืืื ืืช ืืกืคืจ ืืฆืืืช ืืจืฉืช ืฉืืืื ืืชืืืจ ืฉืจืช ื-ftp, ืืืคืฉืจ ืืชืืื ืืฉืื ืื ืฉื ืงืืฆืื ืืชืืงืืื ืืกืืืืช, ืื ืื ืืืืืง ืืืชื.
ืืืจืืืืื ืืขืืงืจืืื ืฉื SELinux ืื:
- ืฉืจืช ืืืืคืช ืืืื ืืืช - ืืื ืื ืื ืืขืืงืจื ืืืจืืื ืืงืจืช ืืืฉื.
- ืืกื ื ืชืื ืื ืฉื ืืืื ืืืช ืืืืืช ืืขืจืืช.
- ืืื ืืจืืงืฆืื ืขื ืืืืจื ืืืจืืขื LSM.
- Selinuxfs - Pseudo-FS, ืืื ื-/proc ืืืืชืงื ื-/sys/fs/selinux. ืืืืืืก ืืืืคื ืืื ืื ืขื ืืื ืืืืช ืืื ืืงืก ืืืื ืจืืฆื ืืืืื ืงืืฆืื ืืืืืืื ืืืืข ืกืืืืก SELinux.
- ืืืฉื ื-Vector Cache - ืื ืื ืื ืขืืจ ืืืืืจืช ืืคืจืืื.
ืืื SELinux ืขืืื
ืืื ืขืืื ืืื.
- ื ืืฉื ืืกืืื, ืืืื ืื SELinux, ืืืฆืข ืคืขืืื ืืืชืจืช ืขื ืืืืืืงื ืืืืจ ืืืืงืช DAC, ืืคื ืฉืืืฆื ืืชืืื ื ืืขืืืื ื. ืืงืฉื ืื ืืืืฆืืข ืคืขืืื ืขืืืจืช ืืืืืจื ืืืจืืขื LSM.
- ืืฉื, ืืืงืฉื, ืืื ืขื ืืงืฉืจ ืืืืืช ืื ืืฉื ืืืืืืืืงื, ืืืขืืจืช ืืืืืื SELinux Abstraction and Hook Logic, ืฉืืืจืื ืขื ืืืื ืืจืืงืฆืื ืขื ื-LSM.
- ืกืืืืช ืงืืืช ืืืืืืืช ืืืื ืืืืฉื ืฉื ื ืืฉื ืืืืืืืงื ืืื ืฉืจืช ืืืืคืช ืืืืื ืืืช ืืืื ืืงืื ื ืชืื ืื ื-SELinux AnHL.
- ืืื ืืงืื ืืืืืืช ืืืื ืืืฉื ืื ืืืื, ืฉืจืช ืืืืคืช ืืืืื ืืืช ืคืื ื ื-Access Vector Cache (AVC) ืืืฉื ื ืืืืืื ืขืืืจ ืืืืืื ืื ืคืืฆืื ืืืืชืจ.
- ืื ืื ื ืืฆื ืคืชืจืื ืืืื ืืืชืืื ืืืืืื, ืืืงืฉื ืืืขืืจืช ืืืกื ืื ืชืื ืื ืฉื ืืืื ืืืช ืืืืืื.
- ืชืืฆืืช ืืืืคืืฉ ืืืกื ืื ืชืื ืื ืื-AVC ืืืืืจืช ืืฉืจืช ืืืืคืช ืืืืื ืืืช.
- ืื ืืืืื ืืืช ืฉื ืืฆืื ืชืืืืช ืืช ืืคืขืืื ืืืืืงืฉืช, ืืคืขืืื ืืืชืจืช. ืืืจืช, ืืคืขืืื ืืกืืจื.
ื ืืืื ืืืืจืืช SELinux
SELinux ืคืืขื ืืืื ืืฉืืืฉื ืืฆืืื:
- ืืืืคื - ืืงืคืื ืขื ืืืื ืืืช ืืืืื.
- ืืชืืจ - ืืคืจืช ืืืืืืช ืืืชืจืช; ืืขืจื ืืชืืืื ื ืจืฉืืช ืืืืื.
- ืืืฉืืช - ืืืื ืืืช ืืืืืื ืืื ื ืืชืืงืฃ.
ืืชื ืืืื ืืจืืืช ืืืืื ืืฆื ื ืืฆื SELinux ืขื ืืคืงืืื ืืืื.
[admin@server ~]$ getenforce
Permissive
ืฉืื ืื ืืืฆื ืืคื ื ืืชืืื ืืืืฉ, ืืืฉื, ืืืืจืชื ืืืืืคื, ืื 1. ืืคืจืืืจ ืืืชืืจ ืืชืืื ืืงืื ืืืกืคืจื 0.
[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #ัะพ ะถะต ัะฐะผะพะต
ืืชื ืืืื ืื ืืฉื ืืช ืืช ืืืฆื ืขื ืืื ืขืจืืืช ืืงืืืฅ:
[admin@server ~]$ cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=ืืขื
ืืืืื ืขื setenfoce ืืื ืฉืืืฉืจ ืืขืจืืช ืืืคืขืื ืืืชืืืช, ืืฆื ื-SELinux ืืืืืจ ืืืชืื ืืขืจื ืฉื ืืคืจืืืจ SELINUX ืืงืืืฅ ืืชืฆืืจื. ืื ืืกืฃ, ืฉืื ืืืื ืืืืืคืช <=> ืืืฉืืชืช ื ืื ืกืื ืืชืืงืฃ ืจืง ืขื ืืื ืขืจืืืช ืงืืืฅ /etc/selinux/config ืืืืืจ ืืชืืื ืืืืฉ.
ืฆืคื ืืืื ืืฆื ืงืฆืจ:
[admin@server ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
ืืื ืืืฆืื ืชืืื ืืช ืฉื SELinux, ืืืง ืืืื ืืฉืืจืืช ืืกืื ืืจืืืื ืืฉืชืืฉืื ืืคืจืืืจ -Z.
[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL PID TTY TIME CMD
system_u:system_r:httpd_t:s0 2914 ? 00:00:04 httpd
system_u:system_r:httpd_t:s0 2915 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2916 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2917 ? 00:00:00 httpd
...
system_u:system_r:httpd_t:s0 2918 ? 00:00:00 httpd
ืืืฉืืืื ืืคืื ืืจืืื ืฉื ls -l, ืืฉื ื ืืกืคืจ ืฉืืืช ื ืืกืคืื ืืคืืจืื ืืื:
<user>:<role>:<type>:<level>
ืืฉืื ืืืืจืื ืืฆืืื ืืฉืื ืืื ืกืืืื ืืืืื ืืืืจืื ืืฉืืืื ืฉื ืฉื ื ืืืื ืืื:
- s0 - ืืืืืงืืช, ื ืืชื ืื ืืืจืืื ื ืืื-ืจืื-ืืืืื
- c0, c1โฆ c1023 - ืงืืืืจืื.
ืฉืื ืื ืชืฆืืจืช ืืืืฉื
ืืฉืชืืฉ ื-semodule ืืื ืืืขืื, ืืืืกืืฃ ืืืืกืืจ ืืืืืื SELinux.
[admin@server ~]$ semodule -l |wc -l #ัะฟะธัะพะบ ะฒัะตั
ะผะพะดัะปะตะน
408
[admin@server ~]$ semodule -e abrt #enable - ะฐะบัะธะฒะธัะพะฒะฐัั ะผะพะดัะปั
[admin@server ~]$ semodule -d accountsd #disable - ะพัะบะปััะธัั ะผะพะดัะปั
[admin@server ~]$ semodule -r avahi #remove - ัะดะฐะปะธัั ะผะพะดัะปั
ืงืืืฆื ืจืืฉืื ื ืื ืืกื ืฉื semanage ืืืืจ ืืช ืืฉืชืืฉ SELinux ืืืฉืชืืฉ ืืืขืจืืช ืืืคืขืื, ืืฉื ื ืืฆืื ืจืฉืืื. ืืืกืืฃ, ืืคืงืืื ืืืืจืื ื ืขื ืืืชื -r ืืกืืจื ืืช ืืืืคืื ืฉื ืืฉืชืืฉื SELinux ืืืฉืืื ืืช ืืขืจืืช ืืืคืขืื. ืืกืืจ ืขื ืืชืืืืจ ืขืืืจ ืขืจืื ืืืื MLS/MCS ื ืืฆื ืืกืขืืฃ ืืงืืื.
[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol
ืงืืืฆื ืืฉืชืืฉ semanage ืืฉืืฉ ืื ืืืื ืืืคืืืื ืืื ืืฉืชืืฉื SELinux ืืชืคืงืืืื.
[admin@server ~]$ semanage user -l
Labeling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
guest_u user s0 s0 guest_r
staff_u staff s0 s0-s0:c0.c1023 staff_r sysadm_r
...
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u
ืคืจืืืจื ืคืงืืื:
- -ืืืกืคื ืฉื ืขืจื ืืืคืื ืชืคืงืืืื ืืืชืื ืืืฉืืช;
- -ืจืฉืืืช ืืฉืชืืฉืื ืืชืคืงืืืื ืชืืืืื;
- -d ืืืืงืช ืขืจื ืืืคืื ืชืคืงืืื ืืฉืชืืฉ;
- -R ืจืฉืืื ืฉื ืชืคืงืืืื ืืืฆืืจืคืื ืืืฉืชืืฉ;
ืงืืฆืื, ืืฆืืืืช ืืขืจืืื ืืืืืื ืืื
ืื ืืืืื SELinux ืืกืคืง ืงืืืฆื ืฉื ืืืงื ืชืืื ืงืืฆืื, ืืื ืืชื ืืืื ืื ืืืืกืืฃ ืืืืื ืืฉืื ืืืืืช ืืฆืืจื. ืืืืืื, ืื ื ืจืืฆืื ืฉืืฉืจืช ืืืื ืืจื ื ืืืื ืืืืืืช ืืืฉื ืืชืืงืืืช /srv/www.
[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/
ืืคืงืืื ืืจืืฉืื ื ืจืืฉืืช ืืืื ืกืืืื ืืืฉืื, ืืืฉื ืืื ืืืคืกืช, ืื ืืืชืจ ื ืืื ืืืืืจื, ืืช ืกืืื ืืงืืฆืื ืืืชืื ืืืืืื ืื ืืืืืื.
ืืื ืื, ืืฆืืืืช TCP/UDP ืืกืืื ืืช ืืฆืืจื ืืื ืฉืจืง ืืฉืืจืืชืื ืืืชืืืืื ืืืืืื ืืืืืื ืืื. ืืืืืื, ืืื ืฉืฉืจืช ืืืื ืืจื ื ืืงืฉืื ืืืฆืืื 8080, ืขืืื ืืืคืขืื ืืช ืืคืงืืื.
[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080
ืืืกืคืจ ืืฉืืขืืชื ืฉื ืืืืืื SELinux ืืฉ ืคืจืืืจืื ืฉืืืืืื ืืงืืช ืขืจืืื ืืืืืื ืืื. ื ืืชื ืืจืืืช ืืช ืื ืืจืฉืืื ืฉื ืคืจืืืจืื ืืืื ืืืืฆืขืืช getsebool -a. ืืชื ืืืื ืืฉื ืืช ืขืจืืื ืืืืืื ืืื ืืืืฆืขืืช setsebool.
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off
ืกืื ื, ืงืื ืืืฉื ืืืืฉืง ืืืื ืืจื ื ืฉื Pgadmin
ืืืื ื ืกืชืื ืขื ืืืืื ืืขืฉืืช: ืืชืงื ื pgadmin7.6-web ื-RHEL 4 ืืื ืื ืื ืืช ืืกื ืื ืชืื ืื PostgreSQL. ืืืืื ื ืงืฆืช
ืื ืื ื ืืชืืืืื ืขื ืืืฉืืืื ืืืืคืืกืืื, ืืืืงืื /var/log/httpd/error_log. ืืฉ ืฉื ืืื ืขืจืืื ืืขื ืืื ืื.
[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690]
[timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.
ืืฉืื ืื, ืจืื ืื ืืื ืืื ืืงืก ืืชืคืชื ืืืื ืืืจืืฅ setencorce 0, ืืื ืืกืชืืื. ืืืขื ืืืืช, ืขืฉืืชื ืืืืืง ืืช ืื ืืคืขื ืืจืืฉืื ื. ืื ืืืืื ืื ืืืฆื, ืืื ืจืืืง ืืืืืืช ืืืื ืืืืชืจ.
ืืืจืืช ืืขืืฆืืืื ืืืกืืจืืืื, SELinux ืืืื ืืืืืช ืืืืืืชื ืืืฉืชืืฉ. ืคืฉืื ืืชืงื ืืช ืืืืืช setroubleshoot ืืืฆื ืืช ืืืื ืืืขืจืืช.
[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd
ืฉืื ืื ืฉืืฉ ืืืคืขืื ืืืืฉ ืืช ืฉืืจืืช ื-audid ืืืืคื ืื, ืืื ืืืืฆืขืืช systemctl, ืืืจืืช ืื ืืืืืช ืฉื systemd ืืืขืจืืช ืืืคืขืื. ืืืืื ืืืขืจืืช ืืฆืืื ืื ืจืง ืขืืืืช ืืืกืืื, ืืื ืื ืืกืืื ื ืืจื ืืืชืืืจ ืขื ืืืืกืืจ.
ืื ื ืืืฆืขืื ืืช ืืคืงืืืืช ืืืืืช:
[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1
ืื ืื ื ืืืืงืื ืืืฉื ืืืฃ ืืืื ืืจื ื pgadmin4-web, ืืื ืขืืื.
ืืงืืจ: www.habr.com