Протоколы удалённого рабочего стола
Протоколы удалённого рабочего стола¶
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