Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8 лр

.docx
Скачиваний:
20
Добавлен:
30.11.2023
Размер:
94.08 Кб
Скачать

Лабораторная работа №8

Мандатное управление доступом

Практическая часть

Задание 1.

  1. Зайдите в систему администратором. Получите права root.\

sudo passwd root

и пароль.

sudo su

  1. Переименуйте уровни конфиденциальности:

0 — for_all

1 — secret

2 — very_secret

3 — very_important

  1. Создайте учетную запись для пользователя ivanov

    • минимальный уровень конфиденциальности — for_all

    • максимальный уровень конфиденциальности — very_secret

# Создание пользователя sudo useradd ivanov

# Установка пароля для пользователя sudo passwd ivanov

Создайте учетную запись для пользователя petrov

  • минимальный уровень конфиденциальности — for_all

  • максимальный уровень конфиденциальности — secret

Задание 2.

  1. Создайте каталог /home/project. Установите на каталог уровень конфиденциальности very_important и установите дополнительный атрибут ccnr.

  1. Создайте каталог /home/project/secret. Установите на каталог уровень конфиденциальности secret.

  1. Создайте каталог /home/project/very_secret. Установите на каталог уровень конфиденциальности very_secret.

mkdir /home/project/very_secret

pdpl-file very_important::: /home/project/very_secret

  1. Установите файловые списки управления доступом (ACL) и файловые списки управления доступом по умолчанию (default ACL) на каталоги /home/project/secret и /home/project/very_secret, позволяющие пользователям ivanov и petrov создавать и удалять файлы в этих каталогах и изменять содержимое созданных файлов.

setfacl: Утилита для установки списков управления доступом (ACL) в Linux.

Задание 3.

  1. Зайдите в систему под учетной записью ivanov с уровнем конфиденциальности secret.

su ivanov

sudo semanage login -a -s secret_u -r secret_r ivanov

semanage: Утилита для управления конфигурацией SELinux.

login: Этот подкомандный ключ используется для управления пользователями SELinux, основываясь на их учетных записях.

-a: Подкоманда, указывающая, что мы добавляем новую запись.

-s secret_u: Устанавливает уровень доступа (SELinux user) для пользователя. В данном случае, secret_u.

-r secret_r: Устанавливает роль SELinux для пользователя. Здесь используется роль secret_r.

ivanov: Это имя пользователя, для которого мы устанавливаем контекст безопасности SELinux.

  1. Создайте файл file1.txt в каталоге /home/project/secret. В этот файл добавьте строку ivanov. Сохраните файл.

# Перейдите в каталог /home/project/secret

cd /home/project/secret

# Создайте файл file1.txt

touch file1.txt

# Добавьте строку "ivanov" в файл file1.txt

echo "ivanov" > file1.txt

  1. Удалось ли создать, изменить и сохранить файл file1.txt?

да

nano file1.txt

  1. Виден ли каталог /home/project/very_secret?

да

  1. Зайдите под учетной записью ivanov в систему с уровнем конфиденциальности very_secret.

su ivanov

sudo: Команда, которая предоставляет привилегии суперпользователя (root) для выполнения следующей команды.

runcon: Утилита, используемая для запуска процесса с определенным контекстом безопасности.

-u very_secret_u: Опция, указывающая уровень доступа SELinux для нового контекста. В данном случае, это уровень very_secret_u.

su - ivanov: Команда, запускающая подновый контекст безопасности процесс переключения пользователя (su) на учетную запись ivanov.

  1. Создайте файл file2.txt в каталоге /home/project/very_secret. В этот файл добавьте строку ivanov. Сохраните файл.

# Перейти в каталог /home/project/very_secret

cd /home/project/very_secret

# Создать файл file2.txt

touch file2.txt

# Добавить строку "ivanov" в файл file2.txt

echo "ivanov" > file2.txt

  1. Удалось ли создать, и изменить и сохранить файл file2.txt?

  2. Виден ли каталог /home/project/secret?

  3. Виден ли файл /home/project/secret/file1.txt?

Задание 4.

  1. Добавьте в файл /home/project/secret/file1.txt строку ivanov2.

echo "ivanov2" >> /home/project/secret/file1.txt

  1. Удалось ли изменить содержимое этого файла?

sudo nano (адрес)

  1. Зайдите в систему под учетной записью пользователем petrov с уровнем конфиденциальности secret.

sudo semanage login -a -s secret_u -r secret_r petrov

  1. Добавьте в файл /home/project/secret/file1.txt строку petrov.

echo "petrov" >> /home/project/secret/file1.txt

  1. Удалось ли изменить содержимое этого файла?

  2. Можете ли Вы прочитать содержимое файла

/home/project/very_secret/file2.txt?

  1. Сделайте пользователя user2 администратором. Проверьте, что данный пользователь может выполнять команды от имени пользователя root.

sudo usermod -aG sudo user2

проверка:

sudo ls /root

usermod: Это утилита в Linux, используемая для изменения свойств учетных записей пользователей.

-aG sudo: Эти опции указывают на то, что мы добавляем пользователя в дополнительные группы. В данном случае, мы добавляем пользователя в группу sudo, что обычно дает права выполнения команд с привилегиями sudo (superuser).

Вопросы для проверки

  1. Из каких компонент состоит классификационная метка?

  2. На каталог установлен уровень конфиденциальности 2. Пользователь вошел в систему с уровнем 2 и собирается создать внутри этого каталога файл с уровнем конфиденциальности 1. Удастся ли это сделать?

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

Классификационная метка обычно состоит из нескольких компонентов:

Уровень доступа (или уровень конфиденциальности): Это числовое значение, которое указывает на степень конфиденциальности или важности информации.

Категория доступа (или категория конфиденциальности): Дополнительное описание характеристик информации.

Например, в системе с уровнями конфиденциальности от 0 до 3 и категориями A, B, C, классификационная метка может выглядеть как "2B" (уровень 2, категория B).

На каталог установлен уровень конфиденциальности 2. Пользователь вошел в систему с уровнем 2 и собирается создать внутри этого каталога файл с уровнем конфиденциальности 1. Удастся ли это сделать?

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

Утилиты для назначения мандатных уровней учетным записям пользователей:

В системах с мандатными уровнями безопасности, такими как SELinux или AppArmor, для назначения уровней доступа или ролей пользователям, вы можете использовать следующие утилиты:

semanage (SELinux Management Tool): Позволяет управлять конфигурацией SELinux, включая назначение уровней доступа пользователям.

setsebool (SELinux Boolean Settings): Используется для включения или отключения SELinux-булевых переменных, которые могут влиять на поведение политик безопасности.

usermod (для Linux Security Modules, LSM): Может использоваться для управления пользователями, в том числе назначения им ролей в LSM, если они используются.

Соседние файлы в предмете Операционные системы