Veyon

Материал из ALT Linux Wiki

Veyon (Virtual Eye On Networks) — программа для учителей работающих в компьютеризированных классах. Она позволяет различными способами контролировать компьютеры учащихся входящих в состав сети. Veyon поддерживает Linux и Windows.

Установка

Установить пакет veyon:

# apt-get install veyon
Примечание: Veyon и iTALC по умолчанию используют одни и те же порты. При установке дистрибутива Альт Образование 9 устанавливается клиентская часть пакетов iTALC italc3-client, которая занимает порт 11100. Необходимо либо удалить italc3-client, либо настраивать порты, так чтобы они не пересекались.


Настройка управления классом

Настройку Veyon можно произвести как в графическом интерфейсе, используя конфигуратор Veyon, так и в командной строке, используя команду veyon-cli:

$ veyon-cli help
Доступные модули:
    authkeys - Команды для управления ключами аутентификации
    config - Команды для управления настройками Veyon
    feature - Команды для управления функциями
    ldap - Команды для конфигурирования и тестирования интеграции LDAP/AD
    networkobjects - Команды для управления каталогом встроенных объектов сети
    plugin - Команды для управления плагинами
    power - Команды для управления состоянием питания компьютеров
    remoteaccess - Удалённый просмотр или управление компьютером
    service - Команды для настройки и управления сервисом Veyon
    shell - Команды для возможностей оболочки
    webapi - Команды для запуска Веб-API сервера

Каждый модуль поддерживает команду help, поэтому для каждого модуля можно отобразить список всех доступных команд. Пример вывода справки для модуля config:

$ veyon-cli config help
Доступные команды:
    clear - Очистка всей системы Veyon
    export - Экспорт конфигурации в указанный файл
    get - Чтение и вывод значений конфигурации для заданного ключа
    import - Импорт конфигурации из указанного файла
    list - Список всех ключей и значений конфигурации
    set - Записать указанное значение в заданный ключ конфигурации
    unset - Отменить (удалить) данный ключ конфигурации
    upgrade - Обновить и сохранить настройки программы и дополнений

Настройка Veyon на компьютере преподавателя

Запустить конфигуратор Veyon, выбрав «Меню запуска приложений» → «Образовательные» → «Veyon Configurator» или выполнив команду:

$ veyon-configurator

Потребуется ввести пароль администратора (root):

Veyon. Аутентификация пользователя

Раздел «Главное»

В разделе «Главное» в блоке «Аутентификация» необходимо выбрать метод аутентификации: «Аутентификация с помощью ключей доступа», в блоке «Каталог сетевых объектов» в поле «Бэкэнд» выбрать «Встроенное (компьютеры и места в локальных настройках)»:

Veyon. Раздел конфигурации «Главное»

Veyon предлагает два метода аутентификации: аутентификацию по ключу и аутентификацию при входе в систему. В данной статье рассматривается метод аутентификации по ключу. Аутентификация по ключу основана на криптографии с открытым ключом (используются открытый ключ и связанный с ним закрытый ключ).

Раздел «Сервис»

В разделе «Сервис» следует запустить сервис, если он еще не запущен, и в блоке «VNC-сервер» в поле «Плагин» выбрать пункт «Встроенный сервер VNC (x11vnc)»:

Veyon. Раздел конфигурации «Сервис»

Раздел «Ключи аутентификации»

В разделе «Ключи аутентификации» необходимо сгенерировать ключи:

  • нажать кнопку «Создать ключевую пару»;
  • указать имя для пары ключей, нажать кнопку «ОК»:
    Veyon. Генерация ключевой пары
  • появится уведомление о том, что ключи созданы и сохранены, с указанием пути их сохранения:
    Veyon. Генерация ключевой пары
  • выделить открытый ключ (имеет значение public в колонке «Тип») и нажать кнопку «Экспорт ключа»:
    Veyon. Экспорт открытого ключа
  • указать каталог для экспорта открытого ключа (например, можно указать папку, которая открыта в общий доступ) и нажать кнопку «Сохранить».

Открытый ключ (файл teacher_public_key.pem) с компьютера учителя необходимо скопировать на компьютеры учащихся (перенести с помощью носителя информации, использовать общую папку, использовать команду scp).

Примечание: По умолчанию открытый и закрытый ключ будут доступны только суперпользователю:
# ls -l /etc/veyon/keys/private/teacher/
-r--r----- 1 root root 3268 июн  6 16:14 key

Чтобы разрешить доступ группе пользователей, необходимо установить группу доступа для закрытого ключа. Только пользователи, которым разрешен доступ к компьютерам с помощью Veyon Master, должны быть членами группы доступа, заданной для закрытых ключей. Открытый ключ должен быть доступен для чтения всем пользователям.

Для изменения группы доступа следует выбрать ключ и нажать кнопку «Установить группу доступа». В открывшемся окне выбрать/указать группу пользователей:

Veyon. Установка группы доступа для закрытого ключа

Теперь доступ к зарытому ключу будут иметь все пользователи входящие в группу teacher:

# ls -l /etc/veyon/keys/private/teacher/
-r--r----- 1 root teacher 3268 июн  6 16:14 key

Veyon. Установка группы доступа для ключа


Примечание: Примеры операций с ключами аутентификации в консоли:

Создать ключевую пару для «teacher»:

# veyon-cli authkeys create teacher

Экспортировать открытый ключ:

$ veyon-cli authkeys export teacher/public /home/user/teacher.pem

Изменить группу доступа закрытого ключа:

# veyon-cli authkeys setaccessgroup teacher/private teacher


Применение настроек

После завершения настроек нажать кнопку «Применить» и на вопрос о перезапуске службы ответить «Да».

На этой стадии можно экспортировать конфигурацию («Файл» → «Сохранить параметры в файл»), чтобы потом можно было её применить на управляемых компьютерах. И уже затем добавлять классы и компьютеры.

Конфигурацию (файл <имя_файла>.json) с компьютера учителя необходимо скопировать на компьютеры учащихся (перенести с помощью носителя информации, использовать общую папку, использовать команду scp).

Дополнительные настройки

В разделе «Места и компьютеры» необходимо добавить классы и компьютеры. Для компьютера достаточно указать IP-адрес:

Veyon. Раздел конфигурации «Места и компьютеры»

В разделе «Мастер» на вкладке «Поведение» можно выбрать то, как будут реагировать компьютеры на двойной щелчок:

Veyon. Раздел конфигурации «Мастер» - вкладка «Поведение»

На вкладке «Функции» можно отключить ненужные функциональные возможности:

Veyon. Раздел конфигурации «Мастер» - вкладка «Функции»

В разделе «Программы и сайты» можно добавить к контекстному меню часто используемые программы и сайты:

Veyon. Раздел конфигурации «Программы и сайты»

Интеграция с LDAP/AD

В Veyon можно настроить интеграцию с LDAP-совместимыми продуктам (включая Active Directory и FreeIPA). После настройки интеграции, в Veyon Master будет использоваться информация о пользователях, группах и компьютерах из каталога LDAP.

Настройка интеграции выполняется в Veyon Конфигуратор в разделе «LDAP Basic».

На вкладке «Основные настройки» указываются параметры подключения к LDAP. В разных реализациях LDAP могут быть разные требования для указания учетной записи (возможные форматы включают: User, DOMAIN\User или cn=User,… dc=example dc=org).

Внимание! Для получения доступа к LDAP заведите в домене отдельного служебного пользователя с правами чтения LDAP.


Veyon может устанавливать зашифрованные соединения с сервером LDAP. Для этого в разделе «Защита соединения» доступны соответствующие настройки.

Настройки базового DN определяют адрес корневого объекта в каталоге. Все объекты хранятся ниже базового DN. Обычно базовый DN поступает из домена DNS или AD:

Veyon. Вкладка «Основные настройки»

На вкладке «Настройки среды» указываются параметры, которые определяют деревья объектов, в которых определены типы объектов и имена атрибутов объектов.

«Деревья объектов» — это организационные или структурные единицы, в которых хранятся определенные типы объектов (пользователи, группы, компьютеры). Соответствующие CN (общие имена) или OU (организационные единицы) должны быть введены без корневой части DN в соответствующие поля ввода. Рядом с каждым полем ввода есть кнопки для открытия диалоговых окон просмотра и проверки индивидуальных настроек.

Чтобы Veyon мог получить необходимую информацию из запрашиваемых объектов, необходимо настроить имена некоторых атрибутов объектов, поскольку они существенно различаются в зависимости от LDAP-сервера:

  • «Атрибут имени пользователя для входа» — атрибут должен содержать логин пользователя (FreeIPA — uid, Active Directory — sAMAccountName);
  • «Атрибут членства в группе» — атрибут используется для определения групп, членом которых является конкретный пользователь;
  • «Атрибут показываемого названия компьютера» — атрибут используется для определения имени компьютера, отображаемого в Veyon Master. Если оставить поле пустым, используется общее имя (cn);
  • «Атрибут имени хоста компьютера» — DNS-имя компьютера;
  • «Атрибут места компьютера» — если схема LDAP для компьютеров предоставляет специальный атрибут для сопоставления местоположению, здесь можно ввести имя этого атрибута.

Veyon. Вкладка «Настройка среды»

На вкладке «Расширенные настройки» с помощью опциональных фильтров можно сократить количество объектов LDAP, используемых в Veyon, а также настроить параметры запроса структуры каталога и идентификации участников групп и мест компьютеров:

Veyon. Вкладка «Расширенные настройки»

Примечание: Основное дерево каталога в Veyon по умолчанию отображается в виде плоского списка, поэтому использование параметров раздела «Дерево компьютеров» отобразит список компьютеров в указанном подразделении или контейнере, но они будут не доступны к управлению. Для возможности управления такой структурой каталога необходимо активировать опцию «Сопоставить структуру контейнера/подразделения 1:1 с местоположениями» в разделе «Параметры запроса».
Примечание: При использовании FreeIPA опцию «Сопоставить структуру контейнера/подразделения 1:1 с местоположениями» включать не нужно, потому что компьютеры в FreeIPA берутся из групп хостов, а не из контейнеров.


Примечание: Чтобы скрыть такие объекты как принтеры в Veyon, достаточно в поле «Фильтр для компьютеров» указать параметр:
(&(!(cn=printer*)))


На вкладке «Тестирование интеграции» можно проверить интеграцию LDAP используя различные тесты:

Veyon. Вкладка «Тестирование интеграции»

После настройки и тестирования интеграции с LDAP можно активировать бэкэнд LDAP. Для этого, в разделе «Главное» в выпадающем списке «Бэкэнд» выбрать «LDAP Basic»:

Veyon. Бэкэнд LDAP

Интеграция с FreeIpa

Ниже показана настройка интеграции с FreeIPA (сервер ipa.test.alt, IP-адрес — 192.168.0.10, учётная запись с правами чтения LDAP — ldap_user).

На вкладке «Основные настройки» необходимо указать параметры подключения к LDAP: имя хоста (IP-адрес) LDAP-сервера, порт (обычно 389 без ssl, 636 с ssl) и ввести учётные данные пользователя:

Veyon. Настройка интеграции с LDAP

Используя кнопку «Тестировать», можно проверить соединение с LDAP-сервером:

Veyon. Проверка соединения с LDAP-сервером


Корневой DN необходимо ввести в соответствующее поле ввода или выбрать с помощью кнопки «Обзор».

Параметры вкладки «Настройки среды»:

Veyon. Настройка интеграции с LDAP

Параметры вкладки «Расширенные настройки»:

Veyon. Настройка интеграции с LDAP

Примечание: При использовании FreeIPA необходимо заранее создать группы хостов (Host Groups) и добавить в них компьютеры.


С помощью фильтров можно сократить количество объектов LDAP, используемых в Veyon.

В результате в Veyon Master будет использоваться информация о классах и компьютерах из каталога LDAP:

Veyon. Информация о классах и компьютерах из каталога LDAP

Интеграция с Альт Домен

Ниже показана настройка интеграции с Альт Домен (сервер dc.test.alt, IP-адрес — 192.168.0.132, учётная запись с правами чтения LDAP — ldap_user). На вкладке «Основные настройки» необходимо указать параметры подключения к LDAP: имя хоста (IP-адрес) LDAP-сервера, порт (обычно 389 без ssl, 636 с ssl) и ввести учётные данные пользователя:

Veyon. Настройка интеграции с LDAP c Альт Домен

Примечание: Для работы LDAP-сервера на порту 389 без ssl необходимо в конфигурационном файле /etc/samba/smb.conf контроллера домена в раздел [global] добавить параметр:
ldap server require strong auth = no
После этого требуется перезапустить службу samba.


Используя кнопку «Тестировать», можно проверить соединение с LDAP-сервером:

Veyon. Настройка интеграции с LDAP c Альт Домен

Корневой DN необходимо ввести в соответствующее поле ввода или выбрать с помощью кнопки «Обзор».

Параметры вкладки «Настройки среды»:

Veyon. Настройка интеграции с LDAP c Альт Домен

Параметры вкладки «Расширенные настройки»:

Veyon. Настройка интеграции с LDAP c Альт Домен

В результате в Veyon Master будет использоваться информация о классах и компьютерах из каталога LDAP Альт Домен:

Veyon. Информация о классах и компьютерах из каталога LDAP Альт Домен

Раздел «Контроль доступа»

Внимание! Как и все другие настройки, конфигурация контроля доступа является частью локальной конфигурации Veyon. Поэтому конфигурация должна быть передана на все другие компьютеры для правильной работы.


В разделе «Контроль доступа» настраиваются правила и способ получения доступа к компьютерам пользователями:

Veyon. Раздел «Контроль доступа»

В блоке «Контроль доступа к компьютеру» доступны варианты настроек:

  1. «Предоставлять доступ каждому аутентифицированному пользователю (по умолчанию)» — данная схема аутентификации достаточна при использовании аутентификации по файлу ключа с ограниченным доступом к файлам ключей;
  2. «Ограничить доступ участникам указанных групп пользователей» — в этом режиме доступ к компьютеру получают только члены групп, разрешенных в настройках;
  3. «Правила контроля доступа к процессу» — эта схема доступа осуществляет детальный контроль на основе созданных правил, обеспечивая при этом максимальную гибкость. Первоначальная настройка достаточно сложна и отнимает много времени.

При использовании вариантов «Ограничить доступ участникам указанных групп пользователей» и «Правила контроля доступа к процессу» необходимо в разделе «Главное» переключить метод аутентификации на «Аутентификация при входе в систему»:

Veyon. Метод аутентификации

При выборе «Ограничить доступ участникам указанных групп пользователей» станет активной область «Группы пользователей, которым разрешен доступ к компьютерам». В левом списке «Все группы» будет представлен список групп, доступных на компьютере. Для того чтобы разрешить доступ, необходимо перенести группу в правый список «Разрешенные группы пользователей»:

Veyon. Раздел «Контроль доступа»

Примечание: Если настроена интеграция LDAP, будут отображены группы пользователей контроллера домена:

Veyon. Раздел «Контроль доступа»


При выборе «Правила контроля доступа к процессу» станет доступна область «Правила контроля доступа». Для добавления правила следует нажать на кнопку «+»:

Veyon. Раздел «Контроль доступа»

Примечание: По умолчанию список правил пуст, поэтому любая попытка аутентификации отклоняется. Для работы должно быть определено хотя бы одно правило.


В открывшемся окне необходимо указать название и описание правила, выбрать условия для его применения и нажать кнопку «ОК»:

Veyon. Раздел «Контроль доступа»

При запуске Veyon Master в обоих случаях потребуется аутентификация пользователя:

Veyon. Раздел «Контроль доступа»

В окне Veyon Master для управления будут доступны компьютеры, к которым определен доступ в настройках:

Veyon. Раздел «Контроль доступа»

Настройка управляемых компьютеров

В графическом интерфейсе

Запустить Veyon Конфигуратор («Меню запуска приложений» → «Образовательные» → «Veyon Configurator», потребуется ввести пароль пользователя входящего в группу wheel) и изменить следующие настройки:

  1. Выбрать в меню «Файл» → «Загрузить настройки из файла» и загрузить файл с настройками (<имя_файла.json>), сохранённый на компьютере преподавателя:
    Veyon. Импорт конфигурации
  2. В разделе «Сервис» запустить сервис.
  3. В разделе «Ключи аутентификации» нажать кнопку «Импорт ключа» и загрузить подготовленный публичный ключ, сгенерированный на компьютере преподавателя:
    Veyon. Импорт ключа
    Veyon. Ключи аутентификации
  4. После завершения настроек нажать кнопку «Применить» и на вопрос о перезапуске службы ответить «Да».

В консоли

Настройку управляемых компьютеров можно выполнить централизовано, в командной строке. Далее все команды выполняются на компьютере учителя, под учетной записью учителя.


Для удобства переноса публичных частей ключей на ученические машины, можно настроить доступ по ssh с компьютера учителя на компьютеры учеников.

Генерация SSH-ключа:

$ ssh-keygen -t ed25519

Копируем публичную часть ключа на ученическую машину для пользователя:

$ ssh-copy-id -i /home/teacher/.ssh/id_ed25519.pub user@192.168.0.2

или сразу на все ученические машины в сети:

$ for i in `seq 2 15`; do ssh-copy-id user@192.168.0.$i; done

В результате получаем возможность работы с домашними каталогами пользователя user ученических машин — копировать к себе и от себя, удалять, редактировать и т.д.

Копируем публичную часть ключа на все ученические машины в сети для администратора. Для этого подключаемся к каждой ученической машине и под root копируем публичную часть ключа:

$ ssh user@192.168.0.2
user@comp2 $ su -
comp2 # cat /home/user/.ssh/authorized_keys >> /root/.ssh/authorized_keys
comp2 # exit
user@comp2 $ exit

Каталог /root/.ssh при этом должен существовать.

Теперь есть возможность удалённо выполнять команды на ученических компьютерах с привилегиями администратора.

Экспортируем публичный ключ:

$ veyon-cli authkeys export teacher/public 
[ИНФОРМАЦИЯ] Ключ "teacher/public" был успешно экспортирован в "teacher_public_key.pem".
[OK]

Экспортируем конфигурацию:

$ veyon-cli config export myconfig.json
[OK]

Копируем открытый ключ и конфигурацию на ученическую машину:

$ scp teacher_public_key.pem user@192.168.0.2:/tmp/
$ scp myconfig.json user@192.168.0.2:/tmp/

Импортируем открытый ключ и конфигурацию на ученической машине:

$ ssh root@192.168.0.2 "veyon-cli authkeys import teacher/public /tmp/teacher_public_key.pem"
[OK]
[ИНФОРМАЦИЯ] Ключ "teacher/public» был успешно импортирован. Пожалуйста, проверьте права доступа к файлу "/etc/veyon/keys/public/teacher/key», чтобы предотвратить неуполномоченный доступ. 
$ ssh root@192.168.0.2 "veyon-cli config import /tmp/myconfig.json"
[OK]

Запускаем сервис veyon:

$ ssh root@192.168.0.2 "veyon-cli service start"
Запускаем сервис veyon.[OK]

Или настраиваем сразу все клиентские машины:

$ ssh-add; for i in `seq 2 15`; do scp /home/teacher/teacher_public_key.pem root@192.168.0.$i:/tmp/; done
$ ssh-add; for i in `seq 2 15`; do scp /home/teacher/myconfig.json root@192.168.0.$i:/tmp/; done
$ ssh-add; for i in `seq 2 15`; do ssh root@192.168.0.$i "veyon-cli authkeys import teacher/public /tmp/teacher_public_key.pem"; done
$ ssh-add; for i in `seq 2 15`; do ssh root@192.168.0.$i "veyon-cli config import /tmp/myconfig.json"; done
$ ssh-add; for i in `seq 2 15`; do ssh root@192.168.0.$i "veyon-cli service start"; done

Использование Veyon

На компьютере преподавателя запустите Veyon, выбрав «Меню запуска приложений» → «Образовательные» → «Veyon Master».

Veyon Master

Внимание! VNC-сервер не поддерживается в окружениях, использующих Wayland. Для корректной работы требуется сессия X11.
При использовании Wayland ученический компьютер в Veyon будет отображаться так, как будто на нём не запущен Veyon-сервер:
Veyon Master


По верхнему и нижнему краям окна Veyon Master расположены панели, содержащие кнопки для настройки Veyon.

Кнопка «Места и компьютеры» в строке состояния открывает панель выбора компьютеров. Здесь можно отметить компьютеры, которые необходимо отображать.

Примечание: Добавить новые классы и компьютеры можно в конфигураторе Veyon.


Все доступные функции доступны через кнопки на панели инструментов, а также из контекстного меню отдельных компьютеров.

Нажатие кнопки на панели инструментов активирует нужную функцию на всех отображаемых компьютерах. Для того чтобы активировать функцию на одном компьютере, выбирать действие нужно в контекстном меню данного компьютера. Если выделено несколько компьютеров (например, клавишей <Ctrl>), выбор в контекстном меню приведёт к запуску данного действия на выбранных компьютерах.

Просмотр и запись происходящего на компьютерах учеников

По умолчанию на экране демонстрируется происходящее на всех активных компьютерах. Начать просмотр происходящего на экране одного компьютера можно выбрав в контекстном меню этого компьютера пункт «Удалённый просмотр». Если нажать кнопку «Удалённый просмотр» на верхней панели окна, потребуется ввести IP-адрес компьютера, доступ к которому надо получить:

IP-адрес компьютера, доступ к которому надо получить

Для записи текущего состояния ученического компьютера, необходимо в контекстном меню этого компьютера выбрать пункт «Снимок экрана».

Нажав на кнопку «Снимок экрана» на панели инструментов, можно сделать снимки всех активных рабочих станций. Нажав на кнопку «Снимок экрана» на нижней панели окна, можно просмотреть сохраненные записи.

Просмотр и запись происходящего

Удалённый контроль и управление компьютерами учеников

Veyon. Удалённое управление

Начать удалённое управление можно из контекстного меню машины (пункт «Удалённое управление»), или щелкнув на кнопку «Удалённое управление» на панели инструментов (потребуется ввести IP-адрес). При этом появится возможность управлять данным компьютером (вводить команды, запускать программы и т.д.).

Демонстрация учебных материалов

Veyon. Демонстрация учебных материалов

В результате выбора режимов «Демонстрировать собственный экран…», все происходящее на компьютере учителя, будет транслироваться на машины учеников.

Демонстрация учебных материалов доступна в режиме полного экрана (действия пользователей при этом будут заблокированы) или в оконном режиме.

Для предоставления учащемуся возможности демонстрации производимых им действий на рабочие столы других учащихся необходимо выбрать один из режимов «Демонстрировать экран выбранного пользователя…».

Блокирование рабочих станций

Можно заблокировать как отдельную рабочую станцию, выбрав в контекстном меню компьютера пункт «Заблокировать», так и все станции сразу, нажав на кнопку «Заблокировать» на верхней панели.

Veyon. Блокирование рабочих станций

Для разблокировки рабочих столов достаточно выбрать пункт «Разблокировать» в контекстном меню заблокированной станции или нажать кнопку «Разблокировать» на панели инструментов.

Пересылка текстовых сообщений учащимся

Для отправки текстового сообщения на отдельную рабочую станцию необходимо в контекстном меню компьютера выбрать пункт «Текстовое сообщение», в открывшемся окне ввести текст сообщения и нажать кнопку «OK».

Veyon. Пересылка текстовых сообщений учащимся

Отправить сообщение на все активные рабочие станции, можно нажав на кнопку «Текстовое сообщение» на панели инструментов.

Запуск приложений

Для запуска приложений на рабочей станции необходимо в контекстном меню компьютера, выбрать пункт «Запустить приложение». Если в конфигураторе администратором были настроены часто используемые приложения, то такое приложений можно выбрать в подменю:

Veyon. Запуск приложений

Если необходимо запустить приложение, которого нет в подменю, следует выбрать пункт «Другое приложение», в открывшемся окне ввести команды (можно записать сразу несколько программ/команд, по одной в строке) и нажать кнопку «OK»:

Veyon. Запуск программ

Примечание: Чтобы удалить ранее добавленную пользовательскую программу необходимо навести курсор на соответствующий пункт и нажать клавишу <Delete>.


Открыть веб-сайт

Если нужно, чтобы все учащиеся открыли определенный веб-сайт, можно удалённо открыть веб-сайт на всех компьютерах. Для этого используется кнопка «Открыть веб-сайт». Если в конфигураторе администратором были настроены веб-сайты или ранее были добавлены пользовательские веб-сайты, откроется всплывающее меню, в котором перечислены все доступные веб-сайты:

Veyon. Меню «Открыть веб-сайт»

Если необходимо открыть веб-сайт, которого нет в списке, следует выбрать пункт «Другое веб-сайт», в открывшемся диалоговом окне ввести адрес веб-сайта и нажать кнопку «OK»:

Veyon. Открыть веб-сайт

Примечание: Чтобы удалить ранее добавленный пользовательский веб-сайт необходимо навести курсор на соответствующий пункт и нажать клавишу <Delete>.


Распространение файлов

Файлы можно распространить как на отдельную рабочую станцию, выбрав в контекстном меню компьютера пункт «Распространить», так и на все рабочие станции, нажав кнопку «Распространить» на панели инструментов. После этого необходимо выбрать один или несколько файлов и нажать кнопку «Начать»:

Veyon. Распространение файлов

В этом диалоговом окне можно выбрать дополнительные параметры. По умолчанию файлы копируются в домашний каталог пользователя. Для перезаписи существующих файлов необходимо включить параметр «Перезаписать существующие файлы».

Примечание: Каталог по умолчанию можно настроить в конфигураторе Veyon на вкладке «Передача файлов».


Передача может занять некоторое время в зависимости от объёма файлов и количества компьютеров.

Сбор файлов

Файлы можно собрать как с отдельной рабочей станции, выбрав в контекстном меню компьютера пункт «Собрать», так и со всех рабочих станций, нажав кнопку «Собрать» на панели инструментов. После этого в открывшемся окне необходимо нажать кнопку «Начать»:

Veyon. Сбор файлов

По умолчанию копируются все пользовательские файлы из каталога «Документы», за исключением файлов, указанных в списке исключений. После завершения копирования можно просмотреть, какие файлы и с каких рабочих станций были получены:

Veyon. Сбор файлов

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


Время передачи зависит от размера файлов и количества подключённых компьютеров. Полученные файлы автоматически сохраняются в каталогах с именами пользователей, которые создаются в домашнем каталоге системы:

Veyon. Сбор файлов

Выключение и перезагрузка компьютеров

Veyon. Выключение и перезагрузка компьютеров

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

WebAPI

Плагин WebAPI предоставляет RESTful API для доступа к экземплярам Veyon Server по протоколу HTTP. Существует два возможных сценария использования.

Локальный режим
В этом режиме WebAPI запускается на каждом управляемом компьютере вместе с Veyon Server. Запросы выполняются непосредственно к нужному компьютеру:
https://pc01:11080/api/...
https://pc02:11080/api/...
Данный режим требует развёртывания индивидуальных SSL-сертификатов на всех компьютерах.
Режим прокси-сервера
В этом режиме WebAPI работает только на одном выделенном сервере. Клиент обращается к единому адресу:
https://veyon-api.test.alt/api/...
WebAPI самостоятельно устанавливает соединения с нужными компьютерами и пересылает им команды. В режиме прокси-сервера сертификат требуется только для сервера WebAPI.

Включить сервер WebAPI можно в конфигураторе Veyon на вкладке «Веб-API» (вкладка доступна в расширенном режиме).

Veyon. Веб-API

Плагин WebAPI также предоставляет модуль CLI, поэтому сервер WebAPI можно запустить в автономном режиме с помощью команды:

$ veyon-cli webapi runserver

Общие сведения

При успешном выполнении запроса сервер возвращает ответ с кодом состояния HTTP 200.

При возникновении ошибки сервер возвращает соответствующий код состояния HTTP и объект ошибки в теле ответа, например:

{"error":{"code":6,"message":"Authentication failed"}}

Управление подключениями и аутентификация

Неактивные подключения автоматически закрываются по истечении 60 секунд (значение по умолчанию). Этот параметр можно изменить с помощью настройки WebAPI/ConnectionIdleTimeout («Время ожидания бездействия»).

Неаутентифицированные подключения автоматически закрываются по истечении 15 секунд (значение по умолчанию). Этот параметр можно изменить с помощью настройки WebAPI/ConnectionAuthenticationTimeout («Время ожидания на подключение»).

Аутентифицированные подключения имеют ограниченный срок действия и автоматически закрываются по истечении 3 часов (значение по умолчанию). Этот параметр можно изменить с помощью настройки WebAPI/ConnectionLifetime («Срок службы»).

Получение списка методов аутентификации, поддерживаемых хостом:

  • URL: /api/v1/authentication/<HOST>
  • Метод: GET
  • Ответ: { "methods": [ "<UUID1>", "<UUID2>", ... ] }

Создание нового подключения и выполнение аутентификации:

  • URL: /api/v1/authentication/<HOST>
  • Метод: POST
  • Данные: { "method": "<UUID-МЕТОДА-АУТЕНТИФИКАЦИИ>", "credentials": <УЧЕТНЫЕ-ДАННЫЕ-КОНКРЕТНОГО-МЕТОДА> }
  • Ответ: { "connection-uid": "<UID-ПОДКЛЮЧЕНИЯ>", "validUntil": "<ВРЕМЕННАЯ-МЕТКА-UTC>" }

Возвращаемый UUID подключения идентифицирует конкретное соединение с хостом. Его необходимо передавать в заголовке Connection-Uid во всех последующих вызовах API.

Срок действия подключения истекает в момент времени, указанного в поле validUntil.

Примечание: При использовании локального режима в качестве значения <HOST> следует указывать localhost.


Закрытие подключения:

  • URL: /api/v1/authentication/<HOST>
  • Метод: DELETE
  • Заголовки: { Connection-Uid: <UID-ПОДКЛЮЧЕНИЯ> }
  • Ответ: { }

Методы аутентификации

Название UUID Учетные данные (Credentials)
AuthKeys 0c69b301-81b4-42d6-8fae-128cdd113314 { "keyname": "<ИМЯ>" (например, "teacher"), "keydata": "<ЗАКРЫТЫЙ-КЛЮЧ-В-ФОРМАТЕ-PEM>" }
AuthLogon 63611f7c-b457-42c7-832e-67d0f9281085 { "username": "<ИМЯ-ПОЛЬЗОВАТЕЛЯ>", "password": "<ПАРОЛЬ>" }

Управление функциями

Получение списка доступных функций:

  • URL: /api/v1/feature
  • Метод: GET
  • Заголовки: { Connection-Uid: <UID-ПОДКЛЮЧЕНИЯ> }
  • Ответ: [ <ОБЪЕКТЫ-ФУНКЦИЙ> ]

Запуск или остановка функции:

  • URL: /api/v1/feature/<UID-ФУНКЦИИ>
  • Метод: PUT
  • Данные: { "active": [true/false], "arguments": <АРГУМЕНТЫ> }
  • Заголовки: { Connection-Uid: <UID-ПОДКЛЮЧЕНИЯ> }
  • Ответ: { }
Примечание: Аргументы зависят от конкретной функции.

Запрос состояния функции:

  • URL: /api/v1/feature/<UID-ФУНКЦИИ>
  • Метод: GET
  • Заголовки: { Connection-Uid: <UID-ПОДКЛЮЧЕНИЯ> }
  • Ответ: { "active": [true/false] }
Примечание: Применяется только к функциям, реализующим определенный режим, например, блокировку экрана (ScreenLock). Функции, реализующие простые однократные действия, никогда не будут отображаться как активные (active: true).


Основные функции

Название Функция UUID Аргументы
Блокировка экрана ScreenLock ccb535a2-1d24-4cc1-a709-8b47d2b2ac79 <none>
Блокировка клавиатуры и мыши InputDevicesLock e4a77879-e544-4fec-bc18-e534f33b934c <none>
Залогиниться UserLogin 7310707d-3918-460d-a949-65bd152cb958 { "username": <USERNAME>, "password": <PASSWORD> }
Разлогиниться UserLogoff 7311d43d-ab53-439e-a03a-8cb25f7ed526 <none>
Перезагрузить Reboot 4f7d98f0-395a-4fff-b968-e49b8d0f748c <none>
Выключить PowerDown 6f5a27a0-0e2f-496e-afcc-7aae62eede10 <none>
Демонстрировать экран DemoServer e4b6e743-1f5b-491d-9364-e091086200f4 { "demoAccessToken": <TOKEN> }
Демонстрировать экран пользователя FullScreenDemoClient 7b6231bd-eb89-45d3-af32-f70663b2f878 { "demoAccessToken": <TOKEN>, "demoServerHost": <DEMO-SERVER-HOST-ADDRESS> }
Демонстрировать экран пользователя (Windows) WindowDemoClient ae45c3db-dc2e-4204-ae8b-374cdab8c62c { "demoAccessToken": <TOKEN>, "demoServerHost": <DEMO-SERVER-HOST-ADDRESS> }
Запустить приложение StartApp da9ca56a-b2ad-4fff-8f8a-929b2927b442 { "applications": ["<APP1-PATH-WITH-ARGUMENTS>", "<APP2-PATH-WITH-ARGUMENTS>", ...] }
Открыть веб-сайт OpenWebsite 8a11a75d-b3db-48b6-b9cb-f8422ddd5b0c { "websiteUrls": ["<URL1>", "<URL2>", ...] }
Текстовое сообщение TextMessage e75ae9c8-ac17-4d00-8f0d-019348346208 { "text": "..." }

Информация о пользователе

Получение информации о пользователе:

  • URL: /api/v1/user
  • Метод: GET
  • Ответ: { "login": "<ИМЯ-ПОЛЬЗОВАТЕЛЯ-ДЛЯ-ВХОДА>", "fullName": "<ПОЛНОЕ-ИМЯ-ПОЛЬЗОВАТЕЛЯ>" }

Если ни один пользователь не вошел в систему, поля login и fullName будут пустыми.

Информация о сеансе:

  • URL: /api/v1/session
  • Метод: GET
  • Ответ:
     { 
      "sessionId": <ID-СЕАНСА>, 
      "sessionUptime": <ВРЕМЯ-РАБОТЫ-СЕАНСА-В-СЕКУНДАХ>, 
      "sessionClientAddress": "<АДРЕС-КЛИЕНТА-СЕАНСА>", 
      "sessionClientName": "<ИМЯ-КЛИЕНТА-СЕАНСА>", 
      "sessionHostName": "<ИМЯ-ХОСТА-СЕАНСА>" 
    }
    

Описание полей:

  • sessionId — целое число, представляющее идентификатор сеанса, назначенный службой Veyon. Используется как смещение для портов сервера, чтобы получить доступ к соответствующему серверу сеанса;
  • sessionUptime — количество секунд, прошедших с момента открытия сеанса (например, с момента входа пользователя в систему);
  • sessionClientAddress — хост или IP-адрес клиента, подключенного к сеансу (например, хост, на котором запущен RDP-клиент);
  • sessionClientName — имя клиента, подключенного к сеансу (например, имя хоста, на котором запущен RDP-клиент);
  • sessionHostName — имя хоста, на котором выполняется сеанс (обычно это локальное имя хоста).

Примеры

Получение поддерживаемых методов аутентификации

Локальный режим:

  • запрос к WebAPI, работающему на том же компьютере:
    $ curl http://localhost:11080/api/v1/authentication/localhost
    
  • запрос к WebAPI, работающему на удалённом компьютере:
    $ curl http://192.168.0.208:11080/api/v1/authentication/localhost
    

В обоих случаях в качестве параметра <HOST> используется значение localhost, поскольку WebAPI подключается к локальному экземпляру Veyon Server на том компьютере, где он запущен.

Режим прокси-сервера (запрос к центральному серверу WebAPI для подключения к удалённому компьютеру):

$ curl http://localhost:11080/api/v1/authentication/192.168.0.208

В этом случае WebAPI работает в режиме прокси и самостоятельно устанавливает соединение с указанным хостом (192.168.0.208).

Пример ответа:

{"methods":["0c69b301-81b4-42d6-8fae-128cdd113314"]}

UUID 63611f7c-b457-42c7-832e-67d0f9281085 соответствует методу AuthLogon (логин/пароль).

UUID 0c69b301-81b4-42d6-8fae-128cdd113314 соответствует методу AuthKeys (ключ аутентификации).

Аутентификация

Аутентификация по имени пользователя и паролю:

$ curl \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "method":"63611f7c-b457-42c7-832e-67d0f9281085",
        "credentials":{
          "username":"teacher",
          "password":"secret"
        }
      }' \
  http://localhost:11080/api/v1/authentication/localhost

Криптографическая аутентификация по ключу:

$ curl -X POST \
  http://localhost:11080/api/v1/authentication/localhost \
  -H "Content-Type: application/json" \
  -d '{
    "method": "0c69b301-81b4-42d6-8fae-128cdd113314",
    "credentials": {
      "keyname": "user",
      "keydata": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
    }
  }'

где:

  • method — UUID метода AuthKeys;
  • keyname — имя ключа (например, teacher);
  • keydata — содержимое приватного ключа в PEM-формате.
Примечание: Список ключей можно получить командой:
$ veyon-cli authkeys list
teacher/private
teacher/public

Содержимое приватного ключа можно получить, выполнив команду:

$ veyon-cli authkeys export teacher/private


Ответ:

{
  "connection-uid":"fd3508ab-9c59-4f2f-9cf5-43b863b49f6e",
  "validUntil":1781193467
}

Значение connection-uid необходимо использовать во всех последующих запросах в заголовке Connection-Uid.

Функции

Получение списка доступных функций:

$ curl \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  http://localhost:11080/api/v1/feature | jq .

Ответ содержит список функций и их UUID.

Блокировка экрана — функция ScreenLock (ccb535a2-1d24-4cc1-a709-8b47d2b2ac79):

  • включение:
    $ curl \
      -X PUT \
      -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
      -H "Content-Type: application/json" \
      -d '{"active":true}' \
      http://localhost:11080/api/v1/feature/ccb535a2-1d24-4cc1-a709-8b47d2b2ac79
    
  • получение текущего состояния:
    $ curl \
      -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
      http://localhost:11080/api/v1/feature/ccb535a2-1d24-4cc1-a709-8b47d2b2ac79
    
     {"active":true}
    
  • отключение:
    $ curl \
      -X PUT \
      -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
      -H "Content-Type: application/json" \
      -d '{"active":false}' \
      http://localhost:11080/api/v1/feature/ccb535a2-1d24-4cc1-a709-8b47d2b2ac79
    

Блокировка клавиатуры и мыши:

$ curl \
  -X PUT \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  -H "Content-Type: application/json" \
  -d '{"active":true}' \
  http://localhost:11080/api/v1/feature/e4a77879-e544-4fec-bc18-e534f33b934c

Отправка сообщения пользователю:

$ curl \
  -X PUT \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  -H "Content-Type: application/json" \
  -d '{
        "active":true,
        "arguments":{
          "text":"Через 5 минут заканчиваем занятие"
        }
      }' \
  http://localhost:11080/api/v1/feature/e75ae9c8-ac17-4d00-8f0d-019348346208

Открыть сайт:

$ curl \
  -X PUT \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  -H "Content-Type: application/json" \
  -d '{
        "active":true,
        "arguments":{
          "websiteUrls":[
            "https://altlinux.org"
          ]
        }
      }' \
  http://localhost:11080/api/v1/feature/8a11a75d-b3db-48b6-b9cb-f8422ddd5b0c

Запустить приложение:

$ curl \
  -X PUT \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  -H "Content-Type: application/json" \
  -d '{
        "active":true,
        "arguments":{
          "applications":[
            "/usr/bin/acc"
          ]
        }
      }' \
  http://localhost:11080/api/v1/feature/da9ca56a-b2ad-4fff-8f8a-929b2927b442

Скриншот экрана

Получение скриншота экрана:

$ curl \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  "http://localhost:11080/api/v1/framebuffer?format=png" \
  -o screen.png

JPEG с масштабированием:

$ curl \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  "http://localhost:11080/api/v1/framebuffer?format=jpeg&quality=90&width=1280" \
  -o screen.jpg

Завершение соединения

$ curl \
  -X DELETE \
  -H "Connection-Uid: fd3508ab-9c59-4f2f-9cf5-43b863b49f6e" \
  http://localhost:11080/api/v1/authentication/localhost

Полезные ссылки

Официальная документация: https://docs.veyon.io/ru/latest/