| Информация | ||
|---|---|---|
| ||
|
Общая информация
| Предупреждение |
|---|
При подключении к пользовательской сессии с использованием Vino экран этой сессии не блокируется. Такое подключения может быть использовано для работы удаленного помощника, когда пользователь контролирует доступ к компьютеру, но недопустимо для удаленной работы пользователей. Для удаленной работы пользователей следует использовать удаленный доступ к Astra Linux по протоколу RDP с использованием fly-dm. После установки пакета vino и перезапуска пользовательской сессии доступ к сессии предоставляется автоматически, при этом не требуется ввод пароля. При использовании защиты паролем Данные способы не рекомендуются для использования так как они не являются безопасными способами подключения. Категорически не рекомендуется использовать доступ без пароля. При использовании защиты паролями следует помнить, что протокол VNC ограничивает длину пароля восемью символами. |
Подготовка подключения
На компьютере, к которому будет выполняться подключение (сервер)
:Должнодолжно быть установлено серверное приложение VNC
;Должно быть запущено серверное приложение. При необходимости серверное приложение может быть запущено из сессии SSH..
Предупреждение После установки серверного приложения в обязательном порядке должен быть настроен доступ по паролю. На компьютере, с которого будет выполняться подключение (клиент), должно быть установлено и запущено клиентское приложение.
Порядок установки, настройки и запуска серверных серверного и клиентских приложений описан нижеклиентского приложений описан далее.
Серверное приложение Vino
Установка пакетов
| Предупреждение |
|---|
После установки пакетов по умолчанию:
|
| Command |
|---|
sudo apt install vino libglib2.0-bin |
Установка пароля для подключения
Для того, чтобы служба vnc запрашивала пароль при подключении клиентской машины задать пароль выполнив команды:
| Command |
|---|
gsettings set org.gnome.Vino authentication-methods "['vnc']" |
Пароль при этом будет задан только для пользователя, от имени которого выполнена команда.
Запрет автоматического запуска
Для запрета автоматического запуска для всех пользователей удалить файл /etc/xdg/autostart/vino-server.desktop:
| Command |
|---|
sudo rm /etc/xdg/autostart/vino-server.desktop |
Удаление запущенных серверных служб
Для удаления запущенных серверных служб:
| Command |
|---|
sudo pkill vino-server |
Запуск
Сразу после установки серверное приложение может быт запущено в текущей пользовательской сессии, после чего к этой сессии будет предоставлен удаленный доступ:
| Command |
|---|
/usr/lib/vino/vino-server |
По умолчанию серверное приложение прослушивает IP-порт 5900 протоколов IPv4 и IPv6. При запуске серверного приложения для нескольких пользователей для прослушивания выбирается следующий свободный IP-порт (5901, 5902 и т.д.). При этом подключение возможно к неактивной графической сессии, однако при неактивности сессии отображается только черный экран.
Если автоматический запуск отключен, то серверное приложение может быть запущено:
Из графической сессии пользователя (при этом
онопридожение будет обеспечивать подключение к
этойграфической сессии в которой оно запущено)
;.
Из консольной сессии пользователя (в том числе из удаленной сессии 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
Точная настройки серверного приложения
Индивидуальные пользовательские настройки
Для настройки серверного приложения можно использовать инструмент 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 | Отображать значок удаленного подключения:
Значок отображается в системном трее в правом нижнем углу экрана. |
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 <имя_параметра> |
Установить значение параметра:
| Command |
|---|
gsettings set org.gnome.Vino vnc-password <имя_параметра> <значение> |
Изменения значений параметров применяются автоматически.
Общесистемные пользовательские настройки
Для задания общесистемных (применяемых для всех пользователей) настроек:
Создать файл профилей, если он не был создан ранее — файл /etc/dconf/profile/user со следующим содержимым:
Блок кода user-db:user system-db:localСоздать каталог /etc/dconf/db/local.d, если он не был создан ранее
Command sudo mkdir -p /etc/dconf/db/local.d Создать файл с определение значений /etc/dconf/db/local.d/00_vino и в этом файле секцию [org/gnome/desktop/remote-access] с параметрами, например:
Блок кода [org/gnome/desktop/remote-access] prompt-enabled=trueОбновить конфигурацию dconf:
Command sudo dconf update
Изменения будут применены после повторного входа пользователя в сессию.
Серверное приложение Vino
Установка
| Command |
|---|
| sudo apt install vino |
Запуск
Клиентское приложение 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 |