Найти в Дзене
ИТ Проповедник

Практика № 3 - Мандатное управление доступом в Astra Linux SE 1.7.x. - работа с внешними носителями информации домене FreeIPA

Оглавление

+++++ Теория МРД доступна по ссылкам в статье и в видео +++++

+++++ Видео к этой статье +++++

Внешние накопители информации

В статье и видео посвящённой работе МРД с внешними носителями информации на локальном компьютере мы назначали классификационные метки на устройства в "Управлении политикой безопасности":

-2

В домене FreeIPA эти же параметры задаются в "Политика - Политика Parsec - Учтенные устройства":

-3

Перед добавлением устройства нужно создать группу (имя произвольно) в домене (Posix), которую нужно будет указать при добавлении устройства.

-4

Чтобы добавить новое устройство:

1. На странице "Политика - Политика Parsec - Учтенные устройства" нажимаем "Добавить" (делается на компьютере администратора)

-5

2. Открываем "Управление политикой безопасности" (делается на компьютере администратора). Добавляем носитель локально, как делали в статье и видео.

-6

3. И затем копируем правило (выбираете правило и нажимаете кнопку копировать)

-7

Локальную запись для регистрации устройства создавать не требуется. Этот диалог нужен только для того, чтобы сформировать фильтры для udev-правила, чтобы использовать эту информацию для регистрации устройства в домене.

4. Вставляем скопированное в поле "Атрибуты устройства" мастера добавления устройства в FreeIPA и нажимаем "Добавить".

-8

5. Затем можно войти в свойства нового устройства и настроить все те же параметры, которые мы настраивали локально на компьютере.

-9

В случае регистрации устройства в домене метки безопасности работают точно также, как и при создании регистрационной записи локально. В случае ext4 они назначаются только точке монтирования, т.е. устройство нельзя будет смонтировать, если у пользователя не будет прав на чтение точки монтирования.

Дискреционные права доступа применяются так же на точку монтирования. Хотя в FreeIPA это текстовое поле, вводить можно только число UGO, т.е. четыре цифры с лидирующим нулем, никаких rwx.

Информация о внешних накопителях хранится в домене. Когда пользователь входит в домен эта информация выгружается в SSSD и затем эту информацию запрашивает Parsec через свою реализацию NSS, так же как это делается с классификационными метками пользователя и метками целостности. И Parsec генерирует временные udev-правила для подключения этих устройств.

Общая механика следующая:

1. При входе пользователя на шаге
auth pam_sss информация об учтённых устройствах вычитывается в кеш sssd.
2. На шаге
session pam_parsec_mac в pam-стеке parsec вычитывает эту информацию из sssd через infopipe и генерирует временное udev-правило, описывающее это устройство.
3. При логауте временное правило удаляется.

Таким образом, рабочий сценарий:

1. Пользователь логинится.
2. Пользователь подключает флешку.
3. Пользователь монтирует флешку.
Если подключить флешку до входа в систему, работать не будет, потому-что не возникнет событие и не будет создано
udev-правило.

-10


Возможные причины отказа в монтировании:
1. У пользователя нет дискреционных прав на точку монтирования (бит
execute или 1 в числовом значении).
2. У пользователя нет прав на чтение точки монтирования согласно классификационной метке.
3. Информация об устройстве не доехала до клиента (очистить кеш
sssd или инвалидировать его).
4. Совсем редкий вариант - не работает связка
parsec - sssd (либо не запускается pam_parsec, либо в /etc/parsec/mswitch.conf прописаны источниками files)

Создание доменной группы пользователей для разрешения полуавтоматического монтирования

Для создания доменной группы пользователей, участие в которой разрешает пользователям полуавтоматическое монтирование:

  1. Создать доменную группу с именем floppy и номером 25. Это можно сделать в графическом web-интерфейсе FreeIPA или при наличии билета Kerberos администратора домена командой:
ipa group-add floppy --gid=25
-11

2. Права, предоставляемые участием в группе, будут применены при следующем входе пользователя. Включить пользователей, которым должна быть предоставлена возможность полуавтоматического монтирования, в созданную группу.  Это можно сделать в графическом web-интерфейсе FreeIPA или при наличии билета Kerberos администратора домена командой:

ipa group-add-member floppy --users=<имя_пользователя>
-12

Итого:

  • Доступ к устройствам выполняется через udev-правила, которые находятся в политиках Parsec (смотри теорию в статье и видео).
  • Перед началом регистрации устройства Вы должны на всех компьютерах заблокировать работу с неучтенными устройствами (смотри статью и практику).
  • При регистрации устройства необходимо выбрать атрибуты, например serial number (смотри статью и практику).
  • Если устройство отформатировано в файловую систему поддерживающую расширенные атрибуты, например EXT4, то на ней можно создавать каталоги и файлы с разными уровнями и категориями конфиденциальности. Если устройство отформатировано в файловую систему не поддерживающую расширенные атрибуты, например FAT32, то на все устройство фиксируется одно сочетание уровень/категория конфиденциальности. Несмотря на то, что файловая система NTFS поддерживает расширенные атрибуты и в теории может содержать классификационные метки, в текущей реализации Astra Linux это не работает. Дело в том, что NTFS монтируется через FUSE, который полностью запрещен в режиме с ненулевой классификационной меткой, поэтому устройства с файловой системой NTFS принудительно монтируются с нулевой меткой конфиденциальности. В текущей реализации Astra Linux флешки с NTFS нельзя использовать для хранения секретной информации.

Сценарий подготовки файловых систем ext4/xfs для работы c несколькими различными классификационными метками

multilevel.sh

#!/bin/bash
USERNAME="user"
DEVICE="/dev/sdc1"
mkfs.ext4 $DEVICE
mkdir -p /media/usb
mount $DEVICE /media/usb
#multilevel
pdpl-file 3:0:-1:ccnr /media/usb/
mkdir /media/usb/{0,1,2,3}
pdpl-file 0:0:0:0 /media/usb/0
pdpl-file 1:0:0:0 /media/usb/1
pdpl-file 2:0:0:0 /media/usb/2
pdpl-file 3:0:0:0 /media/usb/3
chown -R ${USERNAME}:${USERNAME} /media/usb/{0,1,2,3}
ls -la /media/usb/
pdp-ls -M /media/usb/
umount /media/usb
-13

Для подготовки файловой системы:

  1. Сохранить сценарий в файле multilevel.sh;
  2. Откорректировать значение переменной USERNAME, указав имя пользователя, для которого подготавливается устройство;
  3. Откорректировать значение переменной DEVICE, указав имя устройства;
  4. По необходимости откорректировать значения назначаемых классификационных меток;
  5. Сделать сценарий исполняемым выполнив команду:
sudo chmod +x multilevel.sh

6. Запустить сценарий от имени суперпользователя (суперпользователя с высоким уровнем целостности при включенном МКЦ):

sudo ./multilevel.sh
-14

✅✅✅Сказать "Спасибо" - dzen.ru/it_propovednik?donate=true