Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

См. также:

Информация
titleДанная статья применима к:
  • 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. На компьютере, с которого будет выполняться подключение (клиент),  должно быть установлено и запущено клиентское приложение.

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

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

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

В примере используется идентификатор дисплея ":0", это дисплей графической сессии по умолчанию.

Получить идентификатор дисплея, используемого в текущей графической сессии, можно запустив в этой сессии терминал (горячая клавиша Alt-T) и выполнив команду:

Command
echo $DISPLAY
Серверное приложение VinoУстановка

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

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

Предупреждение

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

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

sudo apt install vino libglib2.0-bin

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

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

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

Command

gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password "$(echo -n "<пароль>" | base64)"

Пароль при этом будет задан только для пользователя, от имени которого выполнена команда.

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

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

Command

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

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

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

Command

sudo pkill vino-server

Запуск

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

warning
Command

/usr/lib/vino/vino-server

Если не запретить автозапуск, то серверное приложение будет запускаться автоматически при каждом новом входе в графическую сессию любого пользователя, что небезопасно, так как по умолчанию подключение разрешается без пароля.

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

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

  1. Из графической сессии пользователя (при этом

    оно

    придожение будет обеспечивать подключение к

    этой

    графической сессии в которой оно запущено).

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

    будет

    указать, к какой именно графической сессии должно будет осуществляться подключение, для чего перед командой  запуска указать идентификатор дисплея в формате "DISPLAY=:номер":

    Command

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

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

    Command

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

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

    Command

    echo $DISPLAY

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

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

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

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

Command
sudo pkill vino-server

Настройка пароля для подключения

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

Command

gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password "$(echo -n "<пароль>" | base64)"

Пароль при этом будет задан только для пользователя, от имени которого выполнена команда.

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

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

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

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

Command

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.

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

Command

gsettings get org.gnome.Vino

vnc-password

<имя_параметра>

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

Command

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

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

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

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

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

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

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

    Блок кода
    [org/gnome/desktop/remote-access]
    prompt-enabled=true
  3. Обновить конфигурацию dconf:

    Command
    sudo dconf update

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

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

Установка

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

Command

sudo apt install tigervnc-viewer

Подключение

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

Command

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

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

Command

man vncviewer

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

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

Command

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-порт клиента, например, выполнив команду на клиенте:

Command

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