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

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Общая информация

При подключении к пользовательской сессии с использованием Vino экран этой сессии не блокируется. Такое подключения может быть использовано для работы удаленного помощника, когда пользователь контролирует доступ к компьютеру, но недопустимо для удаленной работы пользователей. Для удаленной работы пользователей следует использовать удаленный доступ к Astra Linux по протоколу RDP с использованием fly-dm.

После установки пакета vino и перезапуска пользовательской сессии доступ к сессии предоставляется автоматически, при этом не требуется ввод пароля.

При использовании защиты паролем следует помнить, что протокол VNC ограничивает длину пароля восемью символами.

Подготовка подключения

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

    После установки серверного приложения в обязательном порядке должен быть настроен доступ по паролю.
  2. На компьютере, с которого будет выполняться подключение (клиент),  должно быть установлено и запущено клиентское приложение.

Порядок установки, настройки и запуска серверного и клиентского приложений описан далее.

Серверное приложение Vino

Установка пакетов

После установки пакетов по умолчанию: 

  • Подключение разрешается без пароля. Необходимо установить пароль сразу после установки пакетов.
  • Включается автозапуск серверного приложения. Если не запретить автозапуск, то серверное приложение будет запускаться автоматически при каждом новом входе в графическую сессию любого пользователя, что крайне небезопасно если не установлен пароль.
Серверное приложение Vino может быть установлено из основного репозитория:

sudo apt install vino libglib2.0-bin

Пакет libglib2.0-bin потребуется в дальнейшем для настройки доступа с использованием пароля и для иных настроек серверной службы.

Установка пароля для подключения

Для того, чтобы служба vnc запрашивала пароль при подключении клиентской машины задать пароль выполнив команды:

gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password "$(echo -n "<пароль>" | base64)"
Пароль при этом будет задан только для пользователя, от имени которого выполнена команда.

Запрет автоматического запуска

Для запрета автоматического запуска для всех пользователей удалить файл /etc/xdg/autostart/vino-server.desktop:

sudo rm /etc/xdg/autostart/vino-server.desktop

Удаление запущенных серверных служб

Для удаления запущенных серверных служб:

sudo pkill vino-server

Запуск

Сразу после установки серверное приложение может быт запущено в текущей пользовательской сессии, после чего к этой сессии будет предоставлен удаленный доступ:

/usr/lib/vino/vino-server
По умолчанию серверное приложение прослушивает IP-порт 5900 протоколов IPv4 и IPv6. При запуске серверного приложения для нескольких пользователей для прослушивания выбирается следующий свободный IP-порт (5901, 5902 и т.д.). При этом подключение возможно к неактивной графической сессии, однако при неактивности сессии отображается только черный экран.

Если автоматический запуск отключен, то серверное приложение может быть запущено:

  1. Из графической сессии пользователя (при этом придожение будет обеспечивать подключение к графической сессии в которой оно запущено).

  2. Из консольной сессии пользователя (в том числе из удаленной сессии SSH). При запуске из консольной сессии (включая сессию удалённого подключения по SSH) необходимо указать, к какой именно графической сессии должно будет осуществляться подключение, для чего перед командой  запуска указать идентификатор дисплея в формате "DISPLAY=:номер":

    DISPLAY=:0 /usr/lib/vino/vino-server

    Или из консольной сессии администратора — от имени пользователя, к чьей сессии должен быть предоставлен доступ:

    sudo -u <имя_пользователя> DISPLAY=:0 /usr/lib/vino/vino-server

    В примерах используется идентификатор дисплея ":0", это дисплей первой открытой локальной графической сессии по умолчанию. Если открыто несколько сессий, то идентификаторы присваиваются последовательно (:1, :2 и т. д.). Получить актульный идентификатор дисплея, используемого в текущей графической сессии, можно запустив в этой сессии терминал (горячая клавиша Alt-T) и выполнив команду:

    echo $DISPLAY

Точная настройки серверного приложения

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

Для настройки серверного приложения можно использовать инструмент gsettings (предоставляется пакетом libglib2.0-bin). Настройки применяются для пользователя, в сессии которого выполняются команды. Например, получить список доступных параметров:

gsettings list-keys org.gnome.Vino

Значения параметров:

Параметр

Допустимые значения

Значение по умолчанию

Комментарий

alternative-port

Номер порта

5900

Номер IP-порта, прослушиваемого службой

authentication-methods

none/vnc

none

При значении none аутентификация не требуется.

Значение vnc включает аутентификацию по паролю

disable-background

true/false

false

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

disable-xdamage

true/false

false

Отключать расширение Xdamage для X.org

enabled

true/false

true

Разрешить работу серверной службы

icon-visibility

always/client/never

client

Отображать значок удаленного подключения:

  • always — всегда;

  • cleint — только при подключении;

  • never — никогда

Значок отображается в системном трее в правом нижнем углу экрана.

lock-screen-on-disconnect

true/false

false

Блокировать экран при отключении удаленного соединения

mailto

Адрес электронной почты

пусто

Не используется

network-interface

Имя сетевого интерфейса

пусто

Имя сетевого интерфейса, через который будет осуществляться подключения, например, eth0

notify-on-connect

true/false

true

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

prompt-enabled

true/false

false

Запрашивать разрешение на подключение. Для обеспечения безопасности рекомендуется использовать значение true 

require-encryption

true/false

false

Использовать защитное преобразование передаваемых данных. Для защиты передаваемых данных рекомендуется использовать защищенный канал SSH, см. далее.

use-alternative-port

true/false

false

Использовать значение параметра alternative-port для выбора IP-порта

use-upnp

true/false

false

Создавать запрос маршрутизатору для открытия используемого IP-порта

view-only

true/false

false

Предоставлять доступ только для чтения без возможности управления

vnc-password

пароль

пусто

Пароль для аутентификации. Пароль хранится в формате base64.

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

gsettings get org.gnome.Vino <имя_параметра>

Установить значение параметра:

gsettings set org.gnome.Vino vnc-password <имя_параметра> <значение>

Изменения значений параметров применяются автоматически.

Общесистемные пользовательские настройки

Для задания общесистемных (применяемых для всех пользователей) настроек:

  1.  Создать файл профилей, если он не был создан ранее — файл /etc/dconf/profile/user со следующим содержимым:

    user-db:user
    system-db:local


  2. Создать каталог /etc/dconf/db/local.d,  если он не был создан ранее

    sudo mkdir -p /etc/dconf/db/local.d

  3. Создать файл с определение значений /etc/dconf/db/local.d/00_vino и в этом файле секцию [org/gnome/desktop/remote-access] с параметрами, например:

    [org/gnome/desktop/remote-access]
    prompt-enabled=true


  4. Обновить конфигурацию dconf:

    sudo dconf update

Изменения будут применены после повторного входа пользователя в сессию.

Клиентское приложение Vncviewer

Установка

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

sudo apt install tigervnc-viewer

Подключение

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

vncviewer -ViewOnly=0 -DotWhenNoCursor=1 имя_адрес_хоста

Подробно параметры клиентского приложения описаны в справочной системе man:

man vncviewer

Защита соединений с помощью SSH

Для защиты данных, передаваемых между сервером и клиентом VNC, можно использовать встроенные средства SSH. Для этого на сервере устанавливается и запускается серверная служба SSH.
Для создания защищенного SSH-соединения с сервером выполнить команду на клиентской машине:

ssh -L 5901:localhost:5900 user@server
Где:

  • 5901 - номер локального IP-порта, через который осуществляется туннелирование (возможно выбрать любой свободный IP-порт, в том числе IP-порт 5900 (это номер IP-порта VNC, применяемый по умолчанию));

  • 5900 - номер IP-порта на сервере, на который осуществляется туннелирование (5900 - это номер IP-порта VNC, применяемый по умолчанию, можно выбрать другой, но тогда на сервере при запуске серверного приложения нужно будет указать, к какому IP-порту следует подключаться этому приложению);

  • user - имя пользователя на сервере. Подключение к серверу выполняется под этим именем;

  • server - имя или IP-адрес сервера;

После этого подключение к VNC на сервере можно будет выполнять через локальный IP-порт клиента, например, выполнив команду на клиенте:

vncviewer -ViewOnly=0 -DotWhenNoCursor=1 localhost:5901