8 лр
.docxЛабораторная работа №8
Мандатное управление доступом
Практическая часть
Задание 1.
Зайдите в систему администратором. Получите права root.\
sudo passwd root
и пароль.
sudo su
Переименуйте уровни конфиденциальности:
0 — for_all
1 — secret
2 — very_secret
3 — very_important
Создайте учетную запись для пользователя ivanov
минимальный уровень конфиденциальности — for_all
максимальный уровень конфиденциальности — very_secret
# Создание пользователя sudo useradd ivanov
# Установка пароля для пользователя sudo passwd ivanov
Создайте учетную запись для пользователя petrov
минимальный уровень конфиденциальности — for_all
максимальный уровень конфиденциальности — secret
Задание 2.
Создайте каталог /home/project. Установите на каталог уровень конфиденциальности very_important и установите дополнительный атрибут ccnr.
Создайте каталог /home/project/secret. Установите на каталог уровень конфиденциальности secret.
Создайте каталог /home/project/very_secret. Установите на каталог уровень конфиденциальности very_secret.
mkdir /home/project/very_secret
pdpl-file very_important::: /home/project/very_secret
Установите файловые списки управления доступом (ACL) и файловые списки управления доступом по умолчанию (default ACL) на каталоги /home/project/secret и /home/project/very_secret, позволяющие пользователям ivanov и petrov создавать и удалять файлы в этих каталогах и изменять содержимое созданных файлов.
setfacl: Утилита для установки списков управления доступом (ACL) в Linux.
Задание 3.
Зайдите в систему под учетной записью 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.
Создайте файл 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
Удалось ли создать, изменить и сохранить файл file1.txt?
да
nano file1.txt
Виден ли каталог /home/project/very_secret?
да
Зайдите под учетной записью ivanov в систему с уровнем конфиденциальности very_secret.
su ivanov
sudo: Команда, которая предоставляет привилегии суперпользователя (root) для выполнения следующей команды.
runcon: Утилита, используемая для запуска процесса с определенным контекстом безопасности.
-u very_secret_u: Опция, указывающая уровень доступа SELinux для нового контекста. В данном случае, это уровень very_secret_u.
su - ivanov: Команда, запускающая подновый контекст безопасности процесс переключения пользователя (su) на учетную запись ivanov.
Создайте файл 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
Удалось ли создать, и изменить и сохранить файл file2.txt?
Виден ли каталог /home/project/secret?
Виден ли файл /home/project/secret/file1.txt?
Задание 4.
Добавьте в файл /home/project/secret/file1.txt строку ivanov2.
echo "ivanov2" >> /home/project/secret/file1.txt
Удалось ли изменить содержимое этого файла?
sudo nano (адрес)
Зайдите в систему под учетной записью пользователем petrov с уровнем конфиденциальности secret.
sudo semanage login -a -s secret_u -r secret_r petrov
Добавьте в файл /home/project/secret/file1.txt строку petrov.
echo "petrov" >> /home/project/secret/file1.txt
Удалось ли изменить содержимое этого файла?
Можете ли Вы прочитать содержимое файла
/home/project/very_secret/file2.txt?
Сделайте пользователя user2 администратором. Проверьте, что данный пользователь может выполнять команды от имени пользователя root.
sudo usermod -aG sudo user2
проверка:
sudo ls /root
usermod: Это утилита в Linux, используемая для изменения свойств учетных записей пользователей.
-aG sudo: Эти опции указывают на то, что мы добавляем пользователя в дополнительные группы. В данном случае, мы добавляем пользователя в группу sudo, что обычно дает права выполнения команд с привилегиями sudo (superuser).
Вопросы для проверки
Из каких компонент состоит классификационная метка?
На каталог установлен уровень конфиденциальности 2. Пользователь вошел в систему с уровнем 2 и собирается создать внутри этого каталога файл с уровнем конфиденциальности 1. Удастся ли это сделать?
Какие утилиты можно использовать для назначения возможных мандатных уровней учетным записям пользователей?
Классификационная метка обычно состоит из нескольких компонентов:
Уровень доступа (или уровень конфиденциальности): Это числовое значение, которое указывает на степень конфиденциальности или важности информации.
Категория доступа (или категория конфиденциальности): Дополнительное описание характеристик информации.
Например, в системе с уровнями конфиденциальности от 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, если они используются.