| Информация | ||
|---|---|---|
| ||
|
Общая информация
| Предупреждение |
|---|
При подключении к пользовательской сессии с использованием Vino экран этой сессии не блокируется. Такое подключения может быть использовано для работы удаленного помощника, когда пользователь контролирует доступ к компьютеру, но недопустимо для удаленной работы пользователей. Для удаленной работы пользователей следует использовать удаленный доступ к Astra Linux по протоколу RDP с использованием fly-dm. После установки пакета vino и перезапуска пользовательской сессии доступ к сессии предоставляется автоматически, при этом не требуется ввод пароля. При использовании защиты паролем следует помнить, что протокол VNC ограничивает длину пароля восемью символами. |
Подготовка подключения
На компьютере, к которому будет выполняться подключение (сервер)
:Должнодолжно быть установлено серверное приложение VNC
;В обязательном.
Предупреждение После установки серверного приложения в обязательном порядке должен быть настроен доступ по паролю. На компьютере, с которого будет выполняться подключение (клиент), должно быть установлено и запущено клиентское приложение.
Порядок установки, настройки и запуска серверного и клиентского приложений описан нижедалее.
По умолчанию серверное приложение запускается автоматически при входе в пользовательскую сессию. Если автоматический запуск отключен, то серверное приложение может быть запущено:
- Из графической сессии пользователя (при этом оно будет обеспечивать подключение к этой графической сессии).
- Из консольной сессии пользователя (в том числе из удаленной сессии SSH). При запуске из консольной сессии (включая сессию удалённого подключения по SSH) необходимо будет указать, к какой именно графической сессии должно будет осуществляться подключение, для чего перед командой запуска указать идентификатор дисплея в формате "DISPLAY=:номер":
| Информация |
|---|
| DISPLAY=:0 команда_запуска |
В примере используется идентификатор дисплея ":0", это дисплей графической сессии по умолчанию.
Получить идентификатор дисплея, используемого в текущей графической сессии, можно запустив в этой сессии терминал (горячая клавиша Alt-T) и выполнив команду:
| Command |
|---|
| echo $DISPLAY |
Серверное приложение 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
Запрет автоматического запуска
Для запрета автоматического запуска для всех пользователей удалить файл /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 (предоставляется пакетом 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 vnc-password<имя_параметра> |
Установить значение параметра:
| 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
Изменения будут применены после повторного входа пользователя в сессию.
Клиентское Клиентское приложение 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 |