Формула remote-access-groups-tigervnc-formula

Формула используется для установки и настройки ограничений доступа к удаленному устройству через VNC-сервер TigerVNC в зависимости от версии Astra Linux.

Формула устанавливает и настраивает специализированный пакет osmax-ira-tigervnc, адаптированный под конкретную версию ОС (Astra Linux 1.7 или 1.8), обеспечивая совместимость с системными библиотеками, политиками безопасности и требованиями к аутентификации.

Особенности обработки формулы с учетом версии ОС

Начиная с версии 1.19.0, пакеты TigerVNC разделены по версиям Astra Linux:

  • Astra Linux 1.7 → osmax-ira-tigervnc-astra1.7;

  • Astra Linux 1.8 → osmax-ira-tigervnc-astra1.8.

Формула автоматически выбирает нужный пакет на основе версии ОС (через grains.osmajorrelease).

В формуле указывается базовое имя пакета (name: osmax-ira-tigervnc), без указания версии ОС. Параметр pkg.name в pillar не обязателен: по умолчанию формула использует name: osmax-ira-tigervnc и автоматически дополняет его суффиксом -astra<версия>.

В пользовательском интерфейсе «Кабинет администратора» при заполнении содержимого pillar указывать имя пакета не требуется. Пример:

{
  "lookup": {
    "pkg": {
      "version": "1.4.5"
    },
    "tigervnc_access_ips": "+",
    "x0vncserver_options": {
      "rfbport": 5899,
      "QueryConnect": 0
    },
    "remote_access_groups": [
      "Domain Users"
    ]
  }
}

Доступные состояния

Состояние remote-access-groups-tigervnc

Мета-состояние, которое включает в себя все необходимые действия для настройки VNC-доступа.

Автоматически:

устанавливает пакет osmax-ira-tigervnc (с указанием версии, если задана);

  • создает файлы /opt/osmax/tigervnc/etc/x0vncserver.options, /etc/access-groups-vnc и /etc/access-ip-vnc;

  • включает и запускает сервис osmax-ira-tigervnc.

Зависит от remote-access-groups-tigervnc.package через include.

Состояние remote-access-groups-tigervnc.package

Устанавливает пакет osmax-ira-tigervnc, создает файлы конфигурации (/opt/osmax/tigervnc/etc/x0vncserver.options, /etc/access-groups-vnc, /etc/access-ip-vnc) и запускает сервис.

Состояние remote-access-groups-tigervnc.clean

Мета-состояние, отменяющее все действия remote-access-groups-tigervnc в обратном порядке:

  • останавливает сервис osmax-ira-tigervnc;

  • удаляет файлы конфигурации (/opt/osmax/tigervnc/etc/x0vncserver.options, /etc/access-groups-vnc, /etc/access-ip-vnc);

  • удаляет установленный пакет osmax-ira-tigervnc.

Зависит от remote-access-groups-tigervnc.package.clean через include.

Состояние remote-access-groups-tigervnc.package.clean

Удаляет пакет osmax-ira-tigervnc и файлы конфигурации (/opt/osmax/tigervnc/etc/x0vncserver.options, /etc/access-groups-vnc, /etc/access-ip-vnc).

Пример файла pillar.example

remote-access-groups-tigervnc:
  # Переопределите значение map.jinja
  lookup:
    # Укажите параметры пакета
    pkg:
      # Формула использует значение по умолчанию: osmax-ira-tigervnc
      # На Astra Linux автоматически заменяется на osmax-ira-tigervnc-astra1.7 или -astra1.8
      name: osmax-ira-tigervnc
      # Укажите конкретную версию пакета. Если значение представляет собой пустую строку, используется последняя версия
      version: '1.3.0'
    # Задайте параметры x0vncserver
    x0vncserver_options:
      rfbport: 5899
      QueryConnect: 1
      QueryConnectTimeout: 15
      ShowRemoteConnect: 1
    # Задайте ip-адреса для доступа к tigervnc
    tigervnc_access_ips: []
    # Задайте группы доступа к tigervnc
    remote_access_groups: []

Параметры конфигурации:

  • rfbport — порт, на котором VNC будет слушать входящие подключения;

  • QueryConnect — вызывает модальное окно у удаленного пользователя, в котором предлагается принять или отклонить входящее соединение.

    Возможные значения:

    • 0 — производит подключение без запроса к удаленному пользователю;

    • 1 — вызывает модальное окно для подтверждения удаленного подключения.

  • QueryConnectTimeout — таймер (в секундах) на предоставление удаленного доступа, по истечении которого запрос автоматически отклоняется.

  • ShowRemoteConnect — отображение модального окна, которое информирует об удаленном доступе.

    На дисплее отображается модальное окно с именем и адресом, откуда выполняется подключение, и кнопка Disconnect.

    Возможные значения:

    • 0 — модальное окно скрыто;

    • 1 — отображается модальное окно с информацией.

  • IdleTimeout — время (в секундах), по истечении которого неактивное соединение VNC будет разорвано. Значение по умолчанию — 0, что означает, что простаивающие соединения никогда не будут разорваны.

    Для VNC со стороны Guacamole существует автопереподключение (autoreconnect) сессии, поэтому по истечении настроенного значения IdleTimeout воспроизводится один из сценариев:

    • при нажатии кнопки Disconnect на устройстве Администратора запускается 15-секундный таймер для переподключения сессии УД; количество повторений не ограничено;

    • если вкладка с сессией УД открыта (при этом не важно, активна эта вкладка в данный момент или нет) и экран разблокирован, сессия УД переподключится через 15 секунд; количество повторений не ограничено;

    • при переключении с вкладки с сессией УД на другую срабатывает таймаут бездействия, по истечении которого сессия УД завершается и автопереподключение не выполняется;

    • если экран устройства Администратора заблокирован, включается таймаут бездействия, сессия УД завершается и автопереподключение не выполняется.

  • tigervnc_access_ips — директивы для указания IP-шлюза, с которого разрешается подключение.

    До адреса необходимо указать символ:

    • + — доступ разрешён;

    • - — доступ запрещён;

    • ? — отправка запроса на разрешение для доступа.

    По умолчанию все подключения заблокированы — пустой файл правил блокирует все подключения. Эти директивы могут задаваться как сами по себе (что вызовет применение для всех адресов), либо с добавлением маски или конкретного IP-адреса, например: +199.35.209.1/32.

    Также можно задать несколько директив. В этом случае при подключении правила проверяются все адреса по очереди до первого подходящего, например:

    +199.35.209.1
    ?

    Данный набор директив отправляет запрос на подключение для всех адресов кроме 199.35.209.1.

  • remote_access_groups — группы пользователей, которым разрешено выполнять подключение.

    Доменные группы пользователей рекомендуется указывать в формате, поддерживаемом Samba: DOMAIN\username. Например, для группы пользователей Local Users в домене localdomain указание группы должно выглядеть следующим образом: LOCALDOMAIN\Local Users.

    Также если параметры конфигурации задаются в файле со специальным форматированием, необходимо экранировать спецсимволы. Например, для формата JSON экранируется символ \: LOCALDOMAIN\\Local Users.