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

Ключ

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

Оглавление



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

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

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

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

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

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

env | grep DISPLAY
Command
echo $DISPLAY


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

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

может быть установлено из основного репозитория:

Установка

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

Запуск

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

Command
/usr/lib/vino/vino-server

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

Установка


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

По умолчанию серверное приложение прослушивает 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-methodsnone/vncnoneПри значении none аутентификация не требуется.
Значение vnc включает аутентификацию по паролю
disable-backgroundtrue/falsefalseОтключать показ изображения рабочего стола, когда удаленный пользователь берет управление
disable-xdamagetrue/falsefalseОтключать расширение Xdamage для X.org
enabledtrue/falsetrueРазрешить работу серверной службы
icon-visibilityalways/client/neverclientОтображать значок удаленного подключения:
  • always — всегда;
  • cleint — только при подключении;
  • never — никогда

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

lock-screen-on-disconnecttrue/falsefalseБлокировать экран при отключении удаленного соединения
mailtoАдрес электронной почтыпустоНе используется
network-interfaceИмя сетевого интерфейсапустоИмя сетевого интерфейса, через который будет осуществляться подключения, например, eth0
notify-on-connecttrue/falsetrueОтображение уведомления о том, что подключился удаленный пользователь. Для обеспечения безопасности рекомендуется использовать значение true 
prompt-enabledtrue/falsefalseЗапрашивать разрешение на подключение. Для обеспечения безопасности рекомендуется использовать значение true 
require-encryptiontrue/falsefalseИспользовать защитное преобразование передаваемых данных. Для защиты передаваемых данных рекомендуется использовать защищенный канал SSH, см. далее.
use-alternative-porttrue/falsefalseИспользовать значение параметра alternative-port для выбора IP-порта
use-upnptrue/falsefalseСоздавать запрос маршрутизатору для открытия используемого IP-порта
view-onlytrue/falsefalseПредоставлять доступ только для чтения без возможности управления
vnc-passwordпарольпустоПароль для аутентификации. Пароль хранится в формате base64.

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

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

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

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

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

Клиентское приложение 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