Skip to content

Протоколы удалённого рабочего стола

Протоколы удалённого рабочего стола

XServer (X11) - система, позволяющая получать удалённый доступ к другим компьютерам. Его недостаток в том, что он передаёт данные незащищённо. Чтобы это исправить, нужно отредактировать файл конфигураций /etc/ssh/sshd_config. Нужно разрешить пересылку на сервере, который предоставляет приложение. Пример:

cat /etc/ssh/sshd_config | grep X11Forwarding

#вывод
X11Forwarding yes #параметр yes означает, что пересылка разрешена

Пример запуска после настройки: ssh -X <user>@IP /usr/bin/firefox

Более крутым и безопасным аналогом является VNC

Установка необходимых компонентов для корректной работы с TigerVNC-сервером:

sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server -y
vncpasswd 

#вывод
Password: ******
Verify: ******
Would you like to enter a view-only password (y/n)? n

Теперь нужно создать 2 дополнительных файла в новой папке .vnc: xstartup - определяет, как создаётся сеанс VNC в связи с дисплейным менеджером; config - определяет его настройки

touch ~/.vnc/xstartup ~/.vnc/config
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
cat <<EOT >> ~/.vnc/config

#вывод
geometry=1920x1080
dpi=96
EOT

Теперь файлу xstartup нужно дать права для запуска службой:

chmod +x ~/.vnc/xstartup

Можно запускать VNC-сервер: vncserver

vncserver -list - запуск с отображением портов и идентификаторов процессов

А теперь крутая штука: мы будем туннелировать наше соединение через ssh для большей безопасности:

#создание туннеля
ssh -L 5901:127.0.0.1:5901 -N -f -l htb-student 10.129.14.130

#вывод
htb-student@10.129.14.130's password: *******

А теперь выполним подключение по нашему туннелю:

xtightvncviewer localhost:5901

#вывод
Connected to RFB server, using protocol version 3.8
Performing standard VNC authentication

Password: ******

Authentication successful
Desktop name "linux:1 (htb-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