TigerVNC — это сервер удаленного доступа к рабочему столу по протоколу VNC (Virtual Network Computing). Серверная часть поддерживает операционные системы, построенные на базе ядра Linux, клиентская — Windows, Linux и macOS.
Официальный сайт проекта — tigervnc.org
В этой статье мы рассмотрим процесс установки TigerVNC в дистрибутивах ОС Linux, основанных на базе Ubuntu (в том числе Kali Linux / Parrot Security OS).
В нашем примере установка TigerVNC будет производиться вместе с менеджером рабочего стола XFCE4.
Установка TigerVNC
Первым делом, установим пакеты TigerVNC и XFCE4, а также укажем пароль, который потребуется вводить при удаленном подключении:
student@ubuntu:~$ sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server -y
student@ubuntu:~$ vncpasswd
Password: ******
Verify: ******
Would you like to enter a view-only password (y/n)? n
В процессе установки, в домашней директории пользователя будет создана скрытая директория с названием .vnc, в которой мы создадим два дополнительных файла: xstartup и config. Файл xstartup определяет, как VNC-сессия будем связываться с менеджером дисплея, а файл config задает настройки сессии.
Конфигурация
student@ubuntu:~$ touch ~/.vnc/xstartup ~/.vnc/config
student@ubuntu:~$ cat <<EOT >> ~/.vnc/xstartup
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/startxfce4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &
EOT
student@ubuntu:~$ cat <<EOT >> ~/.vnc/config
geometry=1920x1080
dpi=96
EOT
Затем, необходимо предоставить файлу xstartup соответствующие права на исполнение:
student@ubuntu:~$ chmod +x ~/.vnc/xstartup
Теперь можно приступать к запуску VNC-сервера.
Запуск сервера VNC
student@ubuntu:~$ vncserver
New 'linux:1 (student)' desktop at :1 on machine linux
Starting applications specified in /home/student/.vnc/xstartup
Log file is /home/student/.vnc/linux:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/student/.vnc/passwd :1 to connect to the VNC server.
Дополнительно, tigervnc позволяет отобразить список всех запущенных сеансов с указанием идентификаторов процесса и связанных портов:
student@ubuntu:~$ vncserver -list
TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 79746
Обеспечить шифрование для VNC-сессии позволит туннель SSH, внутри которого будет запускаться сессия.
Создание туннеля SSH
user@box[/box]$ ssh -L 5901:127.0.0.1:5901 -N -f -l student 10.129.14.130
student@10.129.14.130's password: *******
Теперь, подключиться к серверу VNC можно с помощью утилиты xtightvncviewer.
Подключение к серверу VNC
mandrake@box[/box]$ xtightvncviewer localhost:5901
Connected to RFB server, using protocol version 3.8
Performing standard VNC authentication
Password: ******
Authentication successful
Desktop name "linux:1 (student)"
VNC server default format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Using default colormap which is TrueColor. Pixel format:
32 bits per pixel.
Least significant byte first in each pixel.
True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Same machine: preferring raw encoding