Пакет parsec-kiosk2
Пакет parsec-kiosk2 содержит инструменты для ограничения возможностей, предоставляемых непривилегированным пользователям (т.н. user confinement) и представляет собой обновлённую версию пакета parsec-kiosk.
Пакет входит в состав обновления ОС СН Смоленск 1.6, и устанавливается по умолчанию при установке обновления безопасности № 20190912SE16
Кроме того, установка пакета возможна на любой системе Astra Linux (в том числе на ОС ОН Орёл).
Загрузка профилей в модуль ядра
При установке пакета parsec-kiosk2 в PAM-стек (в файл /etc/pam.d/common-session) добавляется вызов pam_exec для инструмента ppfsm, обеспечивающего загрузку профилей в модуль ядра:
Информация |
---|
session required pam_exec.so seteuid /usr/lib/parsec/bin/ppfsm.tcl |
Если в системе не установлен модуль parsec с поддержкой user confinement, вызов ppfsm немедленно завершается с кодом возврата "успех", не совершая никаких действий.
Графический инструмент для управления профилями
Дополнительно при установке пакета parsec-kiosk2 устанавливается обновлённый графический инструмент для управления профилями fly-admin-kiosk для управления профилями. После установки этот инструмент доступен через систему графических меню:
Информация |
---|
"Пуск" - "Панель управления" - "Безопасность" - "Системный киоск". |
Инструмент позволяет включать и отключать режим киоска:
- через графическое меню "Правка" - "Включить режим киоска"
- или кнопкой с изображением ключей в панели кнопок.
Кроме того, инструмент позволяет:
- Изменять содержимое файлов профилей (на снимке экрана приведено содержимое стандартного профиля fly-desktop, включающего стандартный профиль fly-unlock);
- Создавать и изменять профили пользователей, в том числе:
- Путём включения в профиль пользователя стандартных профилей (секция рабочего окна "Включить профиль");
- Путём генерации набора файлов из трассировки приложения:
- Системного (меню "Правка" - "Создать системный профиль для приложения");
- Выполняемого от имени пользователя (кнопка "Добавить файлы из") ;
- Путём копирования существующего (типового) профиля пользователя.
Создание профиля пользователя
Для создания профиля пользователя:
- Выбрать в левой часть окна приложения пункт "Профили пользователей" и выбрать в меню "Правка" - "Добавить" или нажать кнопку со знаком "+" в панели кнопок;
- В открывшемся окне ввести имя пользователя и нажать кнопку "да";
Добавление контролируемого файла к профилю пользователя
- Выбрать в левой часть окна приложения нужного пользователя (профиль пользователя должен быть ранее добавлен в приложение, см. предыдущий пункт);
- Выбрать в меню пункт "Правка" - "Вставить файл" или нажать кнопку "+" в панели кнопок;
- В открывшемся окне выбрать файл и нажать кнопку "Открыть";
- В появившейся записи параметров контроля файла выбрать нужные параметры;
- Выбрать пункт меню "Файл" - "Сохранить" или нажать кнопку с изображением дискеты в панели кнопок;
Включение системных профилей в профиль пользователя
Для включения системных профилей в профиль пользователя:
- Выбрать соответствующего пользователя в списке пользователей;
- Отметить нужные профили в нижнем правой части экрана приложения (часть "Включить профиль");
- Выбрать пункт меню "Файл" - "Сохранить" или нажать кнопку с изображением дискеты в панели кнопок;
Включение из командной строки ограничений пользователя при установленном модуле ядра
Включить контроль доступа и применять ограничения на работу с файлами при нарушении установленных фильтров доступа:
Command echo 1 > /sys/module/parsec/parameters/uc_enforce
Включить протоколирование нарушений установленных фильтров доступа:
Command echo 1 > /sys/module/parsec/parameters/uc_complain
Профили пакета parsec-kiosk2
Файлы с профилями parsec-kiosk2 располагаются в каталоге /etc/parsec/kiosk2-profiles/.
При установке пакета в этот каталог устанавливается набор типовых профилей.
Синтаксис профилей киоска
"Современный" / базовый
Информация |
---|
+file <r/w/c> <u/o>: <filename> |
Разрешить чтение/запись/создание владельцу/невладельцу. В имени файла могут использоваться метасимволы, например:
Информация |
---|
+file ? u: ** (разрешить создание, запись, чтение владельцам файлов). |
Вариант с чтением ссылки:
Информация |
---|
+link <r/w/c> <u/o>: <filename> |
Имя файла должно соответствовать существующей символьной ссылке. Целевой файл для ссылки (который не обязан существовать в момент загрузки профиля) добавляется в список доступных. Метасимволы в имени файла (ссылки) не интерпретируются.
Информация |
---|
+link r o /lib/ld-linux.so.2 |
Совместимый с parsec-kiosk
Информация |
---|
|
При этом:
- Имя файла считается литералом (спецсимволы не интерпретируются);
- Любое из прав
r/x
преобразуется вr
,w
преобразуется вwc;
- Правила применяется одинаково и для доступа владельцев и для доступа невладельцев (uo);
- Строка обязательно должна начинаться с символа кавычки или символа "слэш";
- Если файл представляет символьную ссылку, в вывод профиля попадает целевой файл ссылки.
Включение файла в профиль
Вариант, совместимый со старым киоском. Имя включаемого файла обязано начинаться с латинской буквы, символы "слэш" в имени не допускаются:
Информация |
---|
other-profile-name |
Информация |
---|
@include other-profile-name |
Если в файлах профилей для одного файла (и ссылок на этот файл) указаны разные разрешения, то они объединяются.
Например, для файла /tmp/test.txt и ссылки на него /tmp/link.txt
Информация |
---|
+file r o: /tmp/test.txt +link rw o: /tmp/link.txt |
это то же самое, как если бы мы раскрыли символьную ссылку
Информация |
---|
+file r o: /tmp/test.txt +file rw o: /tmp/test.txt |
а это, в свою очередь, то же самое, что одна строчка
Информация |
---|
+file rw o: /tmp/test.txt |
(объединение r и rw даёт rw)