Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Администрирование системы защиты SELinux

Рассмотрение традиционных решений по обеспечению безопасности и эффективной защиты операционных систем семейства Linux с помощью средств SELinux
Покупка
Артикул: 748314.01.99
К покупке доступен более свежий выпуск Перейти
Эта книга показывает, как значительно усилить безопасность операционной системы Linux и устранить имеющиеся уязвимости установленных приложений. Вы узнаете, как работает SELinux, как можно настроить ее под свои нужды и усилить с ее помощью защиту систем виртуализации, включающих технологию libvirt (sVirt) и контейнеризацию Docker. Также рассказывается об управляющих действиях, позволяющих улучшить безопасность конкретной системы с помощью принудительного контроля доступа - стратегии защиты, определяющей безопасность Linux уже много лет. Большинство возможностей системы защиты рассматривается на реальных примерах. Книга предназначена для администраторов операционной системы Linux, в задачу которых входит управление ее защищенностью.
Вермейлен, С. Администрирование системы зашиты SELinux : практическое руководство / С. Вермейлен ; пер. с анг. В. Л. Верещагина, О. К. Севостьяновой. - Москва : ДМК Пресс, 2020. - 300 с. - ISBN 978-5-97060-557-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210619 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Свен Вермейлен

Администрирование  
системы защиты SELinux

Sven Vermeulen

SELinux System 
Administration

Ward off traditional security permissions and effectively 
secure your Linux systems with SELinux

BIRMINGHAM - MUMBAI

Свен Вермейлен

Москва, 2020

Администрирование  
системы защиты SELinux

Рассмотрение традиционных решений 
по обеспечению безопасности и эффективной защиты 
операционных систем семейства Linux с помощью 
средств SELinux

УДК 004.451
ББК 32.972.1
В34

Вермейлен С.
В34 
Администрирование системы защиты SELinux / пер. с анг. В. Л. Верещагина, О. К. Севостьяновой. – М.: ДМК Пресс, 2020. – 300 с.: ил. 

ISBN 978-5-97060-557-8

Эта книга показывает, как значительно усилить безопасность операционной системы 
Linux и устранить имеющиеся уязвимости установленных приложений.
Вы узнаете, как работает SELinux, как можно настроить ее под свои нужды и усилить 
с ее помощью защиту систем виртуализации, включающих технологию libvirt (sVirt) и 
контейнеризацию Docker. Также рассказывается об управляющих действиях, позволяющих улучшить безопасность конкретной системы с помощью принудительного 
контроля доступа – стратегии защиты, определяющей безопасность Linux уже много лет. 
Большинство возможностей системы защиты рассматривается на реальных примерах.
Книга предназначена для администраторов операционной системы Linux, в задачу 
которых входит управление ее защищенностью.

УДК 004.451
ББК 32.972.1

Authorized Russian translation of the English edition of SELinux System Administration 
ISBN 978-1-78712-695-4 © Packt Publishing.
This translation is published and sold by permission of Packt Publishing, which owns or 
controls all rights to publish and sell the same.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-78712-695-4 (анг.) 
© Packt Publishing
 
© Дополнительный текст, Верещагин В. Л., 2020
ISBN 978-5-97060-557-8 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2020

Содержание

Об авторе ............................................................................................................13

О рецензентах ....................................................................................................15

Предисловие ......................................................................................................16

Глава 1. Фундаментальные концепции SELINUX ......................................21
1.1. Предоставление большей безопасности в Linux ..........................................21
1.1.1. Использование модулей безопасности Linux .......................................24
1.1.2. Расширение возможностей стандартного дискреционного  
разграничения доступа ....................................................................................25
1.1.3. Ограничение привилегий пользователя root ........................................27
1.1.4. Сокращение воздействия уязвимостей .................................................28
1.1.5. Включение возможностей SELi nux в операционной системе .............29
1.2. Маркировка всех ресурсов и объектов .........................................................31
1.2.1. Описание параметров безопасности .....................................................32
1.2.2. Принудительный доступ посредством типов функциональных  
ограничений .....................................................................................................35
1.2.3. Распределение по ролям наборов функциональных ограничений ....36
1.2.4. Разделение пользователей по ролям .....................................................38
1.2.5. Контроль информационных потоков посредством мандатного  
механизма .........................................................................................................39
1.3. Формирование и распределение политик ...................................................40
1.3.1. Создание политик SELi nux .....................................................................41
1.3.2. Распределение политик в виде модулей ...............................................43
1.3.3. Комплектация модулей в хранилище политик .....................................45
1.4. Различия между политиками ........................................................................45
1.4.1. Поддержка многоуровневой защиты (MLS) ..........................................46
1.4.2. Манера поведения с неизвестными разрешениями ............................46
1.4.3. Поддержка неограниченных доменов ...................................................47
1.4.4. Ограничение межпользовательского обмена .......................................48
1.4.5. Последовательные изменения версий политик ...................................49
1.4.6. Качественное изменение версий политик ............................................50
1.5. Заключение .....................................................................................................51

Глава 2. Режимы работы и регистрация событий ....................................53
2.1. Включение и выключение защиты SELi nux .................................................53
2.1.1. Установка глобального состояния защиты ............................................54

 Содержание

2.1.2. Переключение в рекомендательный и принудительный режимы .....55
2.1.3.  Использование параметров загрузки ядра ..........................................57
2.1.4. Отключение защиты SELi nux для отдельно взятого сервиса...............58
2.1.5. Определение приложений, активно взаимодействующих  
с SELi nux ............................................................................................................61
2.2. Регистрация событий и аудит в SELi nux.......................................................61
2.2.1. Последовательность контроля событий о нарушениях  
безопасности .....................................................................................................62
2.2.2. Исключение конкретных отказов в доступе из числа  
регистрируемых ................................................................................................64
2.2.3. Конфигурирование подсистемы контроля событий  
безопасности Linux ...........................................................................................65
2.2.4. Настройка локального системного регистратора событий ..................66
2.2.5. Разбор информации об отказах SELi nux ...............................................67
2.2.6. Другие типы событий, связанные с SELi nux .........................................72
2.2.7. Использование команды ausearch .........................................................76
2.3. Получение помощи при отказах ...................................................................77
2.3.1. Диагностика неисправности с помощью службы setroubleshoot ........77
2.3.2. Отправка электронной почты, когда случился отказ SELi nux .............80
2.3.3. Использование утилиты audit2why .......................................................81
2.3.4. Взаимодействие с журналом system ......................................................82
2.3.5. Использование здравого смысла ...........................................................83
2.4. Заключение .....................................................................................................85

Глава 3. Управление учетными записями пользователей ......................86
3.1. Параметры безопасности пользователей .....................................................86
3.1.1. Сложность допустимого набора функций .............................................87
3.1.2. Определение неограниченных доменов ...............................................89
3.2. Пользователи SELi nux и их роли ...................................................................90
3.2.1. Перечень сопоставлений пользователей с пользовательскими  
типами SELi nux .................................................................................................90
3.2.2. Сопоставление учетных записей с пользовательскими типами .........92
3.2.3. Настройка учетных записей относительно служб ................................93
3.2.4. Создание типов пользователей SELi nux ................................................94
3.2.5. Перечень типов допустимого набора функций у ролей .......................95
3.2.6. Управление категориями .......................................................................96
3.3. Управление ролями SELi nux ..........................................................................98
3.3.1. Настройки присвоения допустимых ролей пользователю ..................98
3.3.2. Проверка параметров безопасности при помощи утилиты  
getseuser ..........................................................................................................100
3.3.3. Подключение ролей с помощью команды newrole ............................100
3.3.4. Управление доступом к роли с помощью команды sudo ...................101
3.3.5. Переключение параметров безопасности  
посредством runcon ........................................................................................102

Содержание  7

3.3.6. Переключение на системную роль ......................................................102
3.4. SELi nux и PAM (подключаемые модули аутентификации) .......................104
3.4.1. Назначение параметров безопасности с помощью  
подключаемых модулей аутентификации ...................................................104
3.4.2. Запрещение доступа в рекомендательном режиме работы  
защиты ............................................................................................................105
3.4.3. Многоэкземплярность каталогов ........................................................106
3.5. Заключение ...................................................................................................107

Глава 4. Домены как допустимые наборы функций  
для процессов и контроль доступа  на уровне файлов .........................109
4.1. О параметрах безопасности файлов ...........................................................109
4.1.1. Получение информации о параметрах безопасности ........................110
4.1.2. Интерпретация наименований типов SELi nux ...................................111
4.2. Закрепление параметров безопасности за объектом  
и их игнорирование............................................................................................112
4.2.1. Наследование параметров безопасности по умолчанию ...................113
4.2.2. Правила преобразования типов и их вывод .......................................113
4.2.3. Копирование и перемещение файлов .................................................115
4.2.4. Временное изменение параметров безопасности файла ..................117
4.2.5. Установка категорий для файлов и каталогов ....................................118
4.2.6. Использование многоуровневой защиты для файлов .......................118
4.2.7. Резервное копирование и восстановление расширенных  
атрибутов ........................................................................................................119
4.2.8. Использование опций монтирования для установки  
параметров SELi nux ........................................................................................119
4.3. Формулировка параметров безопасности для файлов .............................121
4.3.1. Использование выражений, описывающих параметры  
безопасности ...................................................................................................121
4.3.2. Регистрация изменений параметров безопасности файлов .............123
4.3.3. Использование заказных типов ...........................................................125
4.3.4. Различные виды файлов file_contexts и их компиляция ....................126
4.3.5. Обмен локальными изменениями .......................................................127
4.4. Изменение параметров безопасности у файлов........................................127
4.4.1. Использование команд setfiles, rlpkg и fixfiles ....................................128
4.4.2. Изменение параметров безопасности на всей файловой системе ...128
4.4.3. Автоматическое приведение к заданным значениям  
изменившихся параметров безопасности  ...................................................129
4.5. Параметры безопасности процесса ............................................................130
4.5.1. Получение параметров безопасности процесса .................................130
4.5.2. Преобразование типа процесса ...........................................................131
4.5.3. Проверка соответствия параметров безопасности ............................133
4.5.4. Другие способы преобразования типов ..............................................134

 Содержание

4.5.5. Изначально заданные параметры в структуре идентификатора  
безопасности ...................................................................................................134
4.6. Определение границ возможных преобразований ...................................135
4.6.1. Очистка переменных окружения во время преобразования  
к другому типу ................................................................................................135
4.6.2. Невыполнение преобразований, когда нет ограничивающего  
родительского типа ........................................................................................137
4.6.3. Использование флага, исключающего новые привилегии  
у процесса........................................................................................................138
4.7. Типы, разрешения и ограничения ..............................................................139
4.7.1. Объяснение атрибутов типа .................................................................139
4.7.2. Запрос разрешений, предоставленных типу процесса .......................140
4.7.3. Рассмотрение наложенных ограничений ............................................142
4.8. Заключение ...................................................................................................143

Глава 5. Контроль сетевого взаимодействия ...........................................144
5.1. От контроля межпроцессного взаимодействия (IPC) до сокетов  
базовых протоколов  (TCP/UDP) транспортного уровня...................................144
5.1.1. Использование разделяемой памяти ..................................................145
5.1.2. Локальное взаимодействие, осуществляемое по каналам ................147
5.1.3. Обращение через сокеты домена UNIX ...............................................148
5.1.4. Рассмотрение сокетов netlink ..............................................................149
5.1.5. Действия с сокетами протоколов TCP и UDP ......................................150
5.1.6. Вывод списка сетевых соединений с параметрами безопасности ....152
5.2. Межсетевой экран и маркировка сетевых пакетов ...................................152
5.2.1. Вводные сведения о межсетевом экране netfilter ...............................153
5.2.2. Реализация маркировки сетевых пакетов и соединений ..................154
5.2.3. Назначение меток пакетам ..................................................................155
5.3. Промаркированные сети .............................................................................157
5.3.1. Резервная маркировка в NetLabel ........................................................158
5.3.2. Ограничение потоков данных на уровне сетевого интерфейса ........160
5.3.3. Ограничение потоков данных на уровне элементов сети .................160
5.3.4. Проверка однорангового потока..........................................................161
5.3.5. Применение управления в старом стиле ............................................162
5.4. Метки безопасности для IPsec ....................................................................163
5.4.1. Установка стандартного IPsec ..............................................................165
5.4.2. Подключение маркировки IPsec ..........................................................166
5.4.3. Использование Libreswan .....................................................................167
5.5. Технология маркировки сетей NetLabel с параметром CIPSO ..................168
5.5.1. Настройка сопоставлений потоков данных с доменами ...................169
5.5.2. Добавление сопоставлений для типов допустимого набора  
функций ..........................................................................................................170
5.5.3. Локальное использование параметра CIPSO ......................................171

Содержание  9

5.5.4. Поддержка опции безопасности для IPv6 ...........................................172
5.6. Заключение ...................................................................................................172

Глава 6. Поддержка sVirt и Docker .............................................................173

6.1. Виртуализация, защищенная SELi nux ........................................................173
6.1.1. Представление о виртуализации .........................................................173
6.1.2. Обзор рисков виртуализации ...............................................................175
6.1.3. Использование типов для объектов виртуальной  
инфраструктуры .............................................................................................176
6.1.4. Перенастраиваемое применение существующих типов  
виртуализации ................................................................................................177
6.1.5. Рассмотрение защиты различных категорий  ....................................179
6.2. Поддержка библиотеки libvirt .....................................................................180
6.2.1. Различные случаи маркировки ресурсов ............................................181
6.2.2. Оценка архитектуры libvirt ..................................................................181
6.2.3. Настройка libvirt для работы с sVirt .....................................................182
6.2.4. Использование статических параметров безопасности ....................184
6.2.5. Гибкая настройка параметров безопасности ......................................184
6.2.6. Использование разных мест хранения ................................................185
6.2.7. Интерпретация информации в поле вывода данных о метке ...........185
6.2.8. Управление доступными категориями................................................186
6.2.9. Поддержка интерпретирующих доменов ...........................................186
6.2.10. Изменение параметров безопасности, установленных  
по умолчанию .................................................................................................187
6.3. Защищенные контейнеры Docker ...............................................................188
6.3.1. Представление о защите контейнера ..................................................188
6.3.2. Интеграция системы защиты с контейнерами без sVirt ....................189
6.3.3. Перестраховка безопасности Docker средствами защиты sVirt ........190
6.3.4. Ограничение привилегий контейнера ................................................191
6.3.5. Применение различных параметров безопасности  
для контейнеров .............................................................................................193
6.3.6. Перемаркировка подключенного тома данных ..................................194
6.3.7. Понижение контроля со стороны SELi nux для специальных  
контейнеров ....................................................................................................195
6.3.8. Изменение параметров безопасности, установленных  
по умолчанию .................................................................................................195
6.4. Заключение ...................................................................................................196

Глава 7. D-Bus и systemd ................................................................................197

7.1. Фоновый процесс системы (systemd) ..........................................................197
7.2. Способ поддержки в systemd служб ............................................................198
7.2.1. Введение понятия модульных файлов.................................................198

 Содержание

7.2.2. Установка параметров безопасности SELi nux для какой-либо  
службы .............................................................................................................199
7.2.3. Использование переходных служб .......................................................200
7.2.4. Требование включения или отключения SELi nux  
для конкретной службы .................................................................................201
7.2.5. Перемаркировка файлов во время запуска службы ............................202
7.2.6. Использование активизации, основанной на сокетах ........................204
7.2.7. Управление доступом к операциям с модулями .................................205
7.3. Регистрация событий с помощью systemd .................................................206
7.3.1. Получение информации, относящейся к SELi nux ...............................206
7.3.2. Запрос событий, содержащих параметры безопасности SELi nux ......207
7.3.3. Интеграция диагностики неисправностей с журналом .....................207
7.4. Использование контейнеров systemd .........................................................209
7.4.1. Инициализация контейнеров systemd .................................................209
7.4.2. Использование специальных параметров безопасности SELi nux .....209
7.5. Управление файлами устройств ..................................................................210
7.5.1. Использование правил udev .................................................................210
7.5.2. Назначение метки SELi nux на узле устройства ...................................212
7.6. Взаимодействие с шиной сообщений D-Bus ..............................................212
7.6.1. Представление о взаимодействии между процессами D-Bus ............212
7.6.2. Контроль получения доступа к службам с помощью SELi nux ............215
7.6.3. Управление потоками сообщений .......................................................216
7.7. Заключение ...................................................................................................217

Работа с политиками SELi nux ......................................................................218
8.1. Логические параметры SELi nux ..................................................................218
8.1.1. Вывод списка логических параметров ................................................219
8.1.2. Изменение значений логических параметров ...................................220
8.1.3. Проверка влияния логического параметра .........................................221
8.2. Усиление политик SELi nux ..........................................................................222
8.2.1. Список модулей политики ...................................................................222
8.2.2. Загрузка и удаление модулей политики ..............................................223
8.2.3. Создание политик с использованием программы audit2allow ..........224
8.2.4. Использование говорящих за себя наименований для модулей  
политики .........................................................................................................226
8.2.5. Использование макрокоманд посреднической политики  
с программой audit2allow ..............................................................................227
8.2.6. Использование скрипта selocal ............................................................228
8.3. Создание модулей политик по специальным требованиям .....................229
8.3.1. Создание модулей SELi nux с помощью исходного языка  
описания политик ..........................................................................................230
8.3.2. Создание модулей SELi nux с помощью посреднического стиля  
описания политик ..........................................................................................231

К покупке доступен более свежий выпуск Перейти