Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bosy.docx
Скачиваний:
45
Добавлен:
24.06.2017
Размер:
3.14 Mб
Скачать
  • /boot/grub/grub.conf – файл с конфигом для загрузчика GRUB.

  • В строке kernel, касающейся selinux, добавить enforcing=0 (постоянный Permissive) или selinux=0 (постоянный Disabled)

  • 31. Сист. Принуд. Упр-я дост. SeLinux. Об и суб дост. Назн-е и формат контекста без.

  • SELinux реализация системы принудительного контроля доступа. Разграничение доступа основывается на ограничении доступа процессов к ресурсам. Все разграничение доступа в ОС основывается на типах атрибутов доступа объектов и субъектов. В SELinux эти атрибуты называются security context или контекст без-ти. Объекты доступа то, к чему производится доступ: файлы; сокеты; network hosts; каналы, использующиеся для связи процессов друг с другом. Субъекты доступа та сущность, которая пытается получить доступ к объекту доступа. Субъект доступа – это процесс. Все объекты и субъекты имеют связанный с ними контекст без-ти. Контекст без-ти состоит из 3х частей: польз-ль, роль и тип. Обычно контекст без-ти отображается в след виде: user:role:type

  • Чтобы увидеть отображение контекста без-ти достаточно добавить опцию -Z в команду. Например: $ id -Z

  • joe:user_r:user_t.

  • В SELinux индентификатор type явл-ся главной частью контекста без-ти, которая опр-ет, разрешен ли доступ или нет. Идентификатор type процесса часто называют доменом. Идентификаторы user и role имеют малое влияние на политику разграничения доступа для type enforcement. По отн-ю к процессам user и role имеют большее значение, так как они исп-ся для контроля соотв-я между type и идентификатором польз-ля (а следовательно, с аккаунтами польз-лей Linux).

  • По отн-ю к объектам user и role практически не имеют влияния. По соглашению role объекта – обычно object_r, а идентификатор user объекта - обычно пользовательский идентификатор процесса, который создал этот объект.

  • Назначение контекста без-ти – сопоставить каждому объекту и субъекту в системе свою метку, которая будет однозначно идентифицировать права. На основе сравнения вырабатывается окончательное решение о разрешении доступа или о запрете.

  • Есть несколько схем реализации разграничения доступа в SELinux. Одна из этих схем – Type Enforcement – основной механизм контроля доступа, используемый в целевых политиках. Позволяет детально, на самом низком уровне управлять разрешениями. Самый гибкий, но и самый трудоемкий для системного администратора механизм.

  • В SELinux доступ к любым объектам д.б. явно разрешен. В SELinux запрещает доступ по умолчанию, это значит, что в SELinux нет суперпольз-ля по умолчанию, как root в Linux.

  • Разрешение доступа для определенного типа субъекта (для домена) к определенному типу объекта осущ-ся при помощи команды allow.

  • Команда allow принимает 4 аргумента: source type (обычно домен процесса, которому разрешаем доступ); target type (тип объекта, к которому разрешаем доступ); object class (класс объекта); permissions (по сути действия, которые субъект может совершать над объектом с указанными типом и классом)

  • Пример: allow user_t bin_t : file {read execute getattr};

  • - разрешить процессам с доменом user_t чтение, запуск на исполнение и получение атрибутов файлов с типом bin_t.

  • getattr позволяет процессу получать сведения об объекте (дату создания, время создания и т.д.).

  • Визуализация правила allow: Рассмотрим, как программа passwd использует Type Enforcement для разграничения доступа. Программа passwd должна иметь доступ для чтения и редактирования файла /etc/shadow. В Linux достаточно запустить passwd от root, в Type Enforcement же исп-ся более тонкая настройка – можно разрешить доступ к файлу /etc/shadow только программе passwd, вне зависимости от того, какой польз-ль ее запустил.

  • В данном примере мы ввели 2 идентификатора type: passwd_t (домен, который будет использовать программа passwd) и shadow_t (тип для файла /etc/shadow).

  • Рассмотрим команду allow подробнее: ее назначение – разрешить домену passwd_t доступ к файлу с типом shadow_t. Это нужно для того, чтобы разрешить процессу перемещать и создавать новый shadow файл.

  • На картинке выше можно видеть, что упр-е файлом shadow будет выполнено успешно, т.к. процесс имеет эффективный id root и потому что правило allow Type Enforcement разрешает данному домену процесса доступ к файлу shadow.

  • 32. Система принудит. упр-я доступом SELinux. Классы объектов ФС. Права доступа к обычному файлу (объект file). Назначение контекста файлам. Наследование по умолч-ю. Переход типа. Копир-е и перемещение файла внутри и за пределы ФС.

  • Классы объектов – категории каких-либо ресурсов, напр, files, sockets, а разрешения представляют собой доступ к этим ресурсами, напр, read, write, send….

  • Классы объектов:

  • Dir – директории

  • File – обычные файлы

  • Fd – дескрипторы файлов

  • Filesystem – Файловые системы

  • Lnk_file – Символьная ссылка (указатель на файл)

  • Process – процесс

  • System – Система в целом

  • Чтобы объявить класс объекта исп-ся оператор объявления: class class_name

  • Права доступа к классу file: append, create, entrypoint (file м.б. использован, как точка доступа к новому домену с помощью доменного перехода (об этом далее)), execute, link (создание жесткой ссылки), getattr, setattr, read, rename и т. д.

  • Изменение контекста без-ти файла

  • сhcon – изменяет контекст без-ти файла.

  • restorecon – восстанавливает контекст без-ти, определенный политикой.

  • Наследование контекста по умолчанию: Если процесс работает с каким-то контекстом и запускает новый процесс, то тот будет иметь тот же контекст. Файл или директория, созданные в директории с определенным контекстом, будут иметь тот же контекст.

  • Доменный переход – изменение польз-ля, роли или типа. Переход прописывается в политике без-ти. Условия разрешения доменного перехода:

  • Первоначальный домен должен иметь право execute на файл

  • allow user_t passwd_exec_t : file {execute getattr};

  • В контексте файла д.б. определен entrypoint к целевому домену

  • allow passwd_t passwd_exec_t : file entrypoint;

  • Первоначальный домен должен иметь разрешение переходить в целевой домен.

  • allow user_t passwd_t : process transition;

  • Пример: изменение пароля: если доменный тип user_t будет иметь возм-ть читать и записывать в файл с паролями, тогда любая программа сможет просматривать и изменять этот файл. Мы хотим, чтобы только программа с доменом passwd_t имела к нему доступ.

  • Копирование и перемещение файла внутри и за пределы файловой системы.

  • Если копировать файлы с помощью команды cp, то файл унаследует контекст без-ти от директории, в которую его копируют, поскольку он создает новый файл в целевой директории. С помощью опции –Z можно задать лэйбл (тип) файлу: –Z user:role:type.

  • Пример: cp -Z user_u:object_r:user_home_t foo /tmp/

  • Чтобы сохранить текущий контекст исп-ся cp –preserve=context

  • --context исп-ся чтобы изменить контекст без-ти копии.

  • cp –contest=system_u:object_r:samba_share_t:s0 file1 file2

  • При перемещении с помощью mv файлы сохраняют свой текущий контекст без-ти.

Соседние файлы в предмете Безопасность операционных систем