Международная конференция разработчиков
и пользователей свободного программного обеспечения

Настройка и использование SELinux

Вячеслав Занько (Slavaz), Брест, Беларусь. slavazanko@gmail.com

LVEE 2009

SELinux ― это реализация системы принудительного контроля доступа, которая может работать параллельно с классической системой контроля доступа, используемой в Linux. SELinux изначально был разработан Агентством национальной безопасности США и затем был передан разработчикам открытого кода. В докладе рассматривается настройка политик безопасности SELinux в наиболее распространённых случаях.

знакомство с SELinux

В SELinux предусмотрено три типа политик безопасности:

  • целевая (targered) – защищает явно описанные системные процессы, оставляя остальные пользовательские процессы под юрисдикцией классической системы контроля доступа;
  • многоуровневая (MLS – Multi Level Security) – вводит для процессов и файлов иерархию уровней доступа;
  • строгая (strict) – реализует подход «что не разрешено, то запрещено».

Использование SELinux с целевой политикой безопасности получило наибольшее распространение.

В рамках действующей политики администратор может активировать разрешения/запрещения доступа для определенных процессов с помощью заранее встроенных переключателей (инструкции getsebool/setsebool).

настройка

Настрйока SELinux рассматривается на примере сервисов http, ftp, samba с переносом соответствующих файлов в каталоги /srv/http, /srv/ftp, /srv/samba. Специальными командами в расширенных атрибутах файловой системы на каталоги и файлы устанавливаются SELinux-метки, управляющие доступ к объектам.

создание собственных политик

На примере настройки httpd на использование ldap-аутентификации рассмотрено создание собственных политик SELinux. Эффективным средством формирования разрешающих правил на основе зажурналированных данных о происходивших ранее запретах доступа выполняет утилита audit2allow.

Также специфические политики безопасности могут быть реализованы путем написания собственных модулей благодаря реализованным в SELinux внешним функциям контроля доступа.

Рассматривается пример написания и использования правил SELinux для собственного приложения.