Система SELinux обеспечивает безопасность путём контроля обращений процессов к ресурсам операционной системы. 1 Процесс происходит в несколько шагов: 1
- Все субъекты (процессы) и объекты (файлы, системные вызовы и т. д.) помечаются специальными метками, которые называют контекстом безопасности. 1 Процессы помечаются во время запуска, файлы — во время создания или установки ОС, их метки хранятся в расширенных атрибутах ФС, системные вызовы — при компиляции модуля SELinux. 1
- Когда субъект пытается произвести какое-либо действие в отношении объекта, информация об этом действии поступает к обработчику SELinux. 1
- Обработчик смотрит на контексты безопасности субъекта и объекта и, сверяясь с написанными ранее правилами (так называемая политика), принимает решение о дозволенности действия. 1
- Если действие оказывается правомочным (политика его разрешает), объект (программа) продолжает работать в обычном режиме, в противном случае — она либо принудительно завершается, либо получает вежливый отказ. 1
С помощью SELinux можно:
- ограничить процесс в возможности обращения к тем или иным системным вызовам или файлам; 1
- контролировать то, как происходит системный вызов, какие при этом используются аргументы; 1
- запрещать или разрешать привязку процесса к определённым портам. 1
SELinux действует после классической модели безопасности Linux: через SELinux нельзя разрешить то, что запрещено через права доступа пользователей или групп. 2