Подключение linux windows vnc

Содержание
  1. Удаленный рабочий стол на Ubuntu
  2. Подготовка системы
  3. Установка и настройка VNC сервера
  4. Если используем XFCE
  5. Установка
  6. Настройка
  7. Если используем Gnome
  8. Установка
  9. Настройка
  10. Подключаемся к удаленному рабочему столу
  11. Автозапуск сервиса
  12. Смена пароля
  13. xRDP для подключения из Windows
  14. Как удаленно управлять Linux из Windows
  15. Вам понадобится IP-адрес устройства Linux
  16. Как получить доступ к рабочему столу Linux из Windows через RDP
  17. Удаленный В Linux Из Windows С VNC
  18. Remote Into Linux через SSH
  19. Удаленный доступ к Linux с SSH в Windows PowerShell
  20. Подключайтесь к Linux удаленно, используя SSH в PuTTY
  21. Три способа удаленного управления Linux из Windows
  22. HackWare.ru
  23. Этичный хакинг и тестирование на проникновение, информационная безопасность
  24. VNC в Linux: настройка сервера и клиента
  25. Оглавление: VNC в Windows и Linux: настройка и аудит безопасности
  26. x11vnc
  27. Как установить x11vnc
  28. Быстрый запуск x11vnc
  29. Как установить пароль для x11vnc
  30. Почему x11vnc сама выключается
  31. Графический интерфейс x11vnc
  32. Как разрешить подключения только с определённых IP адресов
  33. Как в x11vnc установить пароль только на просмотр
  34. Как запретить любой ввод на VNC сервере
  35. Как настроить способы ввода, разрешённые пользователям
  36. Настройка совместного доступа
  37. Как прослушивать определённый IP адрес в x11vnc
  38. Как изменить имя рабочего стола VNC
  39. Как изменить номер используемого порта
  40. Демон службы x11vnc
  41. Более плавное обновление картинки
  42. Как запретить подключение всех клиентов
  43. Как менять опции x11vnc без перезапуска службы
  44. Как создать SSL сертификаты для шифрования трафика VNC сессий
  45. Как использовать SSL для шифрования трафика VNC сессий
  46. Как использовать имя и пароль пользователя Linux для аутентификации VNC
  47. TigerVNC
  48. Как установить TigerVNC
  49. Настройка сервера TigerVNC
  50. Настройки клиента TigerVNC
  51. ssvnc
  52. Как установить ssvnc
  53. Возможности ssvnc

Удаленный рабочий стол на Ubuntu

В статье рассказано о настройке возможности подключения к Ubuntu по удаленному рабочему столу (аналогично RDP в Windows). Примеры команд проверены на Linux Ubuntu 16.04 и 18.04.

Мы рассмотрим реализацию с помощью сервера VNC (подключиться к нашему компьютеру можно будет как с помощью клиента VNC, который доступен как для Linux, так и Windows). Также мы рассмотрим возможность использования клиента RDP из Windows, настроив xRDP.

Подготовка системы

Все действия описанные ниже мы будем выполнять с правами суперпользователя. Для этого переходим в режим sudo:

. или заходим под root:

* по умолчанию, в Ubuntu не задан пароль от root и данная команда не сработает. В этом случае сначала задаем пароль руту — passwd root.

Если используется брандмауэр, добавляем правило:

iptables -A INPUT -p tcp —dport 5901 -j ACCEPT

* в данном примере, мы разрешаем входящие соединения на порту 5901. Для работы с несколькими портами, добавляем их по аналогии.

Установка и настройка VNC сервера

Рассмотрим два варианта использования графической оболочки — xfce и gnome.

Если используем XFCE

Установка

Установку выполняем следующей командой:

apt install xfce4 xfce4-goodies tightvncserver

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

. на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill :1

* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4

Снова запускаем vncserver:

Если используем Gnome

Установка

Установку выполняем следующей командой:

apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal vnc4server

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

. на запрос пароля вводим его дважды.

* Если система не затребует второй раз пароль, проверьте внимательно сообщение. Сервер может выдать ошибку, если пароль будет короткий.

После будет предложено ввод пароля для гостевого доступа — можно согласиться (y) и ввести пароль или отказаться (n).

Настройка

Для начала, останавливаем экземпляр VNC сервера:

vncserver -kill :1

* экземпляр :1, по умолчанию, слушает на порту 5900+1 (5901).

Настраиваем VNC сервер для текущего пользователя:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80×24+10+10 -ls -title «$VNCDESKTOP Desktop» &
x-window-manager &

gnome-panel &
gnome-settings-daemon &
metacity &

Снова запускаем vncserver:

Подключаемся к удаленному рабочему столу

Запускаем клиент VNC. Например, в Linux — Remmina, в Windows — TightVNC Viewer или RealVNC. Вводим IP-адрес компьютера с VNC и номер порта:

Будет запрошен пароль — вводим тот, что устанавливали при настройке.

Автозапуск сервиса

Чтобы VNC сервер запускался после перезагрузки, создаем новый юнит в systemd:

[Unit]
Description=VNC server
After=syslog.target network.target

[Service]
Type=forking
User=root
PAMName=login
PIDFile=/root/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver
ExecStop=/usr/bin/vncserver -kill :1

Разрешаем автозапуск сервиса:

systemctl enable vncserver

Смена пароля

Для смены пароля на подключения к VNC, вводим команду:

Система напишет, в каком файле на данный момент хранится пароль и запросит ввод нового:

Using password file /root/.vnc/passwd
Password:
Warning: password truncated to the length of 8.
Verify:
Would you like to enter a view-only password (y/n)? n

* как видим, файл для хранения пароля в данном примере — /root/.vnc/passwd; требование по минимальной длине пароля — 8 символов; также после ввода нового пароля система предложит ввод пароля на режим «только для чтения».

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

xRDP для подключения из Windows

Если мы не хотим устанавливать на Windows никакого дополнительного программного обеспечения, а хотим использовать стандартное подключение к удаленному рабочему столу (mstsc), можно установить на Linux xRDP. Для этого вводим:

Как удаленно управлять Linux из Windows

Настроить сервер Linux? Возможно, вы настроили его как решение для сетевого хранилища. Или, может быть, у вас есть рабочий компьютер с Linux, медиацентр или простой дополнительный компьютер в другой комнате.

Как бы то ни было, в какой-то момент вам понадобится удаленный доступ к устройству Linux с ПК с Windows или ноутбука. Итак, каково решение?

У пользователей Windows есть несколько инструментов, которые обеспечивают простой удаленный рабочий стол из Windows в Linux. Хотите знать, как получить доступ к вашему рабочему столу Linux из Windows? Читай дальше!

Вам понадобится IP-адрес устройства Linux

Прежде чем начать, найдите IP-адрес вашего устройства Linux. Это необходимо для всех параметров удаленного подключения, хотя в некоторых случаях подходит имя хоста (сетевое имя устройства).

Самый простой способ проверить IP-адрес — войти в систему на вашем устройстве Linux и открыть терминал. Войти:

IP-адрес устройства будет отображаться.

Если у Linux есть Ethernet-соединение, адрес будет указан вместе с eth0. Если он подключен по беспроводной сети, найдите IP-адрес, указанный для wlan0.

Если это не легко или не удобно, есть другой метод, который почти такой же простой. В окне браузера подключитесь к маршрутизатору. Обычно это адрес 192.168.0.1 или 192.168.0.100 . Вы должны быть в состоянии проверить, посмотрев на сам маршрутизатор или на документацию, поставляемую с ним.

После входа в маршрутизатор найдите опцию «Подключенные устройства» или аналогичную. Просмотрите IP-адреса, чтобы найти ваше устройство Linux по имени хоста. Некоторые маршрутизаторы могут даже отображать операционную систему устройства. Вы найдете IP-адрес, указанный рядом.

Запишите IP-адрес, так как он понадобится вам позже. И убедитесь, что вы знаете имя пользователя и пароль для вашего компьютера или сервера Linux!

Как получить доступ к рабочему столу Linux из Windows через RDP

Первый и самый простой вариант — RDP, протокол удаленного рабочего стола, встроенный в Windows.

Перед началом вам необходимо установить программное обеспечение xrdp на вашем Linux-компьютере. Вы можете сделать это лично или используя SSH (см. Ниже) с помощью одной команды:

Чтобы перевести RDP в Linux, запустите программное обеспечение Remote Desktop на вашем компьютере с Windows. В Windows 8 и более поздних версиях его можно найти с помощью поиска, просто введя буквы «rdp».

При открытом окне «Подключение к удаленному рабочему столу»:

  • Введите IP-адрес
  • Используйте Показать параметры для любых дополнительных требований к соединению
  • Нажмите Подключиться

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

Если вы планируете использовать RDP на регулярной основе, вы можете сэкономить время, создав эти пользовательские конфигурации для Windows RDP.

Удаленный В Linux Из Windows С VNC

Виртуальное сетевое соединение (VNC) также предоставляет удаленный доступ к вашему рабочему столу Linux. Однако, как и в случае с RDP, вам необходимо установить специальное программное обеспечение. На коробке Linux требуется программное обеспечение VNC-сервера; в Windows клиентское приложение.

Читайте также:  Install magento on windows

TightVNC — один из самых популярных вариантов подключения к Linux через VNC. Вы найдете клиентское программное обеспечение Windows на веб-сайте , но убедитесь, что выбрали правильную версию.

После того, как вы это сделаете, установите Inversion-сервер на вашем Linux-компьютере. Это может быть через SSH (см. Следующий раздел) или с физическим доступом к компьютеру.

Во-первых, в Linux проверьте наличие обновлений:

Далее выполните эту команду:

После установки, запустите silentvncserver и установите пароль при появлении запроса.

Существует восемь символов для паролей. Теперь, когда закручивается туго настроенный сервер, вы увидите уведомление с номером порта — запишите его.

Для удаленного подключения к Linux из Windows:

  • Запустите приложение TightVNC Viewer в Windows
  • Введите IP-адрес и номер порта
  • Нажмите Подключиться
  • Введите пароль, который вы установили при появлении запроса

После этого откроется удаленный рабочий стол, и вы сможете начать использовать приложение по своему выбору — в пределах разумного. Некоторые приложения с высокими графическими требованиями вряд ли будут работать надежно, если вообще будут работать.

Преимущества VNC: предлагая быстрый доступ к удаленному ПК, TightVNC имеет свои ограничения. Вы можете выполнять стандартные вычислительные задачи, но действия, связанные со СМИ, строго ограничены.

Remote Into Linux через SSH

SSH (Secure Shell) — отличный способ получить удаленный доступ к вашему устройству Linux. Вы также не ограничены Windows с этой опцией, так как SSH может использоваться практически с любого устройства. Это также очень безопасно.

У вас есть два варианта SSH в Windows:

  1. SSH в Windows PowerShell
  2. Загрузите инструмент PuTTY SSH

Давайте посмотрим на оба.

Удаленный доступ к Linux с SSH в Windows PowerShell

Windows PowerShell — это новый инструмент командной строки в Windows 10, заменивший старое приложение командной строки. Чтобы найти его, щелкните правой кнопкой мыши «Пуск», чтобы получить доступ к меню питания, и выберите Windows PowerShell. В SSH введите:

Поэтому, если устройство Linux имеет IP-адрес 192.168.13.123, введите:

  • ssh 192.168.13.123
  • При появлении запроса примите сертификат
  • Введите имя пользователя и пароль

Теперь у вас есть удаленный SSH-доступ к Linux.

Подключайтесь к Linux удаленно, используя SSH в PuTTY

Хотя приложение PuTTY изначально недоступно в Windows, его можно загрузить. PuTTY не установлен, однако. Вместо этого вы просто запускаете загруженный EXE-файл.

Скачать: PuTTY

Для удобства рекомендуется создать ярлык на рабочем столе.

Чтобы использовать PuTTY для SSH:

  • Выберите Session > Host Name
  • Введите имя сети компьютера Linux или введите IP-адрес, который вы указали ранее
  • Выберите SSH, затем Открыть
  • Когда будет предложено принять сертификат для подключения, сделайте это
  • Введите имя пользователя и пароль для входа в ваше устройство Linux

Преимущества SSH: использование этого метода позволяет быстро вносить изменения в Linux, не пачкая рук. Особенно подходит для установки программного обеспечения и изменения администратора. Это также полезно для настройки следующей опции, VNC! SSH также идеально подходит для серверов без установленной среды рабочего стола.

Однако, если вам нужно удаленное подключение к рабочему столу Linux, попробуйте VNC или RDP.

Три способа удаленного управления Linux из Windows

Независимо от вашего варианта использования, есть подходящий вариант для удаленного доступа к устройству Linux из Windows. Эти методы работают независимо от того, является ли устройство сервером, настольным ПК на работе, медиацентром или даже Raspberry Pi.

От простого к сложному удаленного доступа к Linux из Windows, используя:

  • RDP (протокол удаленного рабочего стола)
  • VNC (виртуальное сетевое соединение)
  • SSH (Secure Shell)

Если ваш дистрибутив Linux является Ubuntu, у вас уже есть встроенный VNC-совместимый инструмент удаленного рабочего стола.

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

VNC в Linux: настройка сервера и клиента

Оглавление: VNC в Windows и Linux: настройка и аудит безопасности

Если вы не знаете, что такое VNC и для чего это нужно, то смотрите первую часть «VNC в Windows: настройка сервера и клиента» в которой объясняются основные понятия.

x11vnc

x11vnc — это сервер VNC для Linux. Пакет x11vnc также включает несколько дополнительных утилит. VNC сервер x11vnc в первую очередь предназначен для работы в качестве службы или демона, но программа имеет и графический интерфейс.

Как установить x11vnc

Пакет x11vnc присутствует в стандартных репозиториях большинства дистрибутивов Linux.

Для установки в Debian, Kali Linux, Linux Mint, Ubuntu и их производные:

Для установки в Arch Linux, BlackArch и их производные:

Быстрый запуск x11vnc

Быстрый запуск без предварительной настройки подходит только в экстренных ситуациях, во всех остальных случаях настоятельно рекомендуется хотя бы установить пароль.

Запуск VNC сервера выполняется командой:

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

Поскольку к серверу без пароля может подключиться кто угодно, то для его остановки нажмите CTRL-c и перейдите к настройке.

Как установить пароль для x11vnc

Запустите команду вида:

В этом случае ПАРОЛЬ в кодированном виде будет записан в указанный ФАЙЛ.

Также вы можете использовать следующий синтаксис:

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

Также можно не указывать файл для сохранения, то есть следующий синтаксис:

В этом случае пароль будет сохранён в файл по умолчанию, а именно в

Теперь чтобы сервер использовал пароль, запустите команду вида:

Если существует файл

/.vnc/passwd от другого приложения VNC, то сервер будет работать нормально и с ним.

Кроме опции -rfbauth, после которой нужно указать путь до файла с паролем, сохранённого с помощью опции -storepasswd, имеется ещё две опции по работе с паролем:

  • -passwdfile /ПУТЬ/ДО/ФАЙЛА
  • -passwd ПАРОЛЬ

С опцией -passwdfile указывается путь до файла, в котором в первой строке хранится пароль в виде простого текста.

А опция -passwd позволяет установить пароль прямо в командной строке.

Опция -usepw сделает так, что автоматически будут использоваться файлы

/.vnc/passwdfile. А если они не существуют, то будет сделан запрос на создание файла

Помните, что пароль защищает только от несанкционированного подключения, но трафик всё равно передаётся в незашифрованным. Чтобы трафик шифровался, его нужно туннелировать через ssh или использовать опции x11vnc SSL: -ssl и -stunnel. Эти вопросы будут рассмотрены далее.

Файл настроек x11vnc

Поддержка файла конфигурации: если файл $HOME/.x11vncrc (то есть

/.x11vncrc) существует, то каждая строка в нем обрабатывается как один параметр командной строки.

Отключить использование файла конфигурации можно опцией -norc.

Для каждого имени опции начальный символ «» не требуется. Например, строки «forever» и «-forever» является эквивалентными. Аналогично, «wait 100» или «-wait 100» являются приемлемыми и эквивалентными строками.

Символ «#» комментирует до конца строки (для буквального использования этого символа поставьте перед ним обратный слэш (\)).

Начальные и конечные пробелы обрезаются.

Строки могут быть продолжены символом \ как последним символом строки (он становится пробелом).

К примеру, сохраним в файл

В результате служба x11vnc всегда будет использовать пароль для подключения, даже если запустить её без опций:

Обратите внимание, что путь до файла с паролем записан как абсолютный, а не относительный путь, чтобы независимо от способа запуска (например, при запуске демона от root) не возникало проблем с трактовой пути.

Почему x11vnc сама выключается

По умолчанию сервер x11vnc автоматически завершает работу при отключении клиента. Чтобы это не происходило, используйте опцию -forever.

Также при подключении нового клиента, существующий клиент отключается. Чтобы разрешить множественное подключение клиентов, используйте опцию -shared.

Для достижения стандартного VNC поведения без совместного подключения, когда новый VNC клиент подключается, а существующий VNC клиент отбрасывается, используйте совместно опции -nevershared -forever. Этот метод также может использоваться для защиты от зависших TCP подключений, который не исчезают.

Графический интерфейс x11vnc

Для запуска графического интерфейса x11vnc используйте опцию -gui:

Графический интерфейс можно запускать даже когда служба x11vnc уже работает. Данный интерфейс передаёт команды службе с помощью опции, которая будет рассмотрена далее.

Как разрешить подключения только с определённых IP адресов

Для этого используйте опцию -allow host1[,host2..]

Она разрешает клиентские подключения только с хостов, соответствующих списку имён хостов или IP-адресов, в нём адреса или имена перечисляются через запятую без пробелов. Может также быть числовым префиксом IP, например, «192.168.100.» чтобы соответствовать простой подсети. Если список содержит «/», он интерпретируется как файл, содержащий адреса или префиксы, которые перечитываются каждый раз, когда подключается новый клиент. Строки могут быть закомментированы символом «#«.

-allow применяется в режиме -ssl, но не в режиме -stunnel.

Читайте также:  Hp 250 переустановка windows

IPv6: по состоянию на x11vnc 0.9.10, хост может быть указан в числовом формате IPv6, например 2001:4860:b009::93.

Опция -localhost это в основном так то же самое, что и «-allow 127.0.0.1«.

Примечание: если вы хотите ограничить, какой сетевой интерфейс прослушивает x11vnc, смотрите опцию -listen ниже. Например. «-listen localhost» или «-listen 192.168.3.21«. В особом случае опция «-localhost» подразумевает «-listen localhost».

Если вы не хотите, чтобы x11vnc прослушивал ЛЮБОЙ интерфейс (очевидно, вы используете -connect или -connect_or_exit или планируете использовать удалённое управление: -R connect: host), используйте -rfbport 0

IPv6: если IPv6 поддерживается, этот параметр автоматически подразумевает и loopback адрес IPv6 ‘::1’.

Как в x11vnc установить пароль только на просмотр

Вы можете в настройках VNC сервера задать пароль, который разрешит клиенту подключаться и видеть экран, но не позволит выполнять любые действия, то есть данный пароль только на просмотр без права любого ввода (с клавиатуры или с помощью мыши).

Для этого используйте опцию -viewpasswd СТРОКА.

Пароль для полного доступа (например, указанный опцией -passwd), также должен быть указан.

Как запретить любой ввод на VNC сервере

Для этого используйте опцию -viewonly, она делает так, что все VNC клиенты могут только наблюдать (по умолчанию выключено).

Как настроить способы ввода, разрешённые пользователям

Опция -input СРОКА делает точную настройку разрешённого пользовательского ввода. Если строка не содержит запятой «,» настройка применяется только к обычным клиентам. В противном случае часть перед «,» предназначена для обычных клиентов, а часть после для клиентов с правами только для просмотра. «K» — для ввода нажатия клавиши, «M» — для ввода движения мыши, «B» — для ввода нажатием кнопки, «C» — для ввода в буфер обмена, а «F» — для передачи файла (только ultravnc). Их присутствие в строке позволяет этот тип ввода. Например. «-input M» означает, что обычные пользователи могут перемещать только мышь, а «-input KMBCF,M» позволяет обычным пользователям делать все что угодно, и позволяет пользователям с правами только для просмотра перемещать мышь. Эта опция игнорируется, когда действует глобальное -viewonly (в этом случае все входные данные отбрасываются).

Настройка совместного доступа

Одновременное подключение нескольких клиентов к одному VNC серверу регулируется следующими опциями:

-shared

Разрешает одновременное подключение нескольких клиентов

-alwaysshared

Всегда обрабатывать новых клиентов как совместных

-nevershared

Никогда не обрабатывать новых клиентов как совместных

-dontdisconnect

Не отключать существующих клиентов когда приходит новое не-совместное подключение (вместо этого отклонять новые подключения)

Как прослушивать определённый IP адрес в x11vnc

Опцией -listen IP_АДРЕС можно установить, на каком сетевом интерфейс принимать подключения (по умолчанию на всех). Можно указать IP или имя хоста.

Как изменить имя рабочего стола VNC

Для этого есть опция -desktop ИМЯ, которая меняет имя рабочего стола VNC (по умолчанию это «LibVNCServer»)

Как изменить номер используемого порта

Поменять порт можно с помощью опции -rfbport ЧИСЛО. Не забудьте указать это же значение при подключении просмотрщика VNC.

Демон службы x11vnc

x11vnc по умолчанию не регистрирует свой демон, но его легко настроить.

Создайте файл /etc/systemd/system/x11vnc.service

со следующим содержимым:

Установите пароль VNC (замените МОЙ_ПАРОЛЬ):

Для запуска службы:

Для проверки её статуса:

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

Для остановки службы:

Для удаления службы из автозагрузки

Более плавное обновление картинки

Попробуйте опцию -ncach ЧИСЛО, например:

Данная опция включает функцию кэширования пикселей на стороне клиента. ЧИСЛО по умолчанию равно 10, то есть -ncache 10.

Данная опция приводит к повышенному потреблению оперативной памяти. Рекомендуются значения ЧИСЛА от 6 до 12. ЧИСЛО должно быть чётным, если это не так, то он увеличивается на 1.

Также попробуйте опцию -ncache_cr.

Как запретить подключение всех клиентов

С помощью опции -deny_all запущенная служба x11vnc не будет принимать подключения. Действие данной опции можно отменить удалённым управлением службы, а именно командой:

После выполнения данной команды будет разрешено подключение VNC клиентов.

Как менять опции x11vnc без перезапуска службы

Службой x11vnc можно управлять удалённо, например, завершать её работу или на лету менять опции. Для этого используется та же самая команда, которой запускается VNC сервер, то есть x11vnc с опцией -remote. У этой опции два псевдонима: -R и -r.

Список поддерживаемых команд большой, рассмотрим только несколько примеров:

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

Команда для разрешения подключений, если VNC сервер был запущен с опцией -deny_all:

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

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

Файл может состоять из нескольких строк и использовать символ ‘#‘ для комментирования. В любом случае нужно использовать разделитесь ‘;‘ для отделения каждой команды.

Как создать SSL сертификаты для шифрования трафика VNC сессий

На сервере сгенерируйте сертификаты (замените оба вхождения «192.168.0.100» на IP-адрес сервера — это может быть как локальный, так и глобальный IP):

Для x11vnc нужен файл, в котором вначале идёт приватный ключ, а затем сертификат, создадим его следующей командой:

Эта команда просто объединила содержимое файлов vnc-server-private.pem и vnc-server.pem в файл server.pem.

Как использовать SSL для шифрования трафика VNC сессий

Сервер запустите с опцией -ssl после которой укажите путь до файла server.pem:

Скопируйте файл с сертификатом vnc-server.pem на компьютер с просмотрщиком VNC — то есть клиентам, которые будут подключаться — укажите в клиентском приложении путь до файла сертификата, например в TigerVNC:

После этого VNC трафик будет шифроваться:

Как использовать имя и пароль пользователя Linux для аутентификации VNC

По умолчанию для входа по VNC нужно установить специальный пароль для данной службы. Если вы хотите, чтобы аутентификация происходила с использованием учётных данных пользователей на сервере, то укажите опцию -unixpw [СПИСОК].

Для данной опции обязательно использовать шифрование с помощью SSL сертификата:

В результате будет использоваться Unix имя пользователя и пароль аутентификации. x11vnc будет использовать программу su для проверки пароля пользователя. [СПИСОК] — необязательный список разрешённых имён пользователей Unix, разделённых запятыми. Если строка [СПИСОК] начинается с символа «!» тогда весь список принимается как исключающий список. Ниже приведены параметры для каждого пользователя, которые могут быть применены.

Знакомый диалог «login:» and «Password:» представлен пользователю на чёрном экране внутри vncviewer. Соединение обрывается, если пользователь не в состоянии ввести правильный пароль в 3 попытках или не отправляет его до истечения 45-секундного тайм-аута. В этот период существующие клиенты доступны только для просмотра.

Если первым полученным символом является «Escape», то имя пользователя unix не будет отображаться после «login:» по мере его введения. Это может быть полезно для просмотрщиков VNC, которые автоматически вводят имя пользователя и пароль.

Поскольку подробное поведение su может варьироваться от ОС к ОС и для локальных конфигураций, проверьте режим перед развёртыванием, чтобы убедиться, что он работает правильно. x11vnc попытается быть консервативным и отклонит вход в систему, если произойдёт что-то ненормальное.

Имена пользователей в [СПИСКЕ] через запятую могут иметь индивидуальные параметры после «:», например, «fred:opts«, где «opts» — это разделённый плюсом («+«) список «viewonly«, «fullaccess«, «input = XXXX» или «deny«, например, «karl,wally:viewonly,boss:input=M«. Для «input=» это K,M,B,C, о которых рассказано при описании опции -input.

Если элемент в списке «*», это означает, что эти параметры применяются ко всем пользователям. Это также подразумевает, что все пользователи могут войти в систему после предоставления действительного пароля. Используйте «deny», чтобы явно запретить некоторых пользователей, если вы используете «*», чтобы установить глобальную опцию. Если [СПИСОК] начинается с «!«, символ «*» игнорируется для проверки, разрешён ли пользователь, но значения параметров, связанные с ним, применяются как обычно.

TigerVNC

Программа TigerVNC уже знакома нам по первой части, посвящённой серверам и клиентам VNC для Windows.

Поскольку TigerVNC является кроссплатформенной программой, то можно ожидать, что она имеет одинаковый интерфейс и одинаково работает во всех операционных системах. На самом деле это не так. Клиент (просмотрщик) TigerVNC одинаковый на Windows и Linux. Но сервер TigerVNC сильно различается: на Windows это служба с графическим интерфейсом, а на Linux это служба с интерфейсом командной строки, которая прослушивает только LOOPBACK интерфейс и, следовательно, для подключение требует предварительно создать SSH туннель.

Как установить TigerVNC

Установка в Debian, Kali Linux, Linux Mint, Ubuntu и их производные:

Читайте также:  Linux all open connections

Для установки в Arch Linux, BlackArch и их производные:

Настройка сервера TigerVNC

Для работы сервера TigerVNC требуется файл

/.vnc/xstartup. Если этот файл не существует, то TigerVNC пытается его создать. В моих тестах на разных дистрибутивах этот файл обычно приходилось создавать вручную.

/.vnc/xstartup зависит от вашего окружения рабочего стола! То есть для Cinnamon, XFCE, GNOME и т. д. файлы будут разные!

Дело в том, что TigerVNC не используют текущую X сессию, а создаёт новую. Благодаря такому подходу можно, например, для пользователей выполнивших вход перед компьютером и пользователей, подключившихся по VNC, запускать различные окружения рабочего стола (при условии, что они установлены). Настройка запуска сеанса рабочего стола для VNC выполняется в файле

/.vnc/xstartup. Общая минимальная структура файла

Вместо слова ЗАПУСК должен быть указан исполнимый файл, запускающий X сессию.

  • Для Cinnamon: cinnamon-session-cinnamon
  • Для XFCE: startxfce4
  • Для GNOME: /usr/bin/gnome-session
  • Для Kodi: kodi-standalone
  • Для Mate: mate-session
  • Для lxqt: startlxqt

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

В этой папке вы увидите файлы с расширением .desktop, например:

Откройте с именем интересующего вас окружения рабочего стола и найдите там строку, которая начинается на «Exec», например для файла xfce.desktop:

Следовательно, вместо слова «ЗАПУСК» в файле

/.vnc/xstartup нужно вписать «cinnamon-session-cinnamon». Тогда файл

/.vnc/xstartup будет иметь следующее содержимое:

Как создать пароль для TigerVNC сервера

После неё можно указать файл, в который должен быть сохранён пароль, в противном случае пароль будет сохранён в файл по умолчанию, то есть в $HOME/.vnc/passwd.

После ввода пароля программа спросит:

То есть хотите ли вы создать пароль для режима «только просмотр» — если хотите, то введите «y», если не хотите, то введите «n».

Запуск сервера TigerVNC

Запуск выполняется любой из следующих команд:

Пароль для аутентификации на сервере будет взят из файла $HOME/.vnc/passwd. Вы можете указать другой файл с паролем, с помощью любой из следующих опций (они все являются псевдонимами друг друга):

  • -PasswordFile ФАЙЛ
  • -passwd ФАЙЛ
  • -rfbauth ФАЙЛ

Будет выведено примерно следующее:

Может показаться, что программа завершила работу — но это не так, процесс переведён в фон. В данном сообщении сказано, что новый рабочий стол создан на дисплее с номером :1, а журнал сохраняется в файл /home/mial/.vnc/HackWare:1.log.

Чтобы убедиться, что сервер действительно работает, проверим, какие порты прослушиваются (смотрите также «Как проверить открытые порты на своём компьютере»):

Как можно увидеть, прослушивается порт 5901, который также считается стандартным для VNC.

Как сделать так, чтобы TigerVNC прослушивал не только 127.0.0.1

По умолчанию TigerVNC прослушивает только интерфейс с IP адресом 127.0.0.1, это LOOPBACK (петлевой) адрес, то есть к VNC серверу можно подключиться только с этого же самого компьютера, либо через SSH туннель. Как именно использовать SSH туннель для подключения к TigerVNC будет показано чуть ниже.

Кроме этого, имеется опция -localhost, которая может принимать значение «yes» или «no». Если указать -localhost no, то TigerVNC сервер будет прослушивать любые входящие подключения, а не только локальные:

Как поменять порт TigerVNC сервера

Прослушиваемый TCP порт для RFB протокола можно поменять опцией -rfbport ПОРТ.

Порт для внутреннего HTTP сервера устанавливается опцией -httpPort.

Как настроить выключение TigerVNC после отключения клиента

Для этого есть две опции:

  • -autokill: завершает работу VNC сервера после завершения X сессии
  • -fg: не переводит процесс в статус демона и завершает работу VNC сервера после завершения X сессии

Как использовать SSL сертификаты в TigerVNC для шифрования трафика VNC сессий

Поскольку TLS/SSL шифрование защищает VNC трафик от прослушивания, то нет особого смысла использовать одновременно SSH туннель (который также хорошо зашифрован) и SSL сертификаты. По этой причине при генерации сертификатов в качестве IP адреса указывайте внешний, а не 127.0.0.1.

На сервере сгенерируйте сертификаты (замените оба вхождения «192.168.0.100» на IP-адрес сервера — это может быть как локальный, так и глобальный IP):

Скопируйте файл с сертификатом vnc-server.pem на компьютер с просмотрщиком VNC — то есть клиентам, которые будут подключаться — укажите в клиентском приложении путь до файла сертификата:

На сервере же используйте опцию -X509Key с файлом vnc-server-private.pem и опцию -X509Cert с файлом vnc-server.pem.

По умолчанию в качестве типов безопасности предлагается только VncAuth. С помощью опции -SecurityTypes можно указать любые типы шифрования из списка: None, VncAuth, Plain, TLSNone, TLSVnc, TLSPlain, X509None, X509Vnc, X509Plain.

Для SSL сертификтов (то есть для опций -X509Key и -X509Cert) используются типы безопасности X509None, X509Vnc и X509Plain. Также нужно указать VncAuth, чтобы была возможность выполнять VNC аутентификацию.

Таким образом, собираем все необходимые опции в одну команду:

Управление и остановка процессом TigerVNC

Чтобы вывести список запущенных рабочих столов с VNC выполните следующую команду:

  • X DISPLAY # — номер дисплея
  • RFB PORT # — номер прослушиваемого порта
  • PROCESS ID — идентификатор процесса

Чтобы закрыть дисплей с любым номером, используйте опцию -kill, к примеру, чтобы закрыть дисплей :1:

Имеется утилита vncconfig, которая с использованием опции [-set] Xvnc-param=value позволяет изменять опции запущенного VNC сервера на лету.

Чтобы вывести список опций VNC сервера укажите флаг -list:

Обратите внимание, что также нужно использовать опцию -display после которой указывается номер дисплея.

Как настроить автоматический запуск сервера TigerVNC

Создайте файл /etc/systemd/system/vncserver@.service:

Скопируйте в этот файл

Обратите внимание на строку User=mial — впишите в неё имя вашего пользователя вместо mial.

Сохраните и закройте этот файл.

Теперь перезагрузите конфигурацию менеджера systemctl для чтения свежесозданного файла юнита следующим образом:

Для запуска службы VNC выполните команду:

Обратите внимание, что вместо 1 вы можете указывать любой номер дисплея.

Для проверки статуса службы:

Для добавления службы в автозагрузку:

Для остановки службы:

Для удаления службы из автозагрузки:

Настройки клиента TigerVNC

Опции просмотрщика TigerVNC

С настройкой клиента TigerVNC мы уже познакомились в разделе, посвящённому Windows, поэтому перейдите туда: https://hackware.ru/?p=12383#76

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

Как подключиться к серверу TigerVNC

При использовании опции -localhost no VNC сервер прослушивает все сетевые интерфейсы, а не только петлевой, поэтому при использовании опции -localhost no подключение к такому серверу ничем не отличается от типичной работы с удалёнными рабочими столами по VNC. Разве что нужно помнить, что вместо порта 5900 первым дисплеем прослушивается порт 5901, поэтому нужно указать его, например, 192.168.0.100:5901.

Рассмотрим, как подключиться к TigerVNC, прослушивающему только петлевой интерфейс (localhost).

Для успешного подключения необходим доступ по SSH к компьютеру с VNC сервером. На компьютере с VNC сервером должна быть запущена служба SSH.

Для создания SSH туннеля выполните команду вида:

  • ПОЛЬЗОВАТЕЛЬ — это пользователь Linux на удалённом компьютере, где запущен сервер VNC
  • IP — это IP адрес удалённого компьютера с VNC сервером

Например, имя пользователя на удалённой системе mial, а IP адрес сервера 192.168.0.100, тогда команда для создания туннеля следующая:

Теперь при запуске VNC просмотрщика в качестве хоста для подключения нужно указать 127.0.0.1:5901:

Как закрыть SSH туннель

Поскольку запущенный процесс SSH уходит в фон, то находим его ID с помощью команды:

Как можно увидеть, идентификатор процесса в моём случае равен 20292 (строка «pid=20292»), тогда запускаем команду для закрытия этого процесса:

ssvnc

ssvnc — это продвинутый TightVNC просмотрщик с помощником для шифрования VNC сессий с помощью SSL сертификатов и SSH туннелирования.

Как установить ssvnc

Для установки ssvnc в Debian, Kali Linux, Linux Mint, Ubuntu и их производные выполните команду:

Установка ssvnc в Arch Linux, BlackArch и их производные

Пакет ssvnc отсутствует в стандартных репозиториях Arch Linux, но присутствует в AUR, поэтому его можно установить вручную (смотрите статью «Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch»):

Вместо ручного способа рекомендуется познакомиться с программой pikaur (вы её полюбите! Подробности смотрите в статье «Автоматическая установка и обновление пакетов AUR») и установить с помощью pikaur:

Возможности ssvnc

Программа ssvnc имеет графический интерфейс, хотя также поддерживает настройку с помощью опций командной строки.

Для запуска программы выполните:

Поле VNC Host:Display предназначена для ввода IP адреса хоста и номера дисплея. На самом деле, обычно номер дисплея вводить не требуется. Здесь же после двоеточия вы можете указать номер порта, если он отличается от стандартного. Записи IP:1 (первый дисплей на IP) и IP:5901 (порт 5901 на IP) являются идентичными. То есть 192.168.0.100:1 и 192.168.0.100:5901 для программы это одно и то же.

Оцените статью