LINUX.ORG.RU
решено ФорумAdmin

Понимание SElinux

 , , ,


0

1

Всем доброго времени суток. Пару дней ковыряю selinux, пытаюсь лучше, глубже вникнуть в настройку. Помогите, пожалуйста упорядочить знания.
У каждого файла, демона, сокета (короче у всего) есть контекст (пример: user_u:user_r:user_t:s0), на нём и строится вся политика безопасности. Каждого пользователя linux можно привязать к пользователю selinux (user_u (можно посмотреть командой semanage login -l)). У каждого пользователя selinux есть перечень ролей (пользователю selinux можно добавлять или удалять роли командой semanage -a -R newrole_r ouruser_u), как создать новую роль? И под конец, у каждой роли есть список типов (можно ли условно сказать, что тип это определённое действие, которое можно выполнить над объектом?, если это процесс (домен), то выполняется переход к другому типу?) Как создать новый тип ?, как добавить тип к роли ?, как прописывать правила для типов ?. Если кто знает как это делать ручками, вообще супер! (знаю про утилиту audit2allow/why, но хочется понять как она работает.) Заранее спасибо за помощь.
В гугл можно не посылать, прочитал и пересмотрел много информации, пытаюсь её упорядочить.

а ещё всякие pam'ы и прочая «гадость-радость»

Bad_ptr ★★★★ ()

AFAIK, новые роли и всё такое прописывается в политике. Нужно её писать, компилировать и загружать в твой selinux.

turtle_bazon ★★★★★ ()

Неправильно то, что систему типов оставил «под конец». Не с того конца заходишь.

Типы - это первичный механизм SELinux (MAC).
Самое главное понять, что доступ в SELinux дается не пользователям и ролям, а типам. Пользователям и ролям доступ не дается - они лишь могут еще больше его ограничить. Пользователи и роли - это вообще второстепенный механизм (RBAC), прикрученный сбоку к MAC.

Для простоты считай, что вообще нет никаких пользователей и ролей. Есть только типы. И контекст - это и есть тип. Точнее, тип - это самое важное, что есть в контексте.

Скорее всего, пользователи и роли тебе никогда не понадобятся.

bigbit ★★★★★ ()
Ответ на: комментарий от bigbit

Я бы вообще на этот лес с высока сначала посмотрел, как он выглядит. А то вы листья на деревьях рассматривает и веточки щупаете, а пытайтесь понять что такое лес.

Надо дать ответы на фундаментальные вопросы:

1. Цель мандатного контроля доступа, что может он чего не может дать стандартная модель защиты?

2. Если представить глубоко эшелонированную защиту ОС в виде линейки, где 0 первый уровень защиты N последний, то где находится (согласно его цели) мандатной контроль доступа? Распределить по этой линейке известные вам техники защиты ОС.

3. Почему мандатный контроль доступа один с немногих пригодных для систем, в которых работа более важна чем безопасность?

Мандатный контроль наверно самая дорогая техника защиты! И её стоит использовать когда все дешовые уже внедрены. Настраивать, только, мандатный контроль доступа и принебречь другими, грубая ошибка безопасности. Почему вы выбрали SeLinux от NSA? Есть ещё gradm от Grsecurity, он умеет сам писать правила, и сам обучатся, формат правил пригоден для чтения человеку и удобен для редактирования.

anonymous ()

Selinux дохерища простой, но требует некоторого понимания как работает ОС.

Если вкратце - есть 2 вида объектов - файлы (В линукс всё файл) и процессы + (юзеры, но это скорее небольшое отступление, лучше не бери их в голову), каждый объект принадлежит контексту, всегда только одному.

Объект взаимодействует с другим объектом, выполняя некоторые действия, действия сгрупированны в классы

file: read write create open execute, dir : open

Важная часть в формированиии логики это переход объекта из домена в домен. Например, есть объект - процесс bash, он запущен и висит в домене bash_t, когда он запускает файлик с диска, с контекстом our_app_exec_t в политике должно быть прописано правило преобразованиия:

type_transiotion bash_t our_app_exec_t our_app_t
Итоговый процесс будет запущен с контекстом our_app_t

Ну, а дальше всё банальнно:

allow/deny «тот кто делает» «тот над кем делают» : «имя класса» { действия };

Для облегчения написания новых политик, есть туева куча макросов, ещё посмотри команды sesearch и содержимое пакета selinux_docs

sparks ★★ ()

Все что нужно знать о selinux, это надо знать как его отключить.

anonymous ()

А кто может поделиться информацией по созданию, компиляции и загрузки в selinux политик ? Ищу ищу, но стоящей информации очень мало ((

topotyn ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.