- Описание
- Опции
- Что такое пароль VNC?
- Где хранится пароль VNC?
- Как удалить пароль VNC.
- Введение
- О технологии VNC
- Принцип работы и реализации
- Подключение к рабочему столу сервера
- Создание и подготовка ВМ Selectel
- Установка и настройка VNC-сервера на разные графические оболочки
- LXDE
- TigerVNC
- TightVNC
- X11vnc
- Рабочий стол XFCE
- Безопасность VNC
- Заключение
- Что такое VNC?
- Подготовка вашей системы
- Установка пароля VNC в TightVNC
- Проверка завершения сеанса
- Удалить пароль по умолчанию
- Запустите сервер VNC и установите пароль
- Проверить состояние сервера
- Установка пароля VNC в vnc4server
- Установить пароль
- Заключение
Описание
Пароль должен содержать не менее шести символов (максимум 128 символов).
Обратите внимание, что сохраненный пароль не зашифрован надежно — любой, кто
доступ к этому файлу может тривиально узнать текстовый пароль, поэтому
vncpasswd всегда устанавливает соответствующие разрешения (только для чтения и записи
владелец.) Однако при доступе к рабочему столу VNC механизм запроса-ответа
используется по сети, что затрудняет взлом пароля простым
рыскание в сети.
Опции
Тристан Ричардсон, RealVNC Ltd., Антуан Мартен, DR Commander и другие.
VNC изначально был разработан командой RealVNC в Olivetti.
Research Ltd / AT&T Laboratories, Кембридж. Дополнения TightVNC были
реализован Константином Каплинским. С тех пор многие другие люди
участие в разработке, тестировании и поддержке. Это руководство является частью
программного комплекса KasmVNC.
Что такое пароль VNC и как изменить пароль VNC в Linux?
Что такое пароль VNC?
Ваш пароль VNC и пароль, который вы используете для входа в свой компьютер с Linux, являются разными объектами. Поэтому желательно, чтобы ваш пароль VNC отличался от вашего пароля для входа в Linux.
Мы используем команду пароля VNC для установки или изменения пароля VNC в Linux. Пароль VNC хранится в зашифрованном виде. Кроме того, убедитесь, что вы установили надежный пароль, чтобы к системе не могли получить доступ посторонние лица.
Вот команда:
Команда vncpasswd запрашивает пароль VNC для доступа к рабочим столам VNC. Это позволяет нам изменить пароль VNC по соображениям безопасности. Также желательно менять свой пароль через каждые несколько месяцев, чтобы снизить риск того, что кто-то получит его и получит доступ к вашей системе.
Команда vncpasswd также позволяет нам установить пароль VNC в первый раз. Дважды запрашивает пароль. Первый пароль является основным паролем.
Вот как изменить пароль VNC в Linux:
Если пароль содержит более 8 символов, дополнительные символы будут обрезаны. Другими словами, лишние символы будут игнорироваться.
Второй пароль предназначен только для чтения. Если он слишком короткий, он не будет сохранен. Он аутентифицирует рабочие столы только для просмотра.
Где хранится пароль VNC?
Пароль VNC хранится в файле passwd, который по умолчанию обычно находится в папке .vnc. Другими словами, это расположение пароля при первом запуске сервера VNC.
Если мы запустим команду vncpasswd и получим предупреждение, что каталог VNC не существует, это означает, что папка .vnc и файл passwd не существуют.
Аналогичным образом команда vncpasswd создает скрытую папку .vnc. Вам будет предложено ввести пароль и подтвердить его, чтобы успешно создать папку и файл.
Когда вы закончите с этим, вы можете просмотреть его.
Вот как просмотреть эту же папку в командном терминале.
Для ясности, вот путь по умолчанию, где хранится пароль VNC.
Как удалить пароль VNC.
Обычно мы удаляем пароль VNC, чтобы можно было создать или изменить другой пароль, а затем сохранить его. Чтобы удалить файл passwd, содержащий пароль VNC, используйте приведенную ниже команду в командном терминале.
sudo rm ~/.vnc/passwd
Вы также можете удалить файл с помощью графического интерфейса.
Вот как:
Вы можете подтвердить, проверив папку .vnc, что файл больше не существует.
Присоединяйтесь к 50 000+ подписчиков
Будьте в курсе последних скидок, эксклюзивных акций и новостных статей от Saint.
Введение
VNC (Virtual Network Computing) — технология, которая помогает управлять компьютером удаленно через сеть. С помощью VNC можно ставить задачи, обслуживать, администрировать и отлаживать системы без физического присутствия. При этом работать не только с текстовым, но и с графическим интерфейсом.
Технология VNC была создана в 90-м году исследовательской лабораторией Olivetti & Oracle Research Lab для тонких клиентов. Впервые она использовала качественные интерфейсы, через которые периферийные устройства подключались к операционной системе банкоматов. Когда лаборатория закрылась, команда изобретателей VNC занялась проектом RealVNC Ltd и продолжила разработку.
О технологии VNC
VNC использует протокол RFB (Remote Framebuffer), который определяет способы кодирования, сжатия, отправки и воспроизведения графических данных. Еще он обрабатывает взаимодействие с пользователем — передает события клавиатуры и мыши от клиента на сервер.
RFB это открытый протокол, который описан в RFC 6143. На него не накладываются лицензионные ограничения проприетарного программного обеспечения. Однако конечный продукт, реализующий VNC-технологию, может быть и коммерческим.
Принцип работы и реализации
VNC состоит из двух частей: клиента и сервера. Сервер предоставляет доступ к экрану компьютера, на котором она запущена. Клиент получает изображение экрана с сервера и взаимодействует с ним по протоколу RFB. При этом к одному серверу могут одновременно подключаться несколько клиентов из разных мест.
Есть много реализаций серверов и клиентов — для разных платформ и со своими дополнениями. Какие из них выбрать зависит от системы — Wayland или Xorg, и экранов, которые нужно транслировать — только физические или виртуальные тоже.
Подключение к рабочему столу сервера
Под сервером в контексте VNC мы подразумеваем и обычную рабочую станцию, и сервер с графическим окружением. Перед решением задачи нам нужно определить, требуется подключение к физической или виртуальной консоли.
Физическая консоль одна — это то, что мы видим на мониторе, который подключен к нашей машине. Виртуальных может быть много, при этом на мониторе управляемой машины они не отображаются. Дальше в инструкции мы развернем и настроим виртуальный стенд на Linux.
Создание и подготовка ВМ Selectel
В панели управления Selectel заходим в раздел Облачная платформа, Серверы и нажимаем кнопку Создать сервер.

Выбираем конфигурацию с характеристиками не менее 1 vCPU и 2 ГБ RAM.


По умолчанию у Selectel есть только root. Суперпользователь не подходит для работы, поэтому создадим учетную запись обычного пользователя:

Чтобы запустить программы суперпользователя, нужно дать новому пользователю разрешения, добавив в группу sudo с помощью команды:
Все следующие действия будем выполнять от его имени.

Виртуальные машины в Москве, Санкт-Петербурге, Новосибирске и Ташкенте с оплатой по потреблению и готовностью меньше минуты.
Установка и настройка VNC-сервера на разные графические оболочки
На нашей удаленной машине должен быть установлен ssh-сервер.
Проверить состояние можно командой:
systemctl status ssh
Если ssh-сервер еще не установлен, исправить это можно так:
sudo apt install openssh-server
После установки ssh-сервер запускается автоматически.
LXDE
Варианты установки VNC-сервера начнем с окружения Lightweight X11 Desktop Environment (LXDE). Подобная конфигурация со средой рабочего стола LXDE используется в Lubuntu.
Возьмем машину без графической оболочки и подготовим систему — обновим ее и перезагрузим. Для этого в терминале выполним команду:
sudo apt update -y && sudo apt upgrade -y
Метапакет, который устанавливает окружение LXDE:
sudo apt install lxde
Если будет выбор, какой display manager использовать, останавливаемся на lightdm.

Проверить, какой display manager установлен в текущий момент можно командой:
На хостинге Selectel этот шаг пропускаем, а на своей виртуальной машине можем запустить оболочку с помощью команды:
sudo systemctl isolate graphical.target
Или перезагрузить систему и далее выбрать LXDE.

TigerVNC
Сначала рассмотрим, как запустить TigerVNC-сервер в ручном режиме. Для этого установим его на Ubuntu с помощью команды:
sudo apt install tigervnc-standalone-server tigervnc-common
Далее для первого запуска используем команду:

Сервер попросит установить пароль: основной — для управления, и дополнительный — только для просмотра, от него можно отказаться. Длина пароля должна быть 6-8 символов. Пароли длиной более 8 символов будут автоматически обрезаны.
Далее процесс создает необходимые файлы конфигурации по умолчанию и информацию о подключении к серверу. Также он запускает виртуальный экран :1 и прослушивает только loopback-интерфейс на порту tcp/5901. Каждый последующий запущенный экземпляр порождает дополнительный экран :NN и прослушивается на порту tcp/59NN. Шифрование не используется.
Пример запуска с указанием виртуального экрана :23 и прослушиванием на всех интерфейсах, с шифрованием на самоподписанных сертификатах:
Опция -localhost используется для прослушивания всех интерфейсов. По умолчанию она принимает значение yes для незащищенных соединений и no для шифрованных.
Просмотреть запущенные экземпляры и их завершение можно с помощью команд:
Теперь установим и запустим TigerVNC-клиент в Ubuntu. Сделать это можно с помощью команды:
При наличии большого количества удаленных хостов или передаваемых серверу параметров, удобно использовать конфигурационные файлы и передавать их клиенту, как параметр.
Чтобы создать конфигурационный файл, указываем адрес и порт сервера, редактируем необходимые параметры и нажимаем кнопку «Сохранить». Если сохранение дополнительных параметров не требуется, просто нажимаем кнопку «Подключ.»

При интерактивной аутентификации VNC-клиент предупреждает о текущем уровне безопасности:

Несмотря на встроенную поддержку шифрования, при подключении через небезопасную среду, например Интернет, рекомендуется подключаться через ssh-туннель.
Когда позволяют требования безопасности, пароль можно передавать клиенту при запуске по команде:
vncviewer -passwd /path/to/server-passwd-file
Далее рассмотрим запуск VNC-сервера в ручном режиме.
В Ubuntu по умолчанию для VNC нет юнита systemd. Для автоматического запуска при старте системы создадим его вручную. За основу можно взять этот systemd файл.
Итак, запускаем редактор:
Заполняем его следующим образом:
Для пользователя, от имени которого будет запущен VNC-сервер, обязательно должен существовать файл VNC-пароля, иначе юнит при запуске выдаст ошибку по тайм-ауту.
Далее нужно сообщить systemd об изменении конфигурации юнитов:
sudo systemctl daemon-reload
Теперь можно работать с VNC-сервером как с обычным systemd-юнитом, дополнительно передавая номер дисплея. Так как дисплеи виртуальные, можно запустить несколько экземпляров сервера:

У ОС Windows нет встроенных средств для подключения к VNC-серверам. Мы рекомендуем использовать UltraVNC Viewer или TigerVNC клиент.
TightVNC
Похож на TigerVNC, но без встроенного шифрования и с менее функциональными ключам. Так, например, -kill требует задания номера дисплея. Таким образом, нет возможности остановить все или единственный работающий дисплей без предварительного анализа его номера.
Для свежеустановленного образа не забываем подготовить окружение. Хотя механизм альтернатив хорошо работает и для VNC-сервера, лучше предварительно удалить TigerVNC, если он установлен:
sudo apt remove tigervnc*
sudo apt install xfonts-base xfonts-75dpi xfonts-100dpi
sudo apt install tightvncserver
Запуск и остановка:
vncserver
vncserver -kill :1
X11vnc
В случае, когда нужно подключиться к физической консоли, а не к виртуальному дисплею, на помощь придет x11vnc.
x11vnc это VNC-сервер для X Window System — X11, просто X или X.org. Он не подойдет для работы с Wayland. При этом Ubuntu 20.04 по умолчанию использует X. В Ubuntu 21.04 запланирован переход на Wayland.
Узнать, что используется в данный момент можно с помощью команды:
Этот способ подходит не всегда. Если он не сработает, эта статья поможет найти другой вариант.
В x11vnc реализована только серверная часть. В качестве VNC-клиента можно использовать любой совместимый, например TigerVNC.
x11vnc -display :0 -auth /var/run/lightdm/root/:0
Этот раздел применим для физической или своей виртуальной машины. В Selectel для Ubuntu 20.04 он не рассматривается — это связано с особенностями дистрибутива и платформы. Если нужно работать с локальной графической консолью, рекомендуем загрузить образ с сайта Ubuntu и выполнить установку из него.
Рабочий стол XFCE
Для начала подготовим машину. Действия будут аналогичны установке LXDE:
Пакет xfce4-goodies добавляет полезные расширения, которые упрощают работу в XFCE, но не входят в официальный репозиторий. Для демонстрации работы VNC-сервера этот пакет не обязателен.
Пакет xfce4-session нужен для запуска оболочки командой:
Вместо этой команды можно просто перезагрузить компьютер и далее выбрать сеанс Xfce.

В результате получим окружение, похожее на Xubuntu. Если нужно максимально приблизить систему к Xubuntu, можно использовать соответствующие пакеты:
sudo apt install tasksel
sudo tasksel install xubuntu-desktop
Запустить графическую консоль можно только для своей физической или виртуальной машины. На преднастроенном образе Ubuntu 20.04 от Selectel запуск не работает.
В данном случае мы будем использовать сервер TigerVNC. Устанавливаем его с помощью команды:
Чтобы запустить сервер в XFCE нужно подготовить окружение. Для этого создадим или отредактируем уже существующий конфигурационный файл ~/.vnc/xstartup:
mkdir .vnc
vim ~/.vnc/xstartup
Его содержимое следует привести к виду:
#!/bin/bash
PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 &
Теперь можно запустить сервер:

Сервер запущен и готов принимать подключения. Со стороны клиента подключение выглядит идентично и не зависит от используемой на сервере графической оболочки, поэтому пример подключения к серверу с LXDE, который мы рассматривали выше, полностью применим для сервера с XFCE.
Безопасность VNC
Пароли VNC хранятся в шифрованном, но не стойком виде — используется обратимое шифрование, а не хеширование. Программа vncpwd позволяет их расшифровать. Таким образом, если парольная строка попадет к злоумышленнику, он без труда расшифрует пароль и получит доступ к системе.
Кроме этого, для работы VNC необходимо открыть TCP-порты, что снижает уровень безопасности машины, которая доступна из глобальной или публичной сети, а также увеличивает количество возможных векторов атак.
Если используемый VNC-сервер не поддерживает встроенное шифрование, то пароль передается в открытом виде и может быть легко перехвачен злоумышленниками.
При этом большинство Linux-машин уже имеют настроенную защищенную оболочку ssh, которая позволяет строить зашифрованные туннели, пробрасывая трафик на нужный нам локальный порт.
Используем эту функцию — запустим VNC-сервер с параметром -localhost yes. При этом весь трафик будет шифроваться на уровне ssh.
vncserver :23 -localhost yes -SecurityTypes X509Vnc

Команда на стороне клиента:
Тогда между хостом и двоеточием необходимо ставить пробел.
Помимо этого, можно использовать встроенную в ssh функцию перенаправления tcp-порта:
После установления ssh-туннеля нужно ввести пароль.

VNC-клиент принимает в качестве параметра разрешение (-geometry WxH) или полноэкранный режим (-FullScreen).
Выйти из полноэкранного режима можно с помощью клавиши F8 или с помощью команды:

Заключение
Мы узнали о технологии VNC и ее возможностях, установили и настроили VNC-сервер в разных графических окружениях Ubuntu 20.04. Также на примере TigerVNC познакомились с запуском демона сервера и рассмотрели вопросы безопасности удаленного подключения.

Что такое VNC?
Виртуальные сетевые вычисления (VNC) — это графическая система совместного использования рабочего стола, позволяющая удаленно управлять другим компьютером. Он передает события клавиатуры и мыши с одного компьютера на другой, ретранслируя обновления графического экрана обратно в другом направлении по сети.
Установка пароля VNC является важной мерой безопасности. Без пароля любой, кто знает IP-адрес и номер порта вашего VNC-сервера, потенциально может получить доступ к вашему серверу. Установив пароль, вы гарантируете, что только лица, знающие пароль, смогут получить доступ к вашему серверу.
Подготовка вашей системы
sudo apt-get установить жесткий vncserver
sudo apt-get install vnc4server
Установка пароля VNC в TightVNC
Откройте терминал и завершите все существующие сеансы VNC, выполнив команду:
Здесь :1 представляет номер сеанса. При необходимости замените его соответствующим номером сеанса.
Проверка завершения сеанса
Убедитесь, что все сеансы завершены, запустив:
Если какие-либо сеансы все еще выполняются, повторите команду kill с соответствующим номером сеанса.
Удалить пароль по умолчанию
Удалите настройку пароля по умолчанию, выполнив:
Эта команда удаляет файл паролей, расположенный в каталоге .vnc в вашем домашнем каталоге.
Запустите сервер VNC и установите пароль
Запустите сервер VNC, запустив:
Вам будет предложено ввести новый пароль. Установите надежный пароль и запомните его для использования в будущем.
Проверить состояние сервера
Теперь сервер VNC должен работать на порту 5901. Вы можете проверить это, запустив:
Установка пароля VNC в vnc4server
Откройте терминал и установите vnc4server, если он еще не установлен, запустив:
Установить пароль
Установите пароль для сервера VNC, запустив:
Введите и подтвердите желаемый пароль при появлении запроса.
Теперь сервер VNC должен быть запущен, и любому, кто попытается получить доступ к вашему компьютеру через VNC, будет предложено ввести установленный вами пароль.
Заключение
Помните, что конкретные команды и шаги могут различаться в зависимости от настроек вашего сервера VNC. Всегда обращайтесь к документации или справочным страницам для вашего конкретного VNC-сервера, если у вас возникнут какие-либо проблемы или если описанные выше шаги не помогут вам.
Чтобы установить сервер VNC в Ubuntu, вы можете использовать команду apt-get для установки TightVNC или vnc4server. Для TightVNC запустите sudo apt-get install tightvncserver. Для vnc4server запустите sudo apt-get install vnc4server.
Чтобы установить пароль VNC в TightVNC, вам необходимо завершить все существующие сеансы с помощью команды vncserver -kill :1. Затем удалите пароль по умолчанию, запустив sudo rm ~/.vnc/passwd. Наконец, запустите сервер VNC с помощью vncserver и установите новый пароль при появлении запроса.
Чтобы установить пароль VNC в vnc4server, установите vnc4server, если он еще не установлен, с помощью sudo apt-get install vnc4server. Затем запустите vncpasswd, чтобы установить пароль для сервера VNC. Запустите сервер VNC с помощью vncserver, и для удаленного доступа потребуется пароль.

