Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite купить дешевый 
компьютер родом из Dhgate.com

Lines Club

Ищем достойных соперников.

Библиотека сайта или "Мой Linux Documentation Project"

Серверы Linux. Часть VII. Система контроля доступа SELinux

Оригинал: Introduction to SELinux
Автор: Paul Cobbaut
Дата публикации: 24 мая 2015 г.
Перевод: A.Панин
Дата перевода: 15 июля 2015 г.

Глава 19. Знакомство с системой контроля доступа SELinux

19.12. Виртуальная файловая система /selinux

При активации SELinux будет создана новая виртуальная файловая система с именем /selinux. (Вы можете рассматривать ее как аналогичную таким файловым системам, как /proc и /dev).

[root@centos65 ~]# ls -l /selinux/
итого 0
-rw-rw-rw-.  1 root root    0 апр 12 19:40 access
dr-xr-xr-x.  2 root root    0 апр 12 19:40 avc
dr-xr-xr-x.  2 root root    0 апр 12 19:40 booleans
-rw-r--r--.  1 root root    0 апр 12 19:40 checkreqprot
dr-xr-xr-x. 83 root root    0 апр 12 19:40 class
--w-------.  1 root root    0 апр 12 19:40 commit_pending_bools
-rw-rw-rw-.  1 root root    0 апр 12 19:40 context
-rw-rw-rw-.  1 root root    0 апр 12 19:40 create
-r--r--r--.  1 root root    0 апр 12 19:40 deny_unknown
--w-------.  1 root root    0 апр 12 19:40 disable
-rw-r--r--.  1 root root    0 апр 12 19:40 enforce
dr-xr-xr-x.  2 root root    0 апр 12 19:40 initial_contexts
-rw-------.  1 root root    0 апр 12 19:40 load
-rw-rw-rw-.  1 root root    0 апр 12 19:40 member
-r--r--r--.  1 root root    0 апр 12 19:40 mls
crw-rw-rw-.  1 root root 1, 3 апр 12 19:40 null
-r--------.  1 root root    0 апр 12 19:40 policy
dr-xr-xr-x.  2 root root    0 апр 12 19:40 policy_capabilities
-r--r--r--.  1 root root    0 апр 12 19:40 policyvers
-r--r--r--.  1 root root    0 апр 12 19:40 reject_unknown
-rw-rw-rw-.  1 root root    0 апр 12 19:40 relabel
-r--r--r--.  1 root root    0 апр 12 19:40 status
-rw-rw-rw-.  1 root root    0 апр 12 19:40 user

Несмотря на то, что некоторые файлы из файловой системы /selinux имеют размер, равный нулю байт, они чаще всего содержат логические значения. Рассмотрите содержимое файла /selinux/enforce для установления того, работает ли SELinux в режиме принудительного использования политик ограничения доступа.

[root@RHEL5 ~]# ls -l /selinux/enforce 
-rw-r--r-- 1 root root 0 апр 29 08:21 /selinux/enforce
[root@RHEL5 ~]# echo $(cat /selinux/enforce) 
1

19.13. Сущность (identity)

Сущность пользователя SELinux (identity) отличается от идентификатора пользователя. Сущность пользователя является частью контекста безопасности и (посредством доменов) устанавливает круг действий, которые вы можете выполнять в системе. В примере ниже показано, что пользователь с именем root имеет сущность user_u.

[root@rhel55 ~]# id -Z
user_u:system_r:unconfined_t

19.14. Роль (role)

Роль пользователя SELinux (role) устанавливает домены, которые могут быть использованы. По умолчанию роль не предусматривает доступа к определенным доменам до момента явной авторизации.

19.15. Тип или домен (type, domain)

Контекст SELinux (context) является контекстом безопасности процесса. Тип SELinux (type) устанавливает действия, которые процессы могут выполнять. В примере ниже показан процесс init, выполняющийся с типом init_t, а также процесс mingetty, выполняющийся с типом getty_t.

[root@centos65 ~]# ps fax -Z | grep /sbin/init
system_u:system_r:init_t:s0         1 ?        Ss     0:00 /sbin/init
[root@centos65 ~]# ps fax -Z | grep getty_t
system_u:system_r:getty_t:s0   1307 tty1    Ss+   0:00 /sbin/mingetty /dev/tty1
system_u:system_r:getty_t:s0   1309 tty2    Ss+   0:00 /sbin/mingetty /dev/tty2
system_u:system_r:getty_t:s0   1311 tty3    Ss+   0:00 /sbin/mingetty /dev/tty3
system_u:system_r:getty_t:s0   1313 tty4    Ss+   0:00 /sbin/mingetty /dev/tty4
system_u:system_r:getty_t:s0   1320 tty5    Ss+   0:00 /sbin/mingetty /dev/tty5
system_u:system_r:getty_t:s0   1322 tty6    Ss+   0:00 /sbin/mingetty /dev/tty6

Тип SELinux (type) аналогичен домену SELinux (domain), но относится к директория и файлам, а не к процессам.

Сотни бинарных файлов также имеют типы:

[root@centos65 sbin]# ls -lZ useradd usermod userdel httpd postcat postfix
-rwxr-xr-x. root root system_u:object_r:httpd_exec_t:s0 httpd
-rwxr-xr-x. root root system_u:object_r:postfix_master_exec_t:s0 postcat
-rwxr-xr-x. root root system_u:object_r:postfix_master_exec_t:s0 postfix
-rwxr-x---. root root system_u:object_r:useradd_exec_t:s0 useradd
-rwxr-x---. root root system_u:object_r:useradd_exec_t:s0 userdel
-rwxr-x---. root root system_u:object_r:useradd_exec_t:s0 usermod

Порты также имеют контексты безопасности.

[root@centos65 sbin]# netstat -nptlZ | tr -s ' ' | cut -d' ' -f6-

Foreign Address State PID/Program name Security Context 
LISTEN 1096/rpcbind system_u:system_r:rpcbind_t:s0 
LISTEN 1208/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023 
LISTEN 1284/master system_u:system_r:postfix_master_t:s0 
LISTEN 1114/rpc.statd system_u:system_r:rpcd_t:s0 
LISTEN 1096/rpcbind system_u:system_r:rpcbind_t:s0 
LISTEN 1666/httpd unconfined_u:system_r:httpd_t:s0 
LISTEN 1208/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023 
LISTEN 1114/rpc.statd system_u:system_r:rpcd_t:s0 
LISTEN 1284/master system_u:system_r:postfix_master_t:s0 

Вы также можете получить список портов, управлением доступом к которым занимается SELinux.

[root@centos65 ~]# semanage port -l | tail
xfs_port_t                     tcp      7100
xserver_port_t                 tcp      6000-6150
zabbix_agent_port_t            tcp      10050
zabbix_port_t                  tcp      10051
zarafa_port_t                  tcp      236, 237
zebra_port_t                   tcp      2600-2604, 2606
zebra_port_t                   udp      2600-2604, 2606
zented_port_t                  tcp      1229
zented_port_t                  udp      1229
zope_port_t                    tcp      8021

19.16. Контекст безопасности (security context)

При комбинировании сущности, роли и домена или типа формируется контекст безопасности SELinux (security context). С помощью утилиты id вы можете ознакомиться со своим контекстом безопасности в формате сущность:роль:домен.

[paul@RHEL5 ~]$ id | cut -d' ' -f4
context=user_u:system_r:unconfined_t

Команда ls -Z выводит информацию о контексте безопасности файла в формате сущность:роль:тип.

[paul@RHEL5 ~]$ ls -Z test
-rw-rw-r--  paul paul user_u:object_r:user_home_t      test

Контекст безопасности процесса представлен как с помощью типа ресурса из директории /proc (а именно, соответствующего файла из директории /proc), так и с помощью домена ресурса (а именно, домена исполняющегося процесса). Давайте рассмотрим процесс init и соответствующую директорию /proc/1.

Процесс init исполняется в домене init_t.

[root@RHEL5 ~]# ps -ZC init
LABEL                             PID TTY          TIME CMD
system_u:system_r:init_t            1 ?        00:00:01 init

Директория /proc/1, содержащая файлы с относящимися к процессу init данными, имеет тип init_t.

[root@RHEL5 ~]# ls -Zd /proc/1/
dr-xr-xr-x  root root system_u:system_r:init_t         /proc/1/

То, что и доменом процесса init, и типом директории /proc/1 является init_t - не простое совпадение.

Не пытайтесь использовать команду chcon по отношению к поддиректориям директории /proc! Она не сработает.

19.17. Переход (transistion)

В ходе процесса перехода SELinux (transition) (также называемого процессом повторной маркировки ресурса SELinux (labelling)) устанавливается контекст безопасности ресурса. Процесс перехода к домену процесса осуществляется тогда, когда вы инициируете запуск процесса. Процесс перехода к типу файла осуществляется тогда, когда вы создаете файл.

Ниже приведен пример перехода к типу файла.

[pol@centos65 ~]$ touch test /tmp/test
[pol@centos65 ~]$ ls -Z test 
-rw-rw-r--. pol pol unconfined_u:object_r:user_home_t:s0 test
[pol@centos65 ~]$ ls -Z /tmp/test
-rw-rw-r--. pol pol unconfined_u:object_r:user_tmp_t:s0 /tmp/test

Предыдущий раздел: Оглавление Следующий раздел:
Глава 19. Знакомство с системой контроля доступа SELinux   19.18. Расширенные атрибуты файлов

Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют