SELinuxservice — различия между версиями
Andy (обсуждение | вклад) (→Общая информация) |
Andy (обсуждение | вклад) (→Общая информация) |
||
| Строка 55: | Строка 55: | ||
[root@vm-02 ~]# getenforce | [root@vm-02 ~]# getenforce | ||
Enforcing | Enforcing | ||
| + | [root@vm-02 ~]# | ||
| + | </syntaxhighlight> | ||
| + | Так же, информацию о работоспособности <code>SELinux</code> и загруженных политиках, можно получить при помощи команды <code>sestatus</code>: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [root@vm-02 ~]# sestatus -v | ||
| + | SELinux status: enabled | ||
| + | SELinuxfs mount: /sys/fs/selinux | ||
| + | SELinux root directory: /etc/selinux | ||
| + | Loaded policy name: targeted | ||
| + | Current mode: enforcing | ||
| + | Mode from config file: enforcing | ||
| + | Policy MLS status: enabled | ||
| + | Policy deny_unknown status: allowed | ||
| + | Max kernel policy version: 28 | ||
| + | |||
| + | Process contexts: | ||
| + | Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 | ||
| + | Init context: system_u:system_r:init_t:s0 | ||
| + | /usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023 | ||
| + | |||
| + | File contexts: | ||
| + | Controlling terminal: unconfined_u:object_r:user_devpts_t:s0 | ||
| + | /etc/passwd system_u:object_r:passwd_file_t:s0 | ||
| + | /etc/shadow system_u:object_r:shadow_t:s0 | ||
| + | /bin/bash system_u:object_r:shell_exec_t:s0 | ||
| + | /bin/login system_u:object_r:login_exec_t:s0 | ||
| + | /bin/sh system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0 | ||
| + | /sbin/agetty system_u:object_r:getty_exec_t:s0 | ||
| + | /sbin/init system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0 | ||
| + | /usr/sbin/sshd system_u:object_r:sshd_exec_t:s0 | ||
[root@vm-02 ~]# | [root@vm-02 ~]# | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 12:52, 18 января 2018
Конфигурирование SELinux для поддержки сервиса
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
bash-completion,policycoreutils,policycoreutils-python,policycoreutils-devel,setroubleshoot-server
Общая информация
SELinux представляет собой систему принудительного контроля доступа и позволяет разделить
пользовательские данные от сервисов которые были скомпрометированы. SELinux позволяет
определить какой процесс, к каким сущностям (файлы, директории, порты) может иметь доступ. Уровень доступа к сущностям
носит название контекст. Терминология SELinux:
| Название элемента | Описание |
|---|---|
| Policy | Набор правил, определяющих какой источник может иметь доступ к какой цели |
| Source domain | Объект, пытающийся получить доступ к цели. Обычно пользователь или процесс |
| Target domain | Сущность, к которой пытается получить доступ источник. Обычно файл или порт |
| Context | Метка безопасности, использующаяся для классификации объектов в SELinux |
| Rule | Конкретная часть политики, которая определяет какой источник имеет какие правила доступа к какой цели. |
| Lables | Тоже самое, что и контекст, определяет какой источник имеет какие правила доступа к какой цели. |
В системе SELinux может находится в 3 состояниях:
enforcing - Политики SELinux включены и применяются.
permissive - Политики SELinux включены, однако, вместо их применения, печатаются предупреждения. Данное поведение рекомендовано для отладки и поиска ошибок.
disabled - Политики SELinux не применяются. Не рекомендовано к использованию, ибо ведет к несдаче экзамена.
Данные настройки можно внести в конфигурационный файл /etc/sysconfig/selinux:
# 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 these two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targetedПри условии работоспособности SELinux, в командной строке его можно переключать между режимами enforcing и permissive при помощи команд getenforce/setenforce. Например:
[root@vm-02 ~]# getenforce
Enforcing
[root@vm-02 ~]# setenforce 0
[root@vm-02 ~]# getenforce
Permissive
[root@vm-02 ~]# setenforce 1
[root@vm-02 ~]# getenforce
Enforcing
[root@vm-02 ~]#Так же, информацию о работоспособности SELinux и загруженных политиках, можно получить при помощи команды sestatus:
[root@vm-02 ~]# sestatus -v
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
Process contexts:
Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Init context: system_u:system_r:init_t:s0
/usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023
File contexts:
Controlling terminal: unconfined_u:object_r:user_devpts_t:s0
/etc/passwd system_u:object_r:passwd_file_t:s0
/etc/shadow system_u:object_r:shadow_t:s0
/bin/bash system_u:object_r:shell_exec_t:s0
/bin/login system_u:object_r:login_exec_t:s0
/bin/sh system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0
/sbin/agetty system_u:object_r:getty_exec_t:s0
/sbin/init system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0
/usr/sbin/sshd system_u:object_r:sshd_exec_t:s0
[root@vm-02 ~]#