Содержание

Skip to end of metadata
Go to start of metadata



Данная статья применима к:

Пакет 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);
  • Создавать и изменять профили пользователей, в том числе:
    • Путём включения в профиль пользователя стандартных профилей (секция рабочего окна "Включить профиль");
    • Путём генерации набора файлов из трассировки приложения:
      • Системного (меню "Правка" - "Создать системный профиль для приложения");
      • Выполняемого от  имени пользователя (кнопка "Добавить файлы из") ;
    • Путём копирования существующего (типового) профиля пользователя.

Создание профиля пользователя

Для создания профиля пользователя:

  • Выбрать в левой часть окна приложения пункт "Профили пользователей" и выбрать в меню "Правка" - "Добавить" или нажать кнопку со знаком "+" в панели кнопок;
  • В открывшемся окне ввести имя пользователя и нажать кнопку "да";

Добавление контролируемого файла к профилю пользователя

  • Выбрать в левой часть окна приложения нужного пользователя (профиль пользователя должен быть ранее добавлен в приложение, см. предыдущий пункт);
  • Выбрать в меню пункт "Правка" - "Вставить файл" или нажать кнопку "+"  в панели кнопок;
  • В открывшемся окне выбрать файл и нажать кнопку "Открыть";
  • В появившейся записи параметров контроля файла выбрать нужные параметры;
  • Выбрать пункт меню "Файл" - "Сохранить" или нажать кнопку с изображением дискеты в панели кнопок;

Включение системных профилей в профиль пользователя

Для включения системных профилей в профиль пользователя:

  • Выбрать соответствующего пользователя в списке пользователей;
  • Отметить нужные профили в нижнем правой части экрана приложения (часть "Включить профиль");
  • Выбрать пункт меню "Файл" - "Сохранить" или нажать кнопку с изображением дискеты в панели кнопок;


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

  • Включить контроль доступа и применять ограничения на работу с файлами при нарушении установленных фильтров доступа:

    echo 1 > /sys/module/parsec/parameters/uc_enforce

  • Включить протоколирование нарушений установленных фильтров доступа:

    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

"/file/name" rwx
    /file/name rwx
"/file/name" r-x
/file/name -w-

При этом:

  • Имя файла считается литералом (спецсимволы не интерпретируются);
  • Любое из прав 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)


  • No labels