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

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

Формула для установки xRDP (X Remote Desktop Protocol) — открытой реализация протокола RDP (Remote Desktop Protocol), который позволяет удаленным пользователям подключаться к рабочему столу удаленной машины через сеть.

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

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

Мета-состояние (состояние, которое включает в себя другие состояния).

Устанавливает пакет xrdp из целевого репозитория. Имеет зависимость от remote-access-groups-xrdp.package через список include.

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

Устанавливает только пакет xrdp.

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

Мета-состояние (состояние, которое включает в себя другие состояния).

Отменяет все действия, выполненные в метасостоянии remote-access-groups-xrdp, в обратном порядке, т.е. удаляет пакет и удаляет целевой репозиторий (если он был импортирован). Имеет зависимость от remote-access-groups-xrdp.package.clean через список include.

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

Удаляет пакет xrdp.

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

remote-access-groups-xrdp:
  # Переопределите значение map.jinja
  lookup:
    # Укажите параметры пакета
    pkg:
      # Укажите имя пакета для конкретной ОС
      name: 'osmax-ira-xrdp'
      # Укажите конкретную версию пакета.
      # Если значение представляет собой пустую строку, используется последняя версия.
      # Если требуется учесть установленную версию xorg, задайте номер версии в формате '1.3.0+xorg'.
      version: '1.3.0'
    # Задайте параметры xrdp
    xrdp_ini:
      # Порт, на котором XRDP будет слушать входящие подключения
      port: 3389
      # Уровень безопасности для соединения
      security_layer: negotiate
      # Путь к лог-файлам xrdp
      LogFile: /dev/null
      # Уровень логирования xrdp
      LogLevel: 'INFO'
      # Уровень логирования в syslog
      SysLogLevel: 'INFO'
    # Задайте параметры sesman
    sesman_ini:
      # Порт, на котором sesman будет слушать входящие соединения
      ListenPort: 3349
      # Завершение сеанса пользователя после его отключения
      KillDisconnected: false
      # Время в минутах, через которое сеанс пользователя будет завершен после отключения (если для параметра
      # KillDisconnected установлено значение true)
      DisconnectedTimeLimit: 0
      # Время в минутах, в течение которого пользователь не совершал никаких
      # действий; по истечении этого времени сеанс будет завершен
      IdleTimeLimit: 0
      # Уровень логирования
      LogLevel: 'INFO'
      # Уровень логирования в syslog
      SysLogLevel: 'INFO'
      # Путь к исполняемому файлу X-сервера, который будет использоваться для запуска графической сессии
      param: /usr/lib/xorg/Xorg
    # Задайте ip-адреса для доступа к xrdp
    xrdp_access_ips: []
    # Задайте группы доступа к xrdp
    remote_access_groups: []

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

  • xrdp_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.

Особенности указания версии пакета

В формуле может быть указана версия устанавливаемого пакета с помощью параметра pkg.version. Этот параметр позволяет контролировать, какая версия пакета будет установлена на целевом хосте.

Указание конкретной версии

Если необходимо установить конкретную версию пакета, укажите ее значение в поле version. Например, для установки пакета osmax-ira-xrdp версии 1.3.0:

remote-access-groups-xrdp:
  lookup:
    pkg:
      name: 'osmax-ira-xrdp'
      version: '1.3.0'
Убедитесь, что указанная версия пакета доступна в репозиториях, настроенных на целевом хосте.

Использование последней доступной версии

Если поле version оставить пустым или не указывать его, будет установлена последняя доступная версия указанного пакета, доступная в репозитории:

remote-access-groups-xrdp:
  lookup:
    pkg:
      name: 'osmax-ira-xrdp'
      version: ''

Автоматическое определение версии пакета osmax-ira-xrdp

Для пакета osmax-ira-xrdp существует специальный механизм автоматического определения версии, который учитывает текущую версию xserver-xorg-core на хосте. Если в поле version указана версия с префиксом +xorg, то к ней будет добавляться версия xserver-xorg-core. Например:

remote-access-groups-xrdp:
  lookup:
    pkg:
      name: 'osmax-ira-xrdp'
      version: '1.3.0+xorg'

В этом случае, если текущая версия xserver-xorg-core равна 1.20.11, то будет установлена версия пакета osmax-ira-xrdp вида 1.3.0+xorg1.20.

При использовании специального механизма автоматического определения версии (+xorg) убедитесь, что пакет xserver-xorg-core установлен на хосте.