Удаленный _и_ безопасный доступ к рабочему столу Xubuntu / XFCE?

Вопрос или проблема

Я хочу получить доступ к своему компьютеру с Xubuntu удаленно и видеть тот же рабочий стол, что отображается на мониторе удаленной машины. По умолчанию, используя как VNC, так и xrdp, создается новая сессия рабочего стола, а мне этого не нужно.

Варианты, которые, как кажется, доступны:

Единственное наполовину безопасное решение, которое я, кажется, могу получить, — это использовать

UNIXPW_DISABLE_SSL=1 x11vnc -unixpw -localhost

и создать свой файл службы systemd для этого, а затем подключиться через SSH-туннель.

vino

Я использую датскую клавиатуру, и vino, кажется, не поддерживает ее из-за этой ошибки. Невозможность использования æøå или любых специальных символов, таких как <>|;., исключает использование vino для меня. Кроме того, vino плохо поддерживается в XFCE, потому что vino-preferences была удалена.

x11vnc

x11vnc в основном работает, но, кажется, нет никакого способа безопасного хранения пароля. Использование файла пароля VNC возможно, но ограничено 8 символами и тривиально расшифровывается, так что это, в лучшем случае, только видимость безопасности. x11vnc, используя -nopw-local, так что он недоступен через сеть и требует использования через SSH-туннель) работает, но тогда любой процесс (работающий под любым пользователем) на настольном компьютере может получить доступ к моему рабочему столу, что не хорошо.

x11vnc имеет опции для безопасных соединений: -ssl и -stunnel. Для -ssl, Remmina показала: “TLS handshake failed: A TLS fatal alert has been received..” и xtightvncviewer показал: “Server did not offer supported security type”, в то время как, если сервер использовал -stunnel, оба просмотрщика просто «зависали» и не жаловались, но также не начинали окно VNC.

x11vnc имеет -unixpw, который “будет использовать программу su(1) для проверки пароля пользователя”. Но это требует либо -ssl, либо -stunnel, и -localhost, но ни -ssl, ни -stunnel не работали для меня при подключении через Remmina или xtightvncviewer. Но установка переменной окружения UNIXPW_DISABLE_SSL=1 “отключает требование использования либо -ssl, либо -stunnel“, согласно руководству.

И UNIXPW_DISABLE_SSL=1 x11vnc -unixpw -localhost, а затем выполнение через SSH-туннель, кажется почти нирваной. Но с -unixpw я не могу хранить учетные данные в Remmina (которая хранит пароль в gnome-keyring). Но приходится вводить их каждый раз. И, честно говоря, это выглядит ужасно / плохой пользовательский опыт на мой личный взгляд.

xrdp

xrdp выглядит, как будто либо запускает независимую сессию рабочего стола, либо может подключиться к уже работающему рабочему столу через – барабанная дробь – vino или x11vnc, и, таким образом, я получаю все вышеописанные проблемы, в дополнение к любым другим вопросам, которые вызывает xrdp.

Неужели нет более безопасного способа доступа к моему рабочему столу? На самом деле?

Что я в итоге сделал

Редактирование: в конце концов, я выбрал безнадежно небезопасный -rfbauth /home/user/.vnc/passwd (и другой пароль!) вместо -unixpw. В сочетании с -localhost и использованием SSH-туннеля, потому что пользовательский опыт -unixpw был просто слишком плохим. И пришлось добавить некоторые дополнительные опции, поэтому окончательная конфигурация systemd выглядела следующим образом:

[Unit]
Description=x11vnc VNC Server for X11
Requires=lightdm.service
After=lightdm.service

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display WAIT:0 -forever -shared -rfbauth /home/user/.vnc/passwd -rfbport 5900 -localhost
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
RestartSec=2
SuccessExitStatus=3

[Install]
WantedBy=graphical.target

Настройте ssh и x11vnc на удаленной машине. Убедитесь, что у вас есть права или установлены разрешения.
Затем команда, чтобы управлять всем:

ssh <удаленный адрес> -L 5900:localhost:5900 "x11vnc -no6 -localhost -auth /var/run/lightdm/root/:0 -display :0"

затем подключение vnc к localhost…

.

Ответ или решение

Чтобы безопасно и эффективно получить удаленный доступ к рабочему столу Xubuntu / XFCE, следуя предоставленным условиям, рассмотрим использование x11vnc с настройкой по SSH-туннелю. Это позволит подключаться непосредственно к текущей сессии на удалённом компьютере без создания новой. Далее подробно рассмотрим шаги настройки.

Контекст и проблема

Пользователь сталкивается с необходимостью удалённого доступа к Xubuntu, чтобы видеть текущий сеанс рабочего стола. Применение инструментов VNC и xrdp как правило создаёт новую сессию, что в данном случае нежелательно. Рассмотрены несколько опций, но все они имели свои недостатки в плане безопасности и удобства.

Выбранное решение: x11vnc с SSH-туннелем

Использование x11vnc оправдано, так как он предоставляет доступ к текущей сессии рабочего стола. Чтобы добиться безопасности, планируется организовать подключение через SSH-туннель.

Шаг 1: Установка x11vnc и настройки SSH

  1. Установка x11vnc:

    sudo apt update
    sudo apt install x11vnc
  2. Настройка SSH на удалённом хосте:
    Убедитесь, что SSH-сервер установлен и настроен для безопасного подключения. Выполните установку (если требуется):

    sudo apt install openssh-server

Шаг 2: Создание и настройка systemd-сервиса для x11vnc

Создайте systemd-сервис, чтобы автоматически запускать x11vnc при старте системы.

  1. Создайте файл службы:

    sudo nano /etc/systemd/system/x11vnc.service
  2. Добавьте следующий конфигурационный код:

    [Unit]
    Description=x11vnc VNC Server for X11
    Requires=lightdm.service
    After=lightdm.service
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display WAIT:0 -forever -shared -rfbauth /home/пользователь/.vnc/passwd -rfbport 5900 -localhost
    ExecStop=/usr/bin/killall x11vnc
    Restart=on-failure
    RestartSec=2
    SuccessExitStatus=3
    
    [Install]
    WantedBy=graphical.target
  3. Сохраните изменения и включите сервис:

    sudo systemctl enable x11vnc.service
    sudo systemctl start x11vnc.service

Шаг 3: Настройка SSH-туннеля

На локальной машине установите SSH-команду для создания туннеля:

ssh -L 5900:localhost:5900 ваш_логин@адрес_удалённого_хоста

После создания туннеля выполните подключение к localhost:5900 с помощью вашего VNC-клиента.

Заключение

Использование x11vnc в связке с SSH-туннелем позволяет обеспечить безопасный доступ к рабочему столу Xubuntu, сохраняя текущую сессию и обеспечивая передачу данных через защищённую SSH-сеть. Такая настройка позволяет избежать стандартных уязвимостей VNC и предоставляет более дружелюбный пользовательский интерфейс для конечного пользователя.

Оцените материал
Добавить комментарий

Капча загружается...